Vladislav
или какая-нибудь наркомания типа shared_ptr на самого себя
Denis
enable_shared_from_this, уиии
Vladislav
Есть ли какой-нибудь менее костыльный способ инициализировать локальный static массив?
Vladislav
🦥Alex Fails
а если в { } ?
Vladislav
а если в { } ?
не хочется вручную цикл разворачивать в 33 копипастных строчки)
🦥Alex Fails
макросом вжухни
🦥Alex Fails
или маджик_гет возьми
🦥Alex Fails
хз, как он поможет, но зато магия же
Constantine
а нельзя там по-старому, булевскую переменную и иф на нее?
Vladislav
Constantine
да, кстати, а инициализация static-переменных гарантируется thread safe?
Vladislav
Vladislav
Constantine
т.е. ими не надо пользоваться? 😆
Vladislav
почему? Наоборот же)
Constantine
или их на запуске программы инициализируют?
Vladislav
одноразовый overhead - нестрашно
Constantine
подожди, он должен будет атомарную операцию чтения произвести
Constantine
перед использованием
Vladislav
там double-check же
Constantine
так он не работает на самом деле же
Vladislav
сначала проверяем неатомарно, если не повезло то перепроверяем уже атомарно
Vladislav
http://en.cppreference.com/w/cpp/language/storage_duration#Static_local_variables
Vladislav
Note: usual implementations of this feature use variants of the double-checked locking pattern, which reduces runtime overhead for already-initialized local statics to a single non-atomic boolean comparison.
Constantine
подожди, double check это вообще законно?
Vladislav
Почему нет? Если он правильно написан (и в этом я разработчикам компилятора доверяю) :)
Vladislav
главное - фенсы где надо расставить
Vladislav
http://preshing.com/20130930/double-checked-locking-is-fixed-in-cpp11/
Vladislav
можно еще http://en.cppreference.com/w/cpp/thread/call_once заюзать, видимо, но это еще более костыльно, на мой взгляд
Constantine
там хоть одна реализация не запрашивает синхронизацию при запросе из основного потока?
Constantine
В смысле, хотя бы одна реализация не требует нагрузки при запросе уже 100 лет созданного?
🦥Alex Fails
Constantine
Vladislav
я попытался замерить, но никакой разницы с глобальной инициализацией вообще не нашел
Aidar
Всегда думал что на х86 это нереально измерить
Vladislav
Constantine
Так и есть)
Да там наверняка в процессоре поифано :)
Igor
Igor
на винде у меня из-за этого проблемы закрались
Arseny
ᅟ
Доброго времени суток, может кто знает ?...
Как сделать вложенную таблицу в Qt ?
ᅟ
Например что бы в X ячейке информация была разложена на несколько ячеек
ᅟ
Square
ᅟ
Square
https://t.me/qt_chat
ᅟ
Благодарю
Berkus
Berkus
Berkus
Vlad
Vlad
http://szelei.me/rpc-benchmark-part1/
Vlad
например
Vlad
Vladislav
Зачем?) я и сам считаю что thrift лучше)
Vyacheslav
Vyacheslav
апи как раз тоже норм, на первый взгляд
все разложено по полочкам
Berkus
Рапид оверинжинирнутый но там есть полезные штуки типа streaming parser
Ἰωάννης
и меня :(
Vladislav
Но как?
Constantine
О! Хочу proposal: forward class declaration with base classes specified
Constantine
И сверху forward nested class declaration
Constantine
При этом если base class не единственный, никакой класс не может incomplete type
Constantine
Как альтернатива - только последний класс в списке наследования может быть incomplete type
Constantine
Причина: в этом случае компилятор может выполнять typecast
Aidar
хмм как насчет итераторов типа меджикгет возвращающих variant?
Mikhail
народ подскажите каким путём пойти для организации потокобезопасных классов, что использовать task c++11, OpenMP, Microsoft PPL, или ещё что порыть
Surreal
Если задача легко решается тем, что есть в стандартной либе, то, естественно, лучше использовать ее. Только не используйте std::async, с остальным проблем там нет.
Mikhail
async я читал что много на неё ругаются но не копал особо бо ней, так что не предовал ей внимание
Крылатый