
Alexander
21.10.2018
11:35:41
если compiler не specific, то пока что нет - жди SIMD в стандартной либе.
если compiler-specific, то у того же clang есть управление векторизацией

Kitsu
21.10.2018
11:36:39

Alexen
21.10.2018
11:36:50

Anatoly
21.10.2018
15:36:13
Влад @supapro

Google

Nikita
21.10.2018
17:45:58
ребят, сдвиг беззнакового числа больше чем на его ширину это уб?

Igor
21.10.2018
17:46:10
уб?

Nikita
21.10.2018
17:47:35
UB
просто сдвиг уинт 32 на 32 бита компилер вообще выбрасывает, т.е. число не меняется

Hudd
21.10.2018
17:50:39
Нет, ошибся. Да, это UB.

Rabu
21.10.2018
17:55:12

Nikita
21.10.2018
17:55:30

Hudd
21.10.2018
17:56:16
The operands shall be of integral or unscoped enumeration type and integral promotions are performed. [...] The behavior is undefined if the right operand [...] greater than or equal to the length in bits of the promoted left operand.

Rabu
21.10.2018
18:02:56
стандарт не гарантирует, но по крайней мере GCC делает sal/shr
https://godbolt.org/z/SzPv_G

Олег
21.10.2018
18:06:47
Я когда-то наталкивался на то, что в compile-time после сдвига на 32 получается ноль (как по арифметике), а в runtime — число не меняется, как по процессору.

Dmitry
21.10.2018
18:16:33

Google

Ilia
21.10.2018
18:23:41

Alexen
21.10.2018
18:24:42
С того что язык не регламентирует это

Ilia
21.10.2018
18:24:53

Alexen
21.10.2018
18:29:21
Сдвинуть можешь хоть куда но величина сдвига не может быть большей чем число бит в том что сдвигаешь

Max
21.10.2018
18:43:17
А вот
'if the value of the right operand is negative or is greater or equal to the number of bits in the promoted left operand, the behavior is undefined.'

Alexen
21.10.2018
18:44:58
@DemyanovMaxim в отличие от мерзкого го который таки подвинет

Max
21.10.2018
18:54:17

Alexen
21.10.2018
18:55:01
ну да, я на эти сдвиги напоролся когда битовую библиотеку делал

olologin
21.10.2018
20:17:50
Господа, под виндой санитайзеры не пробовали?
Клангом, или gcc
Просто интересно оно вообще там будет работать
в винде же нет overcommit memory
https://github.com/google/sanitizers/issues/895
Кажется почти все санитайзеры не работают там

Alexander
21.10.2018
21:04:50
Можно и не пробовать. И я не слышал, чтобы кто-то активно их портировал туда

Побитый
21.10.2018
21:06:22
Валгринд работает
Или это не считается?

Google

Alexander
21.10.2018
21:07:16

Побитый
21.10.2018
21:07:27

olologin
21.10.2018
21:07:30

Побитый
21.10.2018
21:07:36

Alexander
21.10.2018
21:07:37

olologin
21.10.2018
21:08:00
А в чем разница?
https://github.com/google/sanitizers/wiki/AddressSanitizerComparisonOfMemoryTools

Alexander
21.10.2018
21:08:00
я всегда думал, что на винде аналог валгнринда это dr memory (который и под линухом уже есть)

olologin
21.10.2018
21:08:26
Ну так то по списку фич ASAN намного вперёд уходит
жаль что uninitialized read нет
вернее он есть только в memory sanitizer'е которого нет и не будет в gcc
ну и скорость у асана конечно несравнима
с valgrind

Побитый
21.10.2018
21:10:03
в принципе работы
А в чем разница? И там и там во время работы программы выявляем жепу

olologin
21.10.2018
21:10:59
>Currently, Dr. Memory does not yet support uninitialized read detection for 64-bit applications, so we recommend compiling your target application as 32-bit.
мда

Ilia
21.10.2018
22:15:35
Только что перепутал Conan с Canon-ом...

Pavel
21.10.2018
22:21:02
у вижлы есть свои санитайзеры же
Visual leak detector вроде, но это конечно под visual c++ но если надо на винду...

Vyacheslav
21.10.2018
22:25:54

Yuriy
21.10.2018
22:51:16
задавал в @supapro но так и не получил ответ... буду благодарен за любого рода предположения!

Google

Yuriy
21.10.2018
22:51:16
Всем привет ??! Добрые люди, подскажите! Есть клиент и сервер! Запускаю все локально в разных потоках. Сервер также под каждый подключённый клиент создаёт поток. Вот к примеру есть 2 клиента и они общаются с сервером. После подключения с одного клиента я могу отправлять неопределенное количество смс, но как только я начинаю отправлять с другого клиента 2 и больше сообщений то при повторной попытке отправить смс с первого клиента - сервер не хочет их принимать! В чем может быть проблема ? Может с потоками что-то не так ?

Alexei
22.10.2018
04:59:59
Доброе утро! Что почитать чтобы прошариться по constexpr'ам?
C++17 если я правильно помню

Nikita
22.10.2018
05:13:00

Alexei
22.10.2018
05:27:33
Я имею ввиду полные constexpr, на конструкторы и их методы с членами, а не просто на функции...

Anton
22.10.2018
05:27:49
https://stackoverflow.com/questions/5957933/server-wont-connect-to-more-than-one-client
https://stackoverflow.com/questions/15560336/listen-to-multiple-ports-from-one-server
Это может помочь

Alexander
22.10.2018
05:58:07

Dmitry
22.10.2018
06:32:34
Ересь придумал. Мапить на нулевой адрес zero initialized write protected страницу. Тогда получаем nullptr эквивалентным пустой c строке. Или валидное разыменование nullptr как указателя на zero initialized структуру. Например как адрес пустого string view с нулевым размером ссылающегося на пустую c строку (см. выше).

Аттрибутивно-ассоциативный ряд
22.10.2018
06:51:15
На некотором железе так и работает. 0x0 валидный адрес.

Борис
22.10.2018
07:06:25

Yuriy
22.10.2018
07:07:14

Борис
22.10.2018
07:10:41

Yuriy
22.10.2018
07:11:26

Борис
22.10.2018
07:14:00

Nikolai
22.10.2018
07:14:07

Yuriy
22.10.2018
07:17:16