Size: a a a

2020 October 03

АР

Андрей Руссков... in pro.cxx
источник

АР

Андрей Руссков... in pro.cxx
сравните во что вырождается make_code_1 относительно make_code_2
источник

АР

Андрей Руссков... in pro.cxx
что забавно - msvc в дебаг режиме умудряется де-кешировать ссылку )
источник

АР

Андрей Руссков... in pro.cxx
т.е. мало того что оптимизации не включает, так еще и делает медленнее
источник

ID

In Dev in pro.cxx
Андрей Руссков
сравните во что вырождается make_code_1 относительно make_code_2
Я правильно понимаю, что "BYTE PTR guard variable" - это что-то вроде thread-local переменной?
источник

DS

Dmitry Sokolov in pro.cxx
Кстати, error_code за счёт отложенной конвертации в ошибку получается сохранят noexcept при использовании в качестве expected?
источник

АР

Андрей Руссков... in pro.cxx
In Dev
Я правильно понимаю, что "BYTE PTR guard variable" - это что-то вроде thread-local переменной?
я могу предположить что он так обращается напрямую к переменной getMyCategory::cat
источник

АР

Андрей Руссков... in pro.cxx
в clang там никакого гарда нет
источник

АР

Андрей Руссков... in pro.cxx
в gcc возможно есть acquire
источник

АР

Андрей Руссков... in pro.cxx
а, не, это кажется другое
источник

АР

Андрей Руссков... in pro.cxx
похоже на своего рода префикс к имени переменной
источник

АР

Андрей Руссков... in pro.cxx
Dmitry Sokolov
Кстати, error_code за счёт отложенной конвертации в ошибку получается сохранят noexcept при использовании в качестве expected?
не понял вопрос
источник

ID

In Dev in pro.cxx
В любом случае 3 инструкции в make_code_2 говорят сами за себя)
источник

DS

Dmitry Sokolov in pro.cxx
Андрей Руссков
не понял вопрос
Ну в отличие от expected<T, runtime_error> например.
источник

АР

Андрей Руссков... in pro.cxx
Dmitry Sokolov
Ну в отличие от expected<T, runtime_error> например.
ну для начала работать с исключениями по значению по определению плохо )
источник

АР

Андрей Руссков... in pro.cxx
может быть expected<T, exception_ptr>
источник

АР

Андрей Руссков... in pro.cxx
но сам понимаешь, получить message() из error_code это одна виртуальная функция, а получить what из exception_ptr это кинуть, поймать и только потом виртуальная функция
источник

DS

Dmitry Sokolov in pro.cxx
Андрей Руссков
ну для начала работать с исключениями по значению по определению плохо )
Ну если паковать в expected value or  error, то функция возвращающая expected может быть noexcept если конструктор expected noexcept.
источник

АР

Андрей Руссков... in pro.cxx
плюс учти что exception_ptr не очень хорошо дружит с копированиями
источник

АР

Андрей Руссков... in pro.cxx
единственное но важное чего не умеет error_code - динамического сообщения об ошибке
источник