🦥Alex Fails
Ну, там все на стеке Буста. Для тестирования хотят сделать локал_сокеты
🦥Alex Fails
Для реальной работы - тцп соки
ඞ
Это, а как хуячить сеть в мультиплатформенном коде?
ඞ
Дефайнами?
🦥Alex Fails
Есть либы
🦥Alex Fails
Курл, асио тот же
ovf
ну, серверных платформ сейчас где-то 2.8 штуки (1.3 линукса, одна винда, 0.5 всего остального)
ovf
в зависимости от того, насколько экзотические вещи сервер должен делать, может оказаться достаточно написать обёртки в стиле socket api недостающих виндовых функций и дальше просто писать на сокетах
🦥Alex Fails
Rafael 🌵
когда-то же надо и буст изучать линуксовые сокеты я в прошлой версии программы использовал
Kirill
А какова вероятность того, что Asio однажды включат в стандарт?
Rafael 🌵
Rafael 🌵
в 17 будет ::net
Kirill
Оо
🦥Alex Fails
Ятне помню, включили ли их
Kirill
Вот это новость
ovf
но я отдаю себе отчёт, что мой взгляд на это дело продиктован во многом отсутствием у меня каких-либо знаний про то, как на винде что-нибудь делать быстро (т.е. например о iocp у меня очень расплывчатое представление)
Rafael 🌵
и еще будуд средства для работы с фс
Stanislav
Rafael 🌵
нет
как так, вроде же в каком то из черновиков был
Rafael 🌵
пожалуй пора на раст валить
🦥Alex Fails
Они в 20-м будут
Rafael 🌵
ждать еще 3 года пока они додумают добавить средства для работы с интетом - это слишком долго
Rafael 🌵
вот жеж срань
Kirill
DateTime очень не хватает. Хотя в бусте он какой-то слишком мудреный.
Stanislav
Rafael 🌵
Stanislav
там этот дейтайм присваивался в оптионал 🙈
Stanislav
в результате функции
Stanislav
хз зачем
Anonymous
Кто-то может посоветовать raii синглтон?
Rafael 🌵
хммм ввел шаблоны и получил undefined reference на функции шаблонного класса
Rafael 🌵
Rafael 🌵
Rafael 🌵
Rafael 🌵
в чем трабла? что-то не так у меня с шаблонами?
🦥Alex Fails
Надо их инстанцировать
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
ждём модулей в плюсах...
Rafael 🌵
ttldtor
ну я знавал людей, которые включали *.cpp
ttldtor
которые в свою очередб включали *.h
ttldtor
это типа такой быстрый воркэраунд
🦥Alex Fails
Extern можно ещк
Rafael 🌵
мне в универе говорили что разницы никакой
ttldtor
разницы нет, у меня обычно просто *.hpp
ttldtor
рано или поздно что-то становится шаблоном
ttldtor
правда это не годится для разработки с Qt, иногда там надо просто пустышку создавать)
ttldtor
надеюсь ты понял, что я имел в виду, что необходимый тебе метод есть только в одном объектнике
ttldtor
явное инстанцирование тут не поможет
Rafael 🌵
ttldtor
ты подключаешь просто заголовок
ttldtor
и в тестах у тебя нет метода
ttldtor
ты можешь сказать тестам, что метод объявлен где-то в другом месте
ttldtor
используя extern template
ttldtor
не объявлен, а реализован
ttldtor
либо всю реализацию метода затащить в заголовок
ttldtor
а явное инстанцирование это... просто перемещение замедления компиляции из одного места в другое)
ttldtor
а ну да, эти же экземпляры тоже в объектниках...
Rafael 🌵
все, я понял что это значит:
я объявил класс в хедере и сказал, что у меня есть какой-то метод у него
в срр файла я описал функцию, но! файл с тестоми об этом не знает, потмоу что я инклюжу только хедер
ttldtor
ну это как подцепить заголовок либы и не подцепить либу.