VS
http://eel.is/c++draft/conv.qual#2
Size: a a a
VS
LA
std::byte, либо динамический типVS
std::byte, либо динамический типLA
VS
KO
KO
h
bit_castVS
T
signed T
unsigned T
char
unsigned char
std::byte
KO
KO
KO
LA
m
T, она инвалидирует все закешированные значения T, потому что возможно мы только что изменили одно из них. Если мы пишем в char* мы вынуждены инвалидировать закешированные значения _всех_ типов, потому что мы могли изменить любой из них. Тоже самое происходит и в обратном направлении: при записи по любому указателю мы инвалидируем все буферы char.char накладывает штрафы на производительность. Поэтому строки уводят от использования char в сторону char8_t, а для сырых данных предлагают использовать std::byte.KO
T, она инвалидирует все закешированные значения T, потому что возможно мы только что изменили одно из них. Если мы пишем в char* мы вынуждены инвалидировать закешированные значения _всех_ типов, потому что мы могли изменить любой из них. Тоже самое происходит и в обратном направлении: при записи по любому указателю мы инвалидируем все буферы char.char накладывает штрафы на производительность. Поэтому строки уводят от использования char в сторону char8_t, а для сырых данных предлагают использовать std::byte.m
ПК