Anonymous
> set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
Стоит
Anonymous
Да и у меня там auto, он бы начал ругаться
Constantine
ну это делается для того, чтобы это перечисление было общее у
readFile
readString
writeFile
writeString
Constantine
заметь, что readString может бросить ошибку перекодировки
Anonymous
-lcurl (только это)
cmake .
make
Anonymous
https://pastebin.com/NQAazYAT
Anonymous
Вот так главный выглядит
Constantine
смотри, если я сделаю _разные стандартные_ коллбеки для броска эксепшена из функций loadFile/loadString/..., то их кто-то когда-то перепутает
Constantine
а, ты намекаешь, что на самом деле тип исключения должен был определить пользователь... хм
Anonymous
Да
На Json.cpp орет
Constantine
и параметр на самом деле был exception_thrower<ExceptionType😠)
Anonymous
В главном не достаточно?)
Anonymous
Да, не достаточно
Anonymous
Спасибо
Constantine
хм... а между прочим, в каком-то смысле это круто
Vladislav
Vladislav
Роскомнадзор в чате, все в машину!
Constantine
Ты участвовал в промышленной разработке? В продакшене программа упадет
Constantine
Просто к тому, что тут правило "сами дураки" звучит как-то очень странно
Constantine
Мне пока определенно нравится идея с коллбеком, который либо принимает function либо унифицированное имя через extension point, и я ушел в размышления над этим. Там вроде аккуратно получится подпихать унифицированные реализации
Constantine
Я имею в виду конечно сущность с кодовым названием customizable_error_handler
Constantine
Просто с точки зрения интерфейса это void () (exact_error_info const&)
Constantine
Только хитро созданный
Constantine
Как GoF расшифровывается?
Vladislav
Gang of Four
Constantine
А, понял)
Dr. Friedrich
@AlexFails ↑
Constantine
Хм... кажется мои мысли сошлись. С точки зрения вызывающего сигнатура функции содержит builder, с точки зрения функции содержит function
Constantine
Надо просто совместить? :)
Constantine
У меня есть минивелосипед, жду в стандарте
Constantine
К чему? Про optional я знаю. Про builder+function фишка в том, что вызывающий хочет на самом деле передать builder, который в нужный момент сделает function, который будет вызван. Синтаксис с перечислением стандартного действия при ошибке на самом деле именно это
Anonymous
`Class Foo
{
private:
int a;
int b;
}
Foo::Foo(): a , b
`
Anonymous
вопрос
Anonymous
почему в конструкторе писать в том порядке
Anonymous
что и в классе
Anonymous
?
Anonymous
Anonymous
спс друг мой
Constantine
Anonymous
понял, понял
Constantine
А, туплю
Constantine
Ого! Хорошо что я не кроссплат пишу)))
Berkus
довольно плохо
Berkus
хотя бы потому что чертов препроцессор сильно замедлил принятие модулей
Berkus
ну и всякие https://github.com/boostorg/config/blob/develop/include/boost/config/compiler/borland.hpp которые по хорошему должны парой директив заменяться типа __has_feature
Berkus
в корневом cmakelists.txt сделать include_directories(.)
Berkus
есть еще CMAKE_SOURCE_PATH и CMAKE_CURRENT_SOURCE_PATH
Berkus
соответственно корневой каталог сорцов и текущий
Berkus
лучше их использовать
Berkus
ага
Anonymous
@berkus я тебя простил :)
Constantine
Berkus
нет
Berkus
статик либы это просто obj файлы в конвертике
Berkus
посмотри на командную строку, ничего там не прилинковывается
Berkus
если cmake современный то эти target_link_libraries будут использоваться при линковке экзешника с твоей либой
Berkus
либа естественно соберется, она же не резолвит ничего
Berkus
потому что динамическая библиотека это экзешник и ее линковать надо соответственно
Berkus
я написал сообщением выше
Berkus
если cmake современный то эти target_link_libraries будут использоваться при линковке экзешника с твоей либой
Berkus
ну посмотри на что undefined reference и проверь что оно действительно прилинковывается. circular deps на линуксе это беда
Berkus
два раза либу укажи
Matwey
Господа, а инициализация union-ов по-типу
union_type x{.field=42};это стандартный синтаксис, или какое-то загнутое расширение?
Processor
точка странная какая-то
Processor
инициализация похожа на правду
Processor
а вот точка
Matwey
без точки очевидно не соберется
Диджитал
С99 вроде
Диджитал
https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html
Mikhail
С99 вроде
а разве не расширение gnu99?
Sergey
обсуждали здесь, вроде собирались в с++20 ввести такой синтаксис
Sergey
designated initializers
🦥Alex Fails
Можно
Evgenii
надеюсь что нет
Sergey
все равно не доживешь, наверное
Vadim
Господа, ни у кого не завалялся хороший сборник вопросов для собеседования?