Andrei
А, да, и это на моей машине. 4720HQ i7
Andrei
На друго машине плюсы быстрее на 3%
Andrei
Там проц поновее.
Andrei
На x86 тоже плюсы побыстрее, но это странное llvm-овское поведение.
Andrei
Видимо баг им надо зарепортить, или по крайней мере фича-реквест.
Andrei
Они реально не до конца оптимизируют нативный код. Сравнивали просто ассемблер получившийся, и такие дела, что msvc лучше например генерирует D:
Berkus
не надо
Berkus
mersenne длинный
Алдар
что за язык интересно
Berkus
так, ладушки, сорцы телеграма в симейк я загнал
Berkus
теперь надо скомпилять!
Berkus
опять этот несчастный stdafx.h, где мой cotire
Andrei
код в студию!)
[] [ { state: 0 624n32 array; index: 624; 5489 state 0 @ set i: 1; [ state i 1 - @ dup 30 rnshift xor 1812433253 * i + state i @ set i 1 + i set i 624 < ] loop } ] [createMt19937] export {state: 0 624n32 array; index: 0;} ptr [ generator:; generator.index 624 = [ state: generator.state ptr; i: 0; [ state i @ 2147483648 and state i 1 + 624 mod @ 2147483647 and or dup 1 rnshift state i 397 + 624 mod @ xor swap 1 and 1 = [ 2567483615 xor ] [ a:; a copy ] if state i @ set i 1 + i set i 624 < ] loop 0 generator.index set ] [] if generator.state generator.index @ generator.index 1 + generator.index set dup 11 rnshift xor dup 7 lshift 2636928640 and xor dup 15 lshift 4022730752 and xor dup 18 rnshift xor ] [useMt19937] export
Andrei
Да-да. Обратная польская нотация :3
Berkus
нечитаемо
Berkus
// we copy some parts of C++11/14/17 std:: library, because on OS X 10.6+ // version we can use C++11/14/17, but we can not use its library :( namespace std_ { да они там наркоманы
Andrei
нечитаемо
Просто стиль такой. Можно писать и читаемо. Здесь исплоьзуется стековость языка вдоль и поперек.
Andrei
А к постфиксу быстро привыкаешь. В нём есть свои бенефиты для описания структур данных.
Andrei
Для какого-нибудь более осмысленного кода будет вполне читаемо.
Surreal
А почемк не могут-то
Там, вроде, libc++. Она, видимо, меньше новых фич поддерживает в сравнении с libstdc++.
Berkus
libc++ поддерживает больше фич, чем libstdc++ и написана на более современном с++
Berkus
они там пишут про древнючий 10.6
Berkus
на нем еще libstdc++ наверное была даже
Surreal
они там пишут про древнючий 10.6
Там 10.6+ указано же. Или они минорные версии имели в виду?
🦥Alex Fails
#minihelp
Surreal
Там 10.6+ указано же. Или они минорные версии имели в виду?
Да. Там, оказывается, все печально в 10.6-7.
Evgenii
Да. Там, оказывается, все печально в 10.6-7.
А почему бы тогда не нафиг его
Vitaliy
Спрошу сразу, чтобы не быть голословным. Пишу на JVM-стеке 5 лет, иногда на C/C++ нативные части. Вопросы могут быть по кросс-компиляции линуксовых либ, и, банально, по языку/stdlib, потому что после Java многое кажется непривычным(знать-то основы знаю, но одно дело знать, что можно написать, другое дело понимать, как оно работает изнутри и какие побочки может нести). Такое в этом чате спрашивать можно?
Evgenii
#supapro
Evgenii
Или как там
🦥Alex Fails
А по основам и чутка пофлудить в рамках темы - лучше в #supapro
Vitaliy
Жни и портирование не трогаю, только компиляцию
🦥Alex Fails
По стдлиб лучше в супапро, хотя шаблонную магию можно и тут
Vitaliy
Ну вот я например хочу спросить у вас совета по поводу pre-init singleton в C++. Типа Singleton::init(param), Singleton::get().
Vitaliy
Как вы привыкли такое писать и так далее
Vitaliy
Surreal
Как вы привыкли такое писать и так далее
Это вам синглтон майерса нужен.
🦥Alex Fails
Это вам синглтон майерса нужен.
а можно сюда сниппет? Толькл просьба тегами пометить
Vitaliy
Спасибо! А в целом, вопросы такого уровня под этот чат подходят?
Al
Это вам синглтон майерса нужен.
А с новыми стандартами он все разрастаться должен
Surreal
Instance& getInstance() { static Instance instance; return instance; } #singleton #scott #meyers
🦥Alex Fails
А с новыми стандартами он все разрастаться должен
В новом стд вообще можно ж тупо статик-переменную юзать
🦥Alex Fails
Только мне говорили, что мсвц тут не соблюдает стандарт
🦥Alex Fails
std::once_flag - cppreference.com en.cppreference.com hardware_destructive_interference_sizehardware_constructive_interference_size.
Vitaliy
Instance& getInstance() { static Instance instance; return instance; } #singleton #scott #meyers
Я это и использую, кстати :) Но мне нужно, чтобы в init инстанс создавался, а в get возвращался :)
Vitaliy
Один раз передашь параметры конструктора в init, затем получаешь инстанс гетом
Surreal
Один раз передашь параметры конструктора в init, затем получаешь инстанс гетом
Если параметры на этапе компиляции известны, можно обощенный шаблон сделать.
Vitaliy
Нет, они в рантайме вычисляются
Surreal
Нет, они в рантайме вычисляются
Они меняются у одного объекта? Если нет, то лучше, наверное, обычные объекты класса использовать.
Mikhail
Нет, они в рантайме вычисляются
а чоб тебе метод инит не добавить к инстансу? и далее getInstance().init(bla...bla..bla...) ?
Vitaliy
Ну я пока так и сделал. Но стремно, такое ощущение, что можно лучше
Mikhail
лучшее - враг хорошего
Surreal
а чоб тебе метод инит не добавить к инстансу? и далее getInstance().init(bla...bla..bla...) ?
Это не thread safe уже будет. Сужается область применения.
Vitaliy
И это тоже
Mikhail
Это не thread safe уже будет. Сужается область применения.
а где это требуется тред-сейф постоянно инициализировать? основной кейс синглтона как такового - getInstance, менеджмент свойств к синглтону не относится никак - они сами по себе
Vitaliy
Можно синхронизвцию прикрутить, но уже совсем костыльно
Mikhail
код в котором начинается гонка вначале запуска за инициализацию параметров синглтона - какой-то уг кмк)
Surreal
код в котором начинается гонка вначале запуска за инициализацию параметров синглтона - какой-то уг кмк)
Я пару раз видел, как из синглтона подтягивались параметры в цикл. функции пула потоков.
Mikhail
так ведь "из синглтона", а не "в синглтон в конструктор"
Surreal
Да, но кто-то увидит в коде get().init(a,b,c), скопипастит в многопоточный код и на старте получит кашу. У меня просто синглтон с thread safe ассоциируется. Если внимательно читать, писать и поддерживать код, то такого, конечно, не будет. Тут уж кому как удобнее.
Mikhail
ну я не спорю, что синхронизацию в сетап можно добавить) лишней не будет)
Mikhail
главное не пытаться смастерить конструктор синглтона с параметрами
Surreal
Что там, кстати, с конструкторами умных указателей при передаче их в качестве параметров функции? Саттер говорил на одной из конференций, что пофиксили. Я как-то упустил момент. Может кто интересовался текущим статусом в msvc и gcc\clang? Чисто теоретический вопрос, очевидно, что использование make_... функций предпочтительнее тут.
Berkus
А почему бы тогда не нафиг его
они могут его поддерживать а нам он точно не нужен
Berkus
Про кросс-компиляцию, жни и особенности портирования лучше тут, это уже advanced-вопросы, кмк
про жни можно у меня спрашивать, я в основном на онудуроиде его ковыряю, но суть там примерно одинакова