Size: a a a

2020 June 28

A

Alex in pro.cxx
char8_t не алиасится с другими типами?
источник

DS

Dmitry Sokolov in pro.cxx
Neargye
ну тогда ток старое доброе

enum class ubyte : unsigned char {};
Ну да, собственно как и std byte, только без aliasing как и char8_t.
источник

N

Neargye in pro.cxx
Dmitry Sokolov
Ну да, собственно как и std byte, только без aliasing как и char8_t.
Да, у нас на работе так в IO и есть свой тип для такого.
Ток храним в векторе, а не строке

чем в даном случае вектор/спан хуже строки/стринг_вью?
источник

N

Neargye in pro.cxx
Alex
char8_t не алиасится с другими типами?
Нет
По стандарту C++17 только char, unsigned char,  std :: byte
For any object (other than a base-class subobject) of trivially copyable type T, whether or not the object holds a valid value of type T, the underlying bytes ([intro.memory]) making up the object can be copied into an array of char, unsigned char, or std :: byte ([cstddef.syn]).43 If the content of that array is copied back into the object, the object shall subsequently hold its original value.
источник

DS

Dmitry Sokolov in pro.cxx
Neargye
Да, у нас на работе так в IO и есть свой тип для такого.
Ток храним в векторе, а не строке

чем в даном случае вектор/спан хуже строки/стринг_вью?
Ну я писал уже, явные copy etc. в traits вместо "может быть оптимизировано в copy/equal" плюс SSO.
источник

N

Neargye in pro.cxx
Dmitry Sokolov
Ну я писал уже, явные copy etc. в traits вместо "может быть оптимизировано в copy/equal" плюс SSO.
А простите, я начал читать с момента про идею с proposal

тогда да, идея неплохая
источник

N

Neargye in pro.cxx
Dmitry Sokolov
Ну или другой пример, сравнение. Может vector compare соптимизироваться в memcmp?
MS STL vector кстати умеет, он проверяет там через снифае что можно делать мемкопи/мемцмп
источник

A

Alex in pro.cxx
Neargye
Нет
По стандарту C++17 только char, unsigned char,  std :: byte
For any object (other than a base-class subobject) of trivially copyable type T, whether or not the object holds a valid value of type T, the underlying bytes ([intro.memory]) making up the object can be copied into an array of char, unsigned char, or std :: byte ([cstddef.syn]).43 If the content of that array is copied back into the object, the object shall subsequently hold its original value.
стоп, я думал, весь смысл byte как раз в том, что он не алиасится. Иначе вообще не вижу смысла в этом типе.
источник

N

Neargye in pro.cxx
Alex
стоп, я думал, весь смысл byte как раз в том, что он не алиасится. Иначе вообще не вижу смысла в этом типе.
Как бы да, но по итогу нет
источник

A

Alex in pro.cxx
?
источник

AS

Anatoly Shirokov in pro.cxx
Jerzy Syrowiecki
это та задача, для которой пишут my_ptr{void *; size_t} в каждом втором проекте?
зачем span велосипедить?
источник

A

Alex in pro.cxx
Я что-то недопонял, или у std:byte трудное детство?
источник

A

Alex in pro.cxx
Anatoly Shirokov
зачем span велосипедить?
span ничего не хранит поэтому ничего не решает
источник

A

Alex in pro.cxx
нужна RAII обёртка над данными
источник

AS

Anatoly Shirokov in pro.cxx
Alex
span ничего не хранит поэтому ничего не решает
я же тебе писал, храни где угодно, гоняй span или опиши для какой такой задачи "для такой задачи"
источник

A

Alex in pro.cxx
Так а где "где угодно"? Хотя идея гонять span хорошая, если бы не напоминание о нём, я бы эту обёртку и гонял, что мало где на самом деле требуется. Спасибо.
источник

AS

Anatoly Shirokov in pro.cxx
Alex
Так а где "где угодно"? Хотя идея гонять span хорошая, если бы не напоминание о нём, я бы эту обёртку и гонял, что мало где на самом деле требуется. Спасибо.
если не вектор, то дека
источник

A

Alex in pro.cxx
Думаю навелосипедить класс над std::string<char8_t>
источник

A

Alex in pro.cxx
это overkill
источник

AS

Anatoly Shirokov in pro.cxx
Alex
это overkill
почему? первичная инициализация дефолтом оверкил? используй интервальный конструктор, который сразу memcpy сделает
источник