Square
Да и в тележке удобно хранить
Anonymous
internal_::socket& implementation();
const internal_::socket& implementation() const;
Ничего не придумали для того. чтобы избегать подобной дубликации кода? (я о повторении тела функции, которого тут нет для краткости)
Evgenii
Square
Square
Но последний раз, из iBooks я алексу с таким геморроем книгу извлекал :(
🦥Alex Fails
Там есть тип шара, но она кривая
Ioann_
Твое ?
Ioann_
Есть такая :)
Matwey
Лучше английский оригинал
Aidar
Matwey
да в русской есть баги
Да я вообще не понимаю, как они умудрились сверстать такое. Там же некоторые строки вообще без пробелов сверстаны
🐙 Antony
Я не знаю, как это реализовано на PowerPC при использовании xLC. https://www.ibm.com/support/knowledgecenter/SSGH2K_12.1.0/com.ibm.xlc121.aix.doc/compiler_ref/opt_tls.html TLS там по дефолту выключен, а для этого случая в libstdc++ я вижу вот такое:
728 /// call_once
729 template<typename _Callable, typename... _Args>
730 void
731 call_once(once_flag& __once, _Callable&& __f, _Args&&... __args)
732 {
733 #ifdef _GLIBCXX_HAVE_TLS
734 auto __bound_functor = std::__bind_simple(std::forward<_Callable>(__f),
735 std::forward<_Args>(__args)...);
736 __once_callable = &__bound_functor;
737 __once_call = &__once_call_impl<decltype(__bound_functor)>;
738 #else
739 unique_lock<mutex> __functor_lock(__get_once_mutex());
740 auto __callable = std::__bind_simple(std::forward<_Callable>(__f),
741 std::forward<_Args>(__args)...);
742 __once_functor = [&]() { __callable(); };
743 __set_once_functor_lock_ptr(&__functor_lock);
744 #endif
Если в их стандартной библиотеке такая же реализация, то я лучше свой велосипед сделаю, который гарантированно везде на атомиках.
Это грустно, сейчас багрепорт заведу
Igor
Viacheslav
Только нам его использовать не разрешают там 😂
Viacheslav
А, Вы именно про использование pthread_once.
🐙 Antony
Меня смущает использование TLS (дважды) даже в случае если всё уже проинициализировано https://godbolt.org/g/npyZVZ
🐙 Antony
А что мешает реализовать call_once так же, как static local variable? Кто знает?
Andrey
Всем привет! Подскажите, как это работает:
int v20, v21;
std::operator+<char,std::char_traits<char>,std::allocator<char>>(&v21, &v20, (const void **)&date_now);В date_now находится текущее untix time
Egor
static local variable скорее всего внутри через call_once реализована)
🐙 Antony
kitsu
В плюсах все еще нет вменяемого способа мувать в лямбды?
Igor
🐙 Antony
Завёл багрепорт https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84323
Ioann_
kitsu
а, ну печально тогда
Igor
а, ну печально тогда
Что печально-то? https://isocpp.org/wiki/faq/cpp14-language#lambda-captures
kitsu
аа, все, понял
Alexander "SonnySlave"
https://github.com/csmith-project/creduce
Ioann_
Пацаны
Ioann_
https://medium.com/data-design/lightgbm-on-windows-visual-studio-vs-mingw-gcc-r-with-visual-studio-417fc14eca2c
Ioann_
Что за wtf :?
Anonymous
Здарова, есть люди кто на curl кодит или других сет. библ.?
Nikita
Anonymous
Нет
Александр
+1
Anatoly
Тюрьму имеешь ввиду?
Oleg
Berkus
Berkus
Anonymous
Попробую cpr, vs2017 меня с curl шлет нафиг
Alexander "SonnySlave"
Alexander "SonnySlave"
скомпилировать не можешь? 😊
Anonymous
Ага, линки не может найти, файлы нужные установил, но все равно шлет.'(
Berkus
ну надо наверное include directories прописать правильно
Berkus
вряд ли с cpr у тебя будет больше успеха, учитывая что он под собой все равно curl использует
🐙 Antony
Мне тут шальная идея пришла в голову, в виде нового атрибута:
[[link_with "pthread"]]
template <class F>
void call_once(std::once_flag&, F);
[[link_with "stdc++fs"]]
class path;
[[link_with "boost_thread"]]
class thread;
Атрибут говорит компилятору, что при использовании данной функции/переменной/класса/неймспеса надо автоматически прилинковывать указанную библиотеку.
Есть уже правда расширение от MSVC в виде прагмы, но оно включается сразу при использовании заголовочного файла, что не всегда верно, так как в заголовочном фаёле могут быть методы не требующие линковки с библиотекой.
Как вам идея?
Viacheslav
У буста, по крайней мере, наименование библиотек несколько странное. Предполагается какая-то эвристика в выборе, или надо будет полное имя указывать?
Stanislav
Stanislav
@antoshkka лучше подскажи куда ругаться по поводу косячной документации к asio :)
Berkus
Berkus
крису пофигу примерно на всё, ругайся-не ругайся
🐙 Antony
Berkus
Stanislav
А что там косячное?
http://www.boost.org/doc/libs/1_66_0/doc/html/boost_asio/reference/ip__address/make_address.html
ip::address::make_address
хотя функция лежит просто в неймспейсе ip
🐙 Antony
Berkus
ну хз.. похоже на костыли для кривых билдсистем
Berkus
типа как линковочная прагма в вижаке
Berkus
я в целом не хочу ничего знать про билд инфраструктуру внутри сорцов, ибо это непереносимо
Berkus
вот напишу я [[link_with pthread]] а на таргет системе вместо pthread используется libnptl_native для тредиков, и чо
Berkus
я понимаю что ты целишь это сунуть в системные хедеры - но ее ж будут совать куда не попадя горе девелоперы
Alexander "SonnySlave"
Alexander "SonnySlave"
сборкой должна заниматься билд-система, а не исходник программы. Вон беркус выше описал
🐙 Antony
🐙 Antony
Aidar
Anatoly
Subbotin
кстати. парни. а есть какой-то тулчейн для c/c++ который умеет скачать все зависимости нужной версии из гита или готовые бинарные из какого-то хранилища, подложить их так чтобы при сборке проекта компилятор смотрел только на них, а потом собрать всё статически. ну как в модных стильных гошечках, растах и путонах
Igor
Alexander "SonnySlave"
Aidar
Alexander "SonnySlave"
Alexander "SonnySlave"
ну да ну да
Subbotin
ведь тратить своё время на еблю с зависимостями это модно стильно и современенно
Aidar
<Шутка про node_modules>