Size: a a a

2020 November 13

AN

Alexander N in pro.cxx
Бред. А что аналога SSO для них нету?
источник

ПК

Побитый Кирпич... in pro.cxx
Andrei K
Векторы даже пустые точно выделяют в куче зачем-то байт в мсвц реализации STL
Вот я про них и говорил, только я не помню в релизе тоже выделяют? И так и не понял зачем
источник

ПК

Побитый Кирпич... in pro.cxx
Там точно есть noexcept, оттого поход в аллокатор выглядит ещё страннее
источник

AK

Andrei K in pro.cxx
Побитый Кирпич
Вот я про них и говорил, только я не помню в релизе тоже выделяют? И так и не понял зачем
В релизе тоже выделяют :( Аж бесит. Пришлось извращаться, чтобы точно аллокатор до всего проинициализироовать.
источник

NP

Nikita Provotorov in pro.cxx
Alexander N
Бред. А что аналога SSO для них нету?
SSO для stl векторов нельзя делать из-за различных требований на операции
источник

AK

Andrei K in pro.cxx
Побитый Кирпич
Там точно есть noexcept, оттого поход в аллокатор выглядит ещё страннее
Так у строки constexpr дефолтный конструктор начиная с с++ 20, но я подозреваю — что это обман, чтобы выманить классы.
источник

AN

Alexander N in pro.cxx
Nikita Provotorov
SSO для stl векторов нельзя делать из-за различных требований на операции
Блин.
источник

NP

Nikita Provotorov in pro.cxx
Alexander N
Блин.
например noexcept мув если с аллокатором все в порядке
источник

ПК

Побитый Кирпич... in pro.cxx
Nikita Provotorov
SSO для stl векторов нельзя делать из-за различных требований на операции
У строк тоже аллоцирует зачем то
источник

NP

Nikita Provotorov in pro.cxx
Побитый Кирпич
У строк тоже аллоцирует зачем то
да я и не спорю
но действительно стоит проверить гарантии на std::string{0, ‘\0’}
источник

ПК

Побитый Кирпич... in pro.cxx
Andrei K
Так у строки constexpr дефолтный конструктор начиная с с++ 20, но я подозреваю — что это обман, чтобы выманить классы.
Ну constexpr ничего не значит, там и явно аллоцирующие конструкторы тоже constexpr помечены
источник

AK

Andrei K in pro.cxx
Побитый Кирпич
Ну constexpr ничего не значит, там и явно аллоцирующие конструкторы тоже constexpr помечены
C constexpr-ом я готов мириться, если по итогу будет констэкспр вызов в аллокатор. Не хочу именно в рантайме огребать. Пока просто завёл массив байтиков по размеру с std::string и потом делаю плейсмент-нью, но это явно не дело.
источник

S

Stas in pro.cxx
Андрей Руссков
а знаковость обычного char - unspecified
Звучит как ещё одно место, где можно отстрелить ногу по нечаянности.
источник

АР

Андрей Руссков... in pro.cxx
ага, представляете как круто будет если у вас UB вида char c = 0xFF; стрельнет? )
источник

AN

Alexander N in pro.cxx
Всегда исходил из того, что обычный char - signed, на всякий случай, а то overflow натворит делов. Но по-идее можно же использовать
std::is_signed<char>::value
?
источник

ПК

Побитый Кирпич... in pro.cxx
Alexander N
Всегда исходил из того, что обычный char - signed, на всякий случай, а то overflow натворит делов. Но по-идее можно же использовать
std::is_signed<char>::value
?
is_signed<char>

и
is_same<char, signed char>

Это два разных свойства
источник

N

Neargye in pro.cxx
Alexander N
Всегда исходил из того, что обычный char - signed, на всякий случай, а то overflow натворит делов. Но по-идее можно же использовать
std::is_signed<char>::value
?
narrow_cast<char>(0xFF) скорее уж
источник

EK

Egor Kuzmin in pro.cxx
Добрый день. 20 плюсы, gcc 10. Никак не могу догадаться как решить следующую проблему. Конструируется std::string_view, но он может быть сконструирован в compile time и в runtime. Если он конструируется в runtime, то я знаю его размер (пусть будет 36). А вот в compile мне нужно получить этот размер из функции std::string_view::size. Размер этот мне нужно в compile.
Используется в примерно таком макросе: https://godbolt.org/z/bTaW86
источник

D

Danya in pro.cxx
Egor Kuzmin
Добрый день. 20 плюсы, gcc 10. Никак не могу догадаться как решить следующую проблему. Конструируется std::string_view, но он может быть сконструирован в compile time и в runtime. Если он конструируется в runtime, то я знаю его размер (пусть будет 36). А вот в compile мне нужно получить этот размер из функции std::string_view::size. Размер этот мне нужно в compile.
Используется в примерно таком макросе: https://godbolt.org/z/bTaW86
Ну так не получится
источник

D

Danya in pro.cxx
А какую проблему вы вообще пытаетесь решить этим макросом?
источник