Size: a a a

2020 August 13

AN

Alexander N in supapro.cxx
Danya
CMAKE_CXX_STANDARD=20
Я это передаю в target_compile_definitons:

set_target_properties(${PROJECT} PROPERTIES
 CXX_STANDARD 20
 CXX_STANDARD_REQUIRED ON
)
источник

D

Danya in supapro.cxx
Я это передаю в консольке
cmake -DCMAKE_CXX_STANDARD=20 -B build
источник

AN

Alexander N in supapro.cxx
Ну это так, к слову просто стал чего-то писать и нужен был 20 стандарт из-за концептов, которые на деле нужны были из-за auto
источник

ПК

Побитый Кирпич... in supapro.cxx
Кажется, самый лучший вариант - target_compile_features
источник

AF

Aidar Fattakhov in supapro.cxx
ᏃᏞᎪᎽᎬᏒ
Чтобы конструктор класса рождался полностью пустой. Неважна))
2 nullptr передай
источник

AP

Alexander Potapov in supapro.cxx
ᏃᏞᎪᎽᎬᏒ
Чтобы конструктор класса рождался полностью пустой. Неважна))
Дефолтный конструктор стринги не аллоцирует память
источник

AF

Aidar Fattakhov in supapro.cxx
Aidar Fattakhov
2 nullptr передай
хех
источник

AN

Alexander N in supapro.cxx
Alexander Potapov
Дефолтный конструктор стринги не аллоцирует память
Там же только стековый массив
источник

AP

Alexander Potapov in supapro.cxx
Там SSO-буфер на 16-24 байт, да. Но при его превышении выделяется память
источник

AN

Alexander N in supapro.cxx
16-24? Ну вроде да sizeof (std::string) был 32 у меня..
источник

AS

Anatoly Shirokov in supapro.cxx
Alexander N
16-24? Ну вроде да sizeof (std::string) был 32 у меня..
обычно sizeof(char*) + sizeof(size_t) + sizeof(size_t) + паддинг
источник

AP

Alexander Potapov in supapro.cxx
Часть памяти уходит на то, чтобы определить, где хранятся символы. В принципе можно просто всегда хранить текущий размер и сравнивать его с размером SSO-буфера
источник

AS

Anatoly Shirokov in supapro.cxx
Alexander Potapov
Часть памяти уходит на то, чтобы определить, где хранятся символы. В принципе можно просто всегда хранить текущий размер и сравнивать его с размером SSO-буфера
на это не уходит память, разные компиляторы реализуют это по разному https://github.com/elliotgoodrich/SSO-23
источник

AP

Alexander Potapov in supapro.cxx
Хм, похоже на то. Меня просто всегда смущало такое объявление:

struct​ ​short​ {
    CharT buffer[​sizeof​(​long​) - ​1​];
    CharT size;
};
Не думал, что size тоже утилизируется под буфер
источник

AP

Alexander Potapov in supapro.cxx
Хотя в статье написано следующее:

If these changes were made, and the extra_buffer_size is set so that the total sizeof the string is the same, we get the updated table (with change in SSO capacity in brackets).

т. е. в текущей реализации MSVC и GCC хранят только 16 байт, что достаточно печально
источник

LA

Liber Azerate in supapro.cxx
Danya
А там точно нужны скобки вокруг foo(args)?
Зачастую, скобки нужны если там какое-то "каррирование", чтобы всё, что в скобках, воспринималось как функция
источник

LA

Liber Azerate in supapro.cxx
Danya
Куда?
Ну то ж самое ведь, на случай перегрузки запятой :)
источник

AP

Alexander Potapov in supapro.cxx
За перегрузку запятой надо сразу по рукам бить
источник

AP

Alexander Potapov in supapro.cxx
Честно скажите один юз-кейс этой фичи, я может не знаю чего-то
источник

DV

Dmitry Vedenko in supapro.cxx
Alexander Potapov
Честно скажите один юз-кейс этой фичи, я может не знаю чего-то
я когда молодой и глупый был - думал, что это офигенно мимикрирует под dot product
источник