Size: a a a

2020 September 15

АК

Александр Караев... in pro.cxx
Olzhas Zhumabek
возможно стоит добавить inline если в хедере и есть 17
constexpr включает inline
template включает inline
источник

OZ

Olzhas Zhumabek in pro.cxx
Александр Караев
constexpr включает inline
template включает inline
если я правильно помню компилятор может проигнорировать первое, а второе только для функции
источник

АК

Александр Караев... in pro.cxx
Olzhas Zhumabek
если я правильно помню компилятор может проигнорировать первое, а второе только для функции
оба утверждения неверны
источник

ПК

Побитый Кирпич... in pro.cxx
Olzhas Zhumabek
если я правильно помню компилятор может проигнорировать первое, а второе только для функции
Проигнорировать констекспр?
источник

OZ

Olzhas Zhumabek in pro.cxx
Побитый Кирпич
Проигнорировать констекспр?
если не обязательно выполнять для компиляции, операция может выполнится в рантайме
источник

ПК

Побитый Кирпич... in pro.cxx
Olzhas Zhumabek
если не обязательно выполнять для компиляции, операция может выполнится в рантайме
Но это не игнор
источник

ПК

Побитый Кирпич... in pro.cxx
constexpr для функции просто другой смысл несёт, и он всегда сохраняется
источник

OZ

Olzhas Zhumabek in pro.cxx
в следующий раз буду поточнее с выражениями, занят отладкой резюме
источник

АК

Александр Караев... in pro.cxx
Olzhas Zhumabek
если я правильно помню компилятор может проигнорировать первое, а второе только для функции
как и шаблон функции, шаблон переменной инстанцируется в месте использования (если не считать явной специализации или инстанцирования где-то в хедере)

про нешаблонную constexpr переменную погорячился, не могу найти требования, что она автоматически inline, будучи в глобальном скоупе
источник

VF

Vladislav Filimonov in pro.cxx
Александр Караев
template<typename T>
constexpr bool is_iterable_v = is_iterable<T>::value;
Ага, понял)
источник

PS

Pavel Samolysov in pro.cxx
Здесь пишут, что нет, не инлайн, второй ответ constexpr does not imply inline for non-static variables (C++17 inline variables)
https://stackoverflow.com/questions/14391272/does-constexpr-imply-inline

А статическое поле класса наоборот inline BTW, a static class member variable declared constexpr is still inline. cppreference.com: A static member variable (but not a namespace-scope variable) declared constexpr is implicitly an inline variable.
источник

PS

Pavel Samolysov in pro.cxx
Хотя потом пришёл человек, сослался на пропрзал и сказал, что все инлайн...
источник

OZ

Olzhas Zhumabek in pro.cxx
мне сказали вот так: на практике все получают свою копию переменной и все будет нормально, но инлайн сделает лишь одну https://cpplang.slack.com/archives/CBTFTLR9R/p1600196079231400
источник

OZ

Olzhas Zhumabek in pro.cxx
чутка поторопился с выводами на счет пейпера
источник

P

PRoSToC0der in pro.cxx
Leonid Yuriev
Потому-что в прикладухе мне нужен strict no-aliasing от char8_t из C++20 и там еще что-то отваливалось (не фатально, но неудобно).
Но в целом, наверное, мне стоит подумать о enum class byte : char8_t {}  для C++20.
Ща поковыряюсь...
а по смыслу там машинный байт или же октет?
источник

LY

Leonid Yuriev in pro.cxx
PRoSToC0der
а по смыслу там машинный байт или же октет?
Если поясните разницу между ними, то я отвечу.
источник

P

PRoSToC0der in pro.cxx
Leonid Yuriev
Если поясните разницу между ними, то я отвечу.
машинный байт может быть не 8-битным, а, например, 32-битным

октет строго 8-битный (хоть и char8_t в итоге может оказаться 32-битным)
источник

P

PRoSToC0der in pro.cxx
тут скорее вопрос в использовании: передаются ли эти байты по сети/сохраняются ли в файл
источник

LY

Leonid Yuriev in pro.cxx
PRoSToC0der
машинный байт может быть не 8-битным, а, например, 32-битным

октет строго 8-битный (хоть и char8_t в итоге может оказаться 32-битным)
Ох, да, лет 15 назад были 36-битные SHARC-и. И даже были относительно в ходу, но всё равно эмулировали 8-битные байты.
Но char8_t уже гарантированно 8-ми битный, даже на DSP.
источник

LY

Leonid Yuriev in pro.cxx
PRoSToC0der
тут скорее вопрос в использовании: передаются ли эти байты по сети/сохраняются ли в файл
И когда и в чем будет разница?
источник