
ed
02.04.2018
06:54:46

Antony
02.04.2018
07:01:16
А тут есть человек, зарегеный на stdcpp.ru как dreverser ?
Очень хочется обсудить Networking TS, кажется что в личном чатике это будет быстрее

Pavel
02.04.2018
07:33:12

Aidar
02.04.2018
07:53:09
Бамп

Google

Aidar
02.04.2018
07:55:49

Михаил
02.04.2018
07:59:04

Aidar
02.04.2018
08:01:16
Ну короче управления процессами недостаточно, придется вставлять маппинг памяти там, mpi и прочее

Ilia
02.04.2018
08:02:51

Михаил
02.04.2018
08:02:54
Хм, про маппинг памяти я как-то не думал, хотя идея интересная.

Aidar
02.04.2018
08:03:12
Это все вроде есть в бусте

Михаил
02.04.2018
08:03:36
Просто есть же boost.process, boost.interprocess
? опередил.
В принципе согласен. Можно просто расширить немного, то что есть в boost

Alik
02.04.2018
08:10:43
я изобрел Новый способ сломать себе жизнь
if(a);
{
}

Aidar
02.04.2018
08:11:10
Ахах аргумент в пользу if (a) {

Google

Igor
02.04.2018
08:11:34

Aidar
02.04.2018
08:11:48

Igor
02.04.2018
08:13:20
при условии наличия достаточно умного и часто срабатывающего автоформатера
по идее это вообще должен быть варн компилятора

Alik
02.04.2018
08:13:43

Igor
02.04.2018
08:13:59
"по идее" === "в идеале" в данном случае

Alik
02.04.2018
08:14:10
хотя, там -wall, -wextra не стояли

Igor
02.04.2018
08:14:12
честно ни разу не видел варнов на это

Aidar
02.04.2018
08:14:23

Antony
02.04.2018
08:17:48
Или случай не частый?

Кирилл
02.04.2018
08:18:05

Antony
02.04.2018
08:19:31
Так есть же
И правда:
<source>:2:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
if (i); {
^~
<source>:2:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
if (i); {
^

Кирилл
02.04.2018
08:19:34
с -Wall есть предупреждение
а у кланга только с -Wformat

Плюшка
02.04.2018
08:27:06

Igor
02.04.2018
08:27:10

Кирилл
02.04.2018
08:29:46

Vitaliy
02.04.2018
08:41:14
if(a);
{
}
А как тебе такое, Илон Маск ? if([](){}) {}
Забыл вызвать лямбду - получи пулю в ногу

Anatoly
02.04.2018
08:43:02

Google

Vitaliy
02.04.2018
08:45:51

Anatoly
02.04.2018
08:46:12
по-моему, здесь в чате есть ребята из PVS-studio

Aidar
02.04.2018
08:47:22
в другом чатике вбросили что a-=(b<0); лучше чем
if(b<0) a--;
вопрос какого хрена это ни шланг ни гцц не оптимизировал без jmp?

Vitaliy
02.04.2018
08:47:54
Хотелось бы конечно это пропихнуть в GCC или clang ))
Надо будет заняться этим вопросом

Aidar
02.04.2018
08:48:15

/dev
02.04.2018
08:48:49

TriΔng3l
02.04.2018
08:49:04

Aidar
02.04.2018
08:50:05

Matwey
02.04.2018
08:51:46
Господа,
f(std::move(x), g(x,y));
не выстрелит же в ногу?

Igor
02.04.2018
08:51:57

Aidar
02.04.2018
08:52:19

Matwey
02.04.2018
08:52:50
g просто функция, принимает x по const& и делает вычисления

Igor
02.04.2018
08:53:01
тогда не выстрелит

Aidar
02.04.2018
08:53:03
move ничего не перемещает
это каст

Igor
02.04.2018
08:53:30
а вот f(g(x,y), h(std::move(x))) - выстрелит

Anatoly
02.04.2018
08:56:30

Matwey
02.04.2018
08:56:56

Google

Maksym
02.04.2018
08:59:36

Aidar
02.04.2018
08:59:38

Igor
02.04.2018
08:59:53
move doesn't move anything, it is just static_cast<T&&>(x)

Maksym
02.04.2018
09:00:25

Antony
02.04.2018
09:00:32
std::move(x) же ничего не вычисляет
выстрелит если функция принимает параметр по копии или если тип x не совпадает с типом, принимаемым функцией по константной ссылке
Лучше не громоздить в одну строчку, а завести доп переменную на результат вычисления g

Maksym
02.04.2018
09:01:11

Igor
02.04.2018
09:01:16

Antony
02.04.2018
09:01:18

Aidar
02.04.2018
09:01:48

Igor
02.04.2018
09:01:49

Aidar
02.04.2018
09:02:19
просто h неявный

Igor
02.04.2018
09:02:34

Maksym
02.04.2018
09:02:42

Aidar
02.04.2018
09:02:47
h - конструктор нужного типа

Constantine
02.04.2018
09:02:54

Igor
02.04.2018
09:03:44

Matwey
02.04.2018
09:04:14

Aidar
02.04.2018
09:06:28

Google

Aidar
02.04.2018
09:06:59
и оно по мнению компилятора гарантированно влезет в кэш

Constantine
02.04.2018
09:07:52

Aidar
02.04.2018
09:08:23

Constantine
02.04.2018
09:09:12

Aidar
02.04.2018
09:09:53
я не уверен что это хуже вычислений, я почти уверен что если оно влазит в кэш то даже лучше, но точно не уверен что сильно

Constantine
02.04.2018
09:10:22

Aidar
02.04.2018
09:10:38
ну и что

Ioann V
02.04.2018
09:18:40

Anatoly
02.04.2018
09:19:20

Matwey
02.04.2018
09:19:37
Логично

Antony
02.04.2018
09:21:38
я в этих двух штуках ваще не вижу разницы результата
На всякий случай перепроверил. Вариант a -= (b < 0); занимает всегда один такт
if (b < 0) { a--; } занимает 0.51 такт в случае угадывания branch predictor и НЕ трогает память. А вот если не угадал - то стоимость будет 1.49 тактов
Если честно - хз какой вариант быстрее :)

Aidar
02.04.2018
09:22:23
а как так мерить?

Antony
02.04.2018
09:22:41