Vladislav
thrift так и работает, грубо говоря
Aleksei
ну вот в генераторе можно их и регистрировать, нет?
Да. Возможно, придется доделать регистрацию
Aidar
Там есть что-то типа регистрации типов
Чё это значит вам же поля достать надо
Aidar
А библиотека ничего не знает о полях
Aleksei
У сгенерированных классов есть методы паковки-распаковки
Aidar
А вы хотите так же вектор передавать?
Aidar
Или любое шаблонное
Aidar
Сделайте регистрацию своего шаблонного вектора с паковкой распаковкой
Aidar
Генерацию*
Aleksei
Дело в том, что эти типы есть у пользователя, а не у меня. У меня есть только полное имя в виде строки. Я хотел инстанцировать шаблон этим пользовательским типом
Aleksei
Ну и объект создать и т.д.
Aidar
Чем вектор отличается от другого пользовательского типа
Aidar
Вектор с элементами пользовательского типа это пользовательский тип
Aleksei
Вектор привел как пример шаблона
Aidar
Ну любой шаблонный тип - пользовательский
Aidar
Если параметры заранее неизвестны
Aleksei
С alingnment'ом исторических данных на разных хостах - да, надо решать вопрос. А в онлайн не актуально
Denis
можно еще каким-то образом повторить мок кьютешный. Ну или просто заюзать кьют и все эти пользовательские типы наследовать от куобжекта. Тогда будет возможность создвать по строке с именем
cyber
Можно и свою рефлексию припилить
Алдар
http://www.techiedelight.com/data-structures-and-algorithms-interview-questions-stl/
Dmitry
а поясните за инклуд .с файлов. вот Артамонов пишет: Что характерно, настоящий практический смысл в #include «xxxxxxx.c» есть, только вы его не знаете. Он из той самой области оптимизации исполняемого кода, в которой вы как свинья в апельсинах. И к стандартам языка C отношения не имеет. зачем инклудить .с файлы?
Aidar
По-моему нет смысла
Aidar
Ну в смысле по сравнению с написанием все в 1 файле
Aidar
С линковкой может и был когдато
Aidar
бла ну вдруг он туда тела шаблонов складывает, хотя врятли
Для этого есть .inl и прочие хедеры с другими названиями
Deleted Account
Для этого есть .inl и прочие хедеры с другими названиями
стандартом не запрещено... называю файлы как хочу, на 95%
Animal
Есть ли возможность слинковать исполняемые файл со статической библиотекой?
Aidar
Но ведь раз исполняемый файл слинкован значит там есть все нужные символы
Animal
Если изначально предполагалось, что будет использоваться динамическая библиотека, а потом вдруг в голову пришло связать статически) я понимаю, что это тупая и в реальности не встречающеяся необходимость, но просто из спортивного интереса)
Aleksei
ну слинкуй, никто не запрещает
🦥Alex Fails
@AlexFails что думаешь?
Я соглашусь со всем. До этой ветки чата только доползаю.
Square
Тут была вакансия??(
🦥Alex Fails
Да. Я ее удолил, т.к. без согласования👹
🦥Alex Fails
а хорошя хоть?
ну, ее решили обсудить в холиваре
Deleted Account
аа ну понятно всё
Surreal
где источник? Хочу весь почитать
Это из твиттера разработчика stl для msvc. Пока не находил адекватного списка изменений.
Nikita
Для тестов норм
размеры объектников раздувать?
Evgenii
размеры объектников раздувать?
А как приватные функции тестировать?
Nikita
#ifdef DEBUG #define private public #define protected public #define class struct #endif вариант для извратов
Evgenii
паблик морозов
Что, выносить все внутреннее дерьмо в *.h?
Andrei
А как приватные функции тестировать?
Никак. Я бы тестировал только паблик методы.
Deleted Account
Никак. Я бы тестировал только паблик методы.
можно же тестирующий метод закинуть в класс ?
Andrei
А если речь о каком-то другом тестировании, то как угодно.
Evgenii
Никак. Я бы тестировал только паблик методы.
Если у меня сложная внутренняя функция, которая юзерам не нужна, с чего бы мне ее не тестировать?
Andrei
можно же тестирующий метод закинуть в класс ?
Пожалуйста, но это не юнит-тестирование уже.
Andrei
Если она не нужна юзерам, то зачем она вообще? :)
Andrei
Если у функции есть наблюдаемое поведение, то его и надо тестировать.
Andrei
Что это значит?
Andrei
Она вызывается из публичных методов?
Andrei
Хотя бы опосредовано?
Evgenii
Короче, гугл говорит в своей репе gtest инклюдить c/cpp, я так и делаю
Andrei
Если да, то надо написать соответствующий тест, которы сделает так, что она запустится.
Evgenii
Если да, то надо написать соответствующий тест, которы сделает так, что она запустится.
И если публичная функция вызывает десяток таких нетестируемых функций, то получается очень удобно
Andrei
Нормально получается. Никто же не говорит, что на одну функцию надо один тест.
Andrei
В идеале надо написать тесткейсов по количеству ветвлений в коде.
🦥Alex Fails
В Макконеле говорилось, что на каждое ветвление миниум +1
Evgenii
Нормально получается. Никто же не говорит, что на одну функцию надо один тест.
Ну вот я складываю пять чисел из пяти функций. Как узнать какая сломалась?
Andrei
Функции берут эти числа откуда?
Nikita
но вообще тестирование приватов нарушит инкапсуляцию, и это будет уже не юнит-тест
Evgenii
а тест-либы во friend занести для debug-сборки?
Функции не часть класса. Просто пять функций объявленных в *.cpp
Evgenii
Функции берут эти числа откуда?
Я передаю какой то инпут, и каждая с ним что-то делает
Nikita
ну так тем более, private тогда уже и не мешает
cyber
А как приватные функции тестировать?
нужно кастануть объект к указателю на void и вычислить адресс функции, потом ее вызвать