Александр
Господа, серьезный вопрос. Нормально объяснить могу только упрощенным кодом: Работает: https://godbolt.org/g/aK95sk Не работает (добавили namespace): https://godbolt.org/g/9BM9pm Вопрос: wat? Реальный кейс: namespace serialization, в который можно добавлять реализацию сериализации для user-defined классов.
Matwey
@antoshkka не велит с нуля писать
Stanislav
есть https://github.com/lexborisov/myhtml но плюсового интерфейса нет, чистоси
Vlad
gnu lgpl
Vlad
нет, спасибо
Vladimir
Существует ли реализация "синхронных каналов" ну или чего-то другого в этом направлении. Суть задачи: Есть два процесса, один мастер, другой слейв, мастер может отправлять какие-то сообщения, и ждать фидбек. Слейв же наоборот большую часть времени ждет сообщения, и как только оно приходит начинает выполнения, по завершению отправляя результат.
Stanislav
gnu lgpl
а какие проблемы с lgpl?
Stanislav
модификации?
форкаешь, модифицируешь, профит
Vladimir
lgpl это не ту, которую нельзя линковать ни с чем кроме gpl/lgpl?
Vladimir
видимо нет - наоборот
Vlad
форкаешь, модифицируешь, профит
и публикуешь под лгпл ага
ep
Что именно не важно? Они не смогли сделать средствами c++ то, что им было нужно и сделали moc. Я об этом, а ты о чём?
Misha
/stat@combot
Dr. Friedrich
нет, спасибо
LGPL это нормальная (относительно) лицензия. С ней только статически линковаться нельзя, остальное можно.
Dr. Friedrich
изменять код можно?
Изменять и не отдавать потом пользователю — нет, нельзя.
mefest
LGPL это нормальная (относительно) лицензия. С ней только статически линковаться нельзя, остальное можно.
на счет статики точно? слышал что можно предоставлять .o файлы для линковки.
Dr. Friedrich
Если библиотека header-only, то это к чему относится?
Боюсь, это значит, что ей нельзя пользоваться. Поинт был в том, чтобы конечный пользователь мог подменить версию библиотеки без помощи разраба.
Dr. Friedrich
на счет статики точно? слышал что можно предоставлять .o файлы для линковки.
Ок, да, ты прав. Можно, если предоставляешь возможность end-user'у слинковаться с другой версией либы.
ep
а что значит средствами с++? вроде moc это некий кодогенератор для с++ .
ну по сути расширение C++ же. Сигналы-слоты, интроспекция, динамические свойства
mefest
ну по сути расширение C++ же. Сигналы-слоты, интроспекция, динамические свойства
в итоге дается с++ код который потом компилируется обычным компилятором. расширением с++ я бы не назвал... по мне это скорее расширенный препроцессор, но это все ИМХО, могу быть не прав
ep
в итоге дается с++ код который потом компилируется обычным компилятором. расширением с++ я бы не назвал... по мне это скорее расширенный препроцессор, но это все ИМХО, могу быть не прав
То, что на выходе обычный c++ это понятно. Ну мне тоже это видится расширенным препроцессором, но они сами называют это расширением C++ The Meta-Object Compiler, moc, is the program that handles Qt's C++ extensions
Stanislav
Что именно не важно? Они не смогли сделать средствами c++ то, что им было нужно и сделали moc. Я об этом, а ты о чём?
потому что делалть начали еще до 1998 года, да и только щас появилась возможно кодогенерить без внешней программы
Stanislav
https://github.com/woboq/verdigris/ только работает не везде
mefest
слышал еще, что в планах отказаться от moc
ep
Verdigris, да
ep
Где-то была статья про критику этого проекта со стороны разработчиков Qt
Dmitry
Я недавно с вами, что такое MP?
ep
метапрограммирование
Stanislav
Где-то была статья про критику этого проекта со стороны разработчиков Qt
а точно про это? а не про реализацию moc в шланге? ) у вобока был эскпримент еще с таким
Stanislav
https://github.com/woboq/moc-ng
ep
Не помню уже. Сейчас только вот такое смог найти, но это от тех же челов https://woboq.com/blog/moc-myths.html
Stanislav
там видимо от разрабов CopperSpice
Stanislav
они там слегка упороты
Dr. Friedrich
слышал еще, что в планах отказаться от moc
Когда метаклассы появятся — можно будет :)
Wipe
Всем доброго дня :) вопрос немного не по теме чата, как бы вы назвали канал с книгами по IT?
Anonymous
ребят, посоветуйте справочник, или литературу для изучения c++
Wipe
/root/books
Спасибо, тоже рассмотрю как вариант :)
Vladimir
парни, кто знает как работает в с++ memory layout
Vladimir
например struct A { double X; int Y; }; struct B { struct A A; int Z; };
Vladimir
и class B : A { int Y; };
Vladimir
какой размер будет B в первом и втором кейсе
Vladimir
и где это описано
Vladimir
знаю
Vladimir
всмысле?
Evgenii
дожили: https://blog.jetbrains.com/clion/2017/10/clion-2017-3-eap-valgrind-memcheck-integration/
Vladimir
я же говорю на конкретном железе, где double к примеру 64 бита а int 32 бита
Vladimir
выравнивание при этом будет 64 бита, но почему-то композиция и наследования создают разные структуры
Evgenii
ну типа давно ждал
Evgenii
😝
Vladimir
дожили: https://blog.jetbrains.com/clion/2017/10/clion-2017-3-eap-valgrind-memcheck-integration/
есть же санитайзер от ллвм, и валгринд не нужен
Vladimir
?)
Vladimir
чем он плох
Vladimir
санитайзер
Vladimir
окей, а где-то написано про Мемори лайоут, и какого фига при наследовании оно вставляет поля в родительское "выравнивание"
Vladimir
есть лине на это описание, или ты навскидку говоришь
Vladimir
Валгринд умеет запускать без бинарников? Ват?
Vladimir
ну ты же сам сказал
Vladimir
ты не написал "пересобрать". Это ж про ИДЕ, тут перебороть не должно быть проблемой
Vladimir
проверять будешь?
Vladimir
Vladimir
не нужно ничего доказывать
Vladimir
я понял тебя
Vladimir
Увы, implementation defined.
не очень круто, я вроде слышал что в одном из стандартов добавили Мемори лайоут
Vladimir
видимо не про всё был этот слух
Dr. Friedrich
не очень круто, я вроде слышал что в одном из стандартов добавили Мемори лайоут
Я не уверен, что это вообще возможно добавить, не сломав всем совместимость.
Vladimir
ну зависит что подразумевать под "совместимостью"
Dr. Friedrich
В новые стандарты добавили средств, чтобы ты мог контролировать выравнивание — всякие там alignas.
Vladimir
если то, что кто-то опирался на реализацию UB - это считается сломанной совместимостью