
Tema
23.03.2017
10:39:13
это хор

mefest
23.03.2017
10:42:08
https://godbolt.org/g/yVKPKS

Aleksei
23.03.2017
10:51:25

mefest
23.03.2017
11:02:47

Google

Aleksei
23.03.2017
11:03:00
ну да

mefest
23.03.2017
11:03:09
в данном случае guard низзя выкидывать

Aleksei
23.03.2017
11:03:19
Я про это же

mefest
23.03.2017
11:03:47
ой, извините, перепутал собеседников

Tema
23.03.2017
11:03:49
вот и збс
пойду свой код перепишу
на локгвард

Aleksei
23.03.2017
11:04:44
Без локгварда грустно

mefest
23.03.2017
11:04:48

Антон
23.03.2017
11:04:55
а оптимизатор съедает неиспользуемые функции?

Aleksei
23.03.2017
11:05:00
Если где-нибудь эксепшен вылетит, будет плохо

Tema
23.03.2017
11:05:11

Aleksei
23.03.2017
11:05:20

Google

Антон
23.03.2017
11:05:34

Aleksei
23.03.2017
11:05:47
есть флаг вроде бы, забыл уже

mefest
23.03.2017
11:06:02

Evgeniy
23.03.2017
11:06:30

Tema
23.03.2017
11:06:50

mefest
23.03.2017
11:06:51
это ещё как
http://www.cplusplus.com/reference/atomic/atomic/atomic/
тут пример вроде есть

Tema
23.03.2017
11:06:53
и юзать функционал

Aleksei
23.03.2017
11:07:24

Tema
23.03.2017
11:07:28
типа как делаеш бинарий а юзаеш его как либу

Evgeniy
23.03.2017
11:07:42

Tema
23.03.2017
11:07:44

mefest
23.03.2017
11:07:47

Tema
23.03.2017
11:07:50

/dev
23.03.2017
11:08:04

Aleksei
23.03.2017
11:08:05
там перечислить надо, что включать полностью

mefest
23.03.2017
11:08:10
мне кажется он функции не удаляет даже если она нигде не вызываетяс

/dev
23.03.2017
11:08:52
сравните, что будет.
в одном случае получите
create destroy infix
в другом
create infix destroy

Evgeniy
23.03.2017
11:09:13

/dev
23.03.2017
11:09:17
side-effect-то будет, но unreferenced temporary будет сразу уничтожен
и то же будет с локом

Google

Tema
23.03.2017
11:09:41
=)
ты можеш только её зохватить

mefest
23.03.2017
11:10:54

/dev
23.03.2017
11:13:11

Антон
23.03.2017
11:13:13
void*(std::stack<int32_t>*)

Aleksei
23.03.2017
11:13:19

Антон
23.03.2017
11:13:20

/dev
23.03.2017
11:13:23
убери референс и посмотри на время жизни

Антон
23.03.2017
11:13:27
указатель на функцию
std::map<std::string, void*(std::stack<int32_t>*)> если точнее

Aldar
23.03.2017
11:14:16
* не в скобочках должен быть?

Антон
23.03.2017
11:15:30
в скобочках
ору, я определил глобальную переменную в хедере. не работает.

/dev
23.03.2017
11:18:38

Tema
23.03.2017
11:19:19
что за automatic storage

Aleksei
23.03.2017
11:20:36

mefest
23.03.2017
11:21:00

Mr.
23.03.2017
12:29:14
ну вы знаете кто-то должен был сказать это

Google

Mr.
23.03.2017
12:29:50
?

Alexander
23.03.2017
12:31:07
Кто-нибудь в курсе, когда в стандарте могут появится Concurrent data structures?

Pavel
23.03.2017
12:31:17
крутой вопрос :)
я думаю для начала бы этим структурам вообще появится.
да чтобы еще и без шанса загреметь за очередной патент =(

Alexander
23.03.2017
12:32:13

Дед Пегас
23.03.2017
12:32:20

Alexander
23.03.2017
12:32:37

Pavel
23.03.2017
12:32:45
Они крайне кастомные. я не знаю таких которые бы работали "униврсально хорошо"
а структура хэша которая только для трех тридов - это ок, конечно, но в STL довольно стремно такое тащить
хотя признаться мне был бы интересен std::unorered_map где мьютекс стоит на рехаш, а далее гранулярные мьютексы на бакеты.
+ там жесть с патентами, как я отметил выше.

Alexander
23.03.2017
12:34:25

Pavel
23.03.2017
12:34:36
да говно это все
да еще тормозное.

Alexander
23.03.2017
12:34:47
Надо Хижинскому как-нибудь сказать об этом)

Pavel
23.03.2017
12:35:05
spsc в бусте - оно ужасное, оно медленнее naive имплементации в десятки раз =(

Дед Пегас
23.03.2017
12:35:23
Жестоко.

Pavel
23.03.2017
12:35:30
о чем? там ссылка на десяток алгоритмов, spsc - тормозной.

Google

Pavel
23.03.2017
12:35:43
в тырнете - полно тестов, мои тесты дали примерно такое же впечатление.
хотя я уточню, что для меня тормозной, у меня 10-100m действий в секунду.
и даже очередь из того же Concurrent C++ 11 - работает лучше :)
хотя она там тоже не все кейсы учитывает....
а пифоманс хэшей, отдельная тема, вот есть крутая штука: https://probablydance.com/2017/02/26/i-wrote-the-fastest-hashtable/
а libcds Хижинского крутая штука, почему его не втащить в проект, но для стандарта там все равно много особенностей.

Mikhail
23.03.2017
12:41:32
Я помню была старая статья, вот такая - http://incise.org/hash-table-benchmarks.html
Там хуже бустового хеша был только ruby хэш :)

Pavel
23.03.2017
12:42:12
угу, это напалм :)

Mikhail
23.03.2017
12:42:14
Интересно их было бы сравнить сейчас

Pavel
23.03.2017
12:42:31
хэши вообще дьявольщина.
а когда тебе надо жесткие требования по времени выборки - вдвойне дьявольщина.
да чистый конкурент штука очень специфичная, на мой взгляд
нередко грамотно расставленные мутексы на обычном STL контейнере дают очень приличные результаты
у меня тут тест завалялся
std::map: 1.9 mega ops per second
tbb::concurrent_unordered_map: 1.7 mega ops per second
boost::unordered_map: 1.7 mega ops per second
boost::container::flat_map with preallocated elements: 3.6 mega ops per second
std::unordered_map C++11: 4.5 mega ops per second
std::unordered_map C++11 preallocated buckets: 8.3 mega ops per second
google:dense_hashmap preallocated buckets: 18.7 mega ops per second
std::vector preallocated: 18.8 mega ops per second


Cyber
23.03.2017
13:04:12
а чем flat map примечателен?
Тут вспомнил, пару дней назад был холивар на тему инвалидации итераторов при изменении контейнера, как реализовать и почему нет. Вспомнил про boost::container::stable_vector, который оставляет итераторы валидными.

Denis
23.03.2017
13:06:59
Кэш юзается нормально

Alexander
23.03.2017
13:17:11

Mikhail
23.03.2017
13:27:18