Andrei
А, да, и это на моей машине. 4720HQ i7
Andrei
На друго машине плюсы быстрее на 3%
Andrei
Там проц поновее.
Andrei
На x86 тоже плюсы побыстрее, но это странное llvm-овское поведение.
Andrei
Видимо баг им надо зарепортить, или по крайней мере фича-реквест.
Andrei
Они реально не до конца оптимизируют нативный код. Сравнивали просто ассемблер получившийся, и такие дела, что msvc лучше например генерирует D:
Berkus
Алдар
Berkus
не надо
Berkus
mersenne длинный
Алдар
что за язык интересно
Berkus
Berkus
так, ладушки, сорцы телеграма в симейк я загнал
Berkus
теперь надо скомпилять!
🦥Alex Fails
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
Для какого-нибудь более осмысленного кода будет вполне читаемо.
Evgenii
🦥Alex Fails
Surreal
А почемк не могут-то
Там, вроде, libc++. Она, видимо, меньше новых фич поддерживает в сравнении с libstdc++.
Berkus
Berkus
libc++ поддерживает больше фич, чем libstdc++ и написана на более современном с++
Berkus
они там пишут про древнючий 10.6
Berkus
на нем еще libstdc++ наверное была даже
🦥Alex Fails
#minihelp
Surreal
Evgenii
Vitaliy
Спрошу сразу, чтобы не быть голословным. Пишу на JVM-стеке 5 лет, иногда на C/C++ нативные части. Вопросы могут быть по кросс-компиляции линуксовых либ, и, банально, по языку/stdlib, потому что после Java многое кажется непривычным(знать-то основы знаю, но одно дело знать, что можно написать, другое дело понимать, как оно работает изнутри и какие побочки может нести).
Такое в этом чате спрашивать можно?
Evgenii
#supapro
Evgenii
Или как там
🦥Alex Fails
Спрошу сразу, чтобы не быть голословным. Пишу на JVM-стеке 5 лет, иногда на C/C++ нативные части. Вопросы могут быть по кросс-компиляции линуксовых либ, и, банально, по языку/stdlib, потому что после Java многое кажется непривычным(знать-то основы знаю, но одно дело знать, что можно написать, другое дело понимать, как оно работает изнутри и какие побочки может нести).
Такое в этом чате спрашивать можно?
Про кросс-компиляцию, жни и особенности портирования лучше тут, это уже advanced-вопросы, кмк
🦥Alex Fails
А по основам и чутка пофлудить в рамках темы - лучше в #supapro
Vitaliy
Жни и портирование не трогаю, только компиляцию
🦥Alex Fails
По стдлиб лучше в супапро, хотя шаблонную магию можно и тут
Vitaliy
Ну вот я например хочу спросить у вас совета по поводу pre-init singleton в C++. Типа Singleton::init(param), Singleton::get().
Surreal
Спрошу сразу, чтобы не быть голословным. Пишу на JVM-стеке 5 лет, иногда на C/C++ нативные части. Вопросы могут быть по кросс-компиляции линуксовых либ, и, банально, по языку/stdlib, потому что после Java многое кажется непривычным(знать-то основы знаю, но одно дело знать, что можно написать, другое дело понимать, как оно работает изнутри и какие побочки может нести).
Такое в этом чате спрашивать можно?
Про компиляцию, наверное, можно сюда, если у вас что-то интересное там. По языку и stl лучше в др. чат. Если же вам надо алгоритм реализовать через сущ. алгоритмы в stl или с метапрограммированием чего будет, то тоже тут можно пообсуждать.
Vitaliy
Как вы привыкли такое писать и так далее
🦥Alex Fails
Vitaliy
Surreal
Vitaliy
Спасибо! А в целом, вопросы такого уровня под этот чат подходят?
🦥Alex Fails
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
🦥Alex Fails
Vitaliy
Один раз передашь параметры конструктора в init, затем получаешь инстанс гетом
Evgenii
Surreal
Vitaliy
Нет, они в рантайме вычисляются
Vitaliy
Ну я пока так и сделал. Но стремно, такое ощущение, что можно лучше
Mikhail
лучшее - враг хорошего
Surreal
Vitaliy
И это тоже
Vitaliy
Можно синхронизвцию прикрутить, но уже совсем костыльно
Mikhail
код в котором начинается гонка вначале запуска за инициализацию параметров синглтона - какой-то уг кмк)
Surreal
Mikhail
так ведь "из синглтона", а не "в синглтон в конструктор"
Surreal
Да, но кто-то увидит в коде get().init(a,b,c), скопипастит в многопоточный код и на старте получит кашу. У меня просто синглтон с thread safe ассоциируется. Если внимательно читать, писать и поддерживать код, то такого, конечно, не будет. Тут уж кому как удобнее.
Mikhail
ну я не спорю, что синхронизацию в сетап можно добавить) лишней не будет)
Mikhail
главное не пытаться смастерить конструктор синглтона с параметрами
Surreal
Что там, кстати, с конструкторами умных указателей при передаче их в качестве параметров функции? Саттер говорил на одной из конференций, что пофиксили. Я как-то упустил момент. Может кто интересовался текущим статусом в msvc и gcc\clang? Чисто теоретический вопрос, очевидно, что использование make_... функций предпочтительнее тут.
Berkus