@ProCxx

Страница 1926 из 2477
ed
02.04.2018
06:54:46
Насколько я знаю posix регламентирует только запуск:spawn,exec system и проч.
Странно кстати что такие вещи действительно не стандартизируют.. Вот обоссанные контейнеры/аллокаторы - так это пожалуйста.. А как таск и фс менджмент, так юзайте буст и полу-мёртвый posix

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

Aidar
02.04.2018
07:53:09
Бамп

Google
Михаил
02.04.2018
07:59:04
Платформ без процессов вроде больше чем с
Имеется ввиду RTOS и тому подобные?

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
Ахах аргумент в пользу if (a) {
if (a); { и нет проблем ^^

Aidar
02.04.2018
08:11:48
if (a); { и нет проблем ^^
Только автоформаттер перенесет скобку

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

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

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

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

Antony
02.04.2018
08:17:48
+++ но варнингов не было
А давайте добавим в GCC?

Или случай не частый?

Кирилл
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

Igor
02.04.2018
08:27:10
а у кланга только с -Wformat
хммм, а тут вроде изкоробки https://godbolt.org/g/vyDeCv , причем аж вплоть до 3.0

Кирилл
02.04.2018
08:29:46
Vitaliy
02.04.2018
08:41:14
if(a); { }
А как тебе такое, Илон Маск ? if([](){}) {}

Забыл вызвать лямбду - получи пулю в ногу

Anatoly
02.04.2018
08:43:02
А как тебе такое, Илон Маск ? if([](){}) {}
pvs-studio собирает такие примеры, можешь им написать

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:50:05
Matwey
02.04.2018
08:51:46
Господа, f(std::move(x), g(x,y)); не выстрелит же в ногу?

Aidar
02.04.2018
08:52:19
Господа, f(std::move(x), g(x,y)); не выстрелит же в ногу?
не должно если g не сохранит ссылку на x

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
Господа, f(std::move(x), g(x,y)); не выстрелит же в ногу?
выстрелит, поскольку порядок вычисления аргументов функции не специфицирован

Google
Maksym
02.04.2018
08:59:36
std::move(x) же ничего не вычисляет
будет перемещение и x станет "пустым", не?

Aidar
02.04.2018
08:59:38
https://godbolt.org/g/v2Hqs5
можно предположить что jmp тут сильно быстрее add+mov

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
move doesn't move anything, it is just static_cast<T&&>(x)
это я знаю, но это может спровацировать перемещение

Aidar
02.04.2018
09:01:48
а можно поподробнее про условия выстрела? не понял
когда аргумент нужно сконструировать из rvaluue reference полученого из move

Igor
02.04.2018
09:01:49
это я знаю, но это может спровацировать перемещение
перемещение нельзя спровоцировать, можно только вызвать функцию (как правило конструктор), которая 1) ест T&& 2) проводит над ним изменения

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

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
сейчас заведу тикет, и скину в чатик
может я ошибаюсь и всетаки jmp сильно быстрее add+mov?

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

Aidar
02.04.2018
09:08:23
Там условный же
я в этих двух штуках ваще не вижу разницы результата

Constantine
02.04.2018
09:09:12
я в этих двух штуках ваще не вижу разницы результата
Я имею в виду что условный переход это точно хуже почти чего угодно

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

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

Ioann V
02.04.2018
09:18:40
А если предсказатель не угадал?
Можно самому ручками отпрефетчить

Anatoly
02.04.2018
09:19:20
std::move(x) же ничего не вычисляет
а конструирование параметра?

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
а как так мерить?
Intel Architecture Code Analyzer

Страница 1926 из 2477