ovf
Да тут задача другая стоит – написать враппер с шаблоном. При тесте там один тип, при релизе – другой
а, да, это я пропустил, приношу свои извинения. я думал, задача была реализовать работающую систему. а раз написать враппер -- то тут уж никаких вопросов.
🦥Alex Fails
Ну, там все на стеке Буста. Для тестирования хотят сделать локал_сокеты
🦥Alex Fails
Для реальной работы - тцп соки
Это, а как хуячить сеть в мультиплатформенном коде?
Дефайнами?
🦥Alex Fails
Есть либы
Stanislav
Дефайнами?
ну как например
🦥Alex Fails
Курл, асио тот же
Stanislav
Курл, асио тот же
ну чоты, это только клиент
Курл, асио тот же
Статик линкин ммм
Rafael 🌵
Курл, асио тот же
QT скорее всего тоже
Stanislav
QT скорее всего тоже
Qt потому что QT это QuickTime )
ovf
ну, серверных платформ сейчас где-то 2.8 штуки (1.3 линукса, одна винда, 0.5 всего остального)
ovf
в зависимости от того, насколько экзотические вещи сервер должен делать, может оказаться достаточно написать обёртки в стиле socket api недостающих виндовых функций и дальше просто писать на сокетах
Rafael 🌵
когда-то же надо и буст изучать линуксовые сокеты я в прошлой версии программы использовал
Kirill
А какова вероятность того, что Asio однажды включат в стандарт?
Rafael 🌵
в 17 будет ::net
Kirill
Оо
🦥Alex Fails
Ятне помню, включили ли их
Kirill
Вот это новость
ovf
но я отдаю себе отчёт, что мой взгляд на это дело продиктован во многом отсутствием у меня каких-либо знаний про то, как на винде что-нибудь делать быстро (т.е. например о iocp у меня очень расплывчатое представление)
Rafael 🌵
и еще будуд средства для работы с фс
Rafael 🌵
нет
как так, вроде же в каком то из черновиков был
Rafael 🌵
пожалуй пора на раст валить
🦥Alex Fails
Они в 20-м будут
Rafael 🌵
ждать еще 3 года пока они додумают добавить средства для работы с интетом - это слишком долго
Stanislav
как так, вроде же в каком то из черновиков был
ну так в июне последний драфт был, щас только поправки будут вносить, и этого официально нет
Rafael 🌵
вот жеж срань
Kirill
DateTime очень не хватает. Хотя в бусте он какой-то слишком мудреный.
Stanislav
DateTime очень не хватает. Хотя в бусте он какой-то слишком мудреный.
ааа я тут в одном месте очень мудренный код видел с ним
Stanislav
там этот дейтайм присваивался в оптионал 🙈
Stanislav
в результате функции
Stanislav
хз зачем
Anonymous
Кто-то может посоветовать raii синглтон?
Rafael 🌵
хммм ввел шаблоны и получил undefined reference на функции шаблонного класса
Rafael 🌵
Rafael 🌵
Rafael 🌵
а вот где все создаю
Rafael 🌵
в чем трабла? что-то не так у меня с шаблонами?
🦥Alex Fails
Надо их инстанцировать
Rafael 🌵
Надо их инстанцировать
ссылку дашь про это почитать?
Rafael 🌵
Надо их инстанцировать
а все, почитал про это, но ведь я это уже сдалал
Rafael 🌵
std::shared_ptr<SocketWriter<Socket>> writer(new SocketWriter<Socket>(writer_socket ,1024)); std::shared_ptr<SocketReader<Socket>> reader(new SocketReader<Socket>(reader_socket, 41)); вот тут
Rafael 🌵
там они инстанцировались через new
🦥Alex Fails
странно
ttldtor
http://stackoverflow.com/questions/1111440/undefined-reference-error-for-template-method
ttldtor
где у тебя метод заимплеменчен-то?
ttldtor
в одном объектнике какие-то непонятные методы, а во втором использование отсутствуюющих методов
ttldtor
на выхлопе
ttldtor
либо в тестах (и не только) пиши extern template, либо загоняй всё в header-only
ttldtor
ждём модулей в плюсах...
ttldtor
ну я знавал людей, которые включали *.cpp
ttldtor
которые в свою очередб включали *.h
ttldtor
это типа такой быстрый воркэраунд
🦥Alex Fails
Extern можно ещк
Rafael 🌵
которые в свою очередб включали *.h
вот кстати, правильно использвоать .h или .hpp вместе с .cpp фалйами?
Rafael 🌵
мне в универе говорили что разницы никакой
ttldtor
разницы нет, у меня обычно просто *.hpp
ttldtor
рано или поздно что-то становится шаблоном
ttldtor
правда это не годится для разработки с Qt, иногда там надо просто пустышку создавать)
Rafael 🌵
либо в тестах (и не только) пиши extern template, либо загоняй всё в header-only
http://www.cplusplus.com/articles/1C75fSEw/ вот тут просто прописывают class template Example<int>; class template Example<float>; class template Example<double>; в .cpp файле
ttldtor
надеюсь ты понял, что я имел в виду, что необходимый тебе метод есть только в одном объектнике
ttldtor
явное инстанцирование тут не поможет
ttldtor
ты подключаешь просто заголовок
ttldtor
и в тестах у тебя нет метода
ttldtor
ты можешь сказать тестам, что метод объявлен где-то в другом месте
ttldtor
используя extern template
ttldtor
не объявлен, а реализован
ttldtor
либо всю реализацию метода затащить в заголовок
ttldtor
а явное инстанцирование это... просто перемещение замедления компиляции из одного места в другое)
ttldtor
а ну да, эти же экземпляры тоже в объектниках...
Rafael 🌵
все, я понял что это значит: я объявил класс в хедере и сказал, что у меня есть какой-то метод у него в срр файла я описал функцию, но! файл с тестоми об этом не знает, потмоу что я инклюжу только хедер
ttldtor
ну это как подцепить заголовок либы и не подцепить либу.