AD
Size: a a a
AD
m
char8_t
предназначен именно для хранения utf8 символов. Не надо в нем хранить бинарные данные. Если нужно избежать aliasing'а, есть [u]int8_t
. Более того, для basic_string<char8_t>
есть тайпдеф u8string
. Ну и в целом практика использования строки для бинарных данных мне кажется порочной. Нужен SSO? Есть folly::small_vector
. Я думаю есть еще миллион библиотек, которые предоставляют подобные типы.A
A
char8_t
предназначен именно для хранения utf8 символов. Не надо в нем хранить бинарные данные. Если нужно избежать aliasing'а, есть [u]int8_t
. Более того, для basic_string<char8_t>
есть тайпдеф u8string
. Ну и в целом практика использования строки для бинарных данных мне кажется порочной. Нужен SSO? Есть folly::small_vector
. Я думаю есть еще миллион библиотек, которые предоставляют подобные типы.D
char8_t
предназначен именно для хранения utf8 символов. Не надо в нем хранить бинарные данные. Если нужно избежать aliasing'а, есть [u]int8_t
. Более того, для basic_string<char8_t>
есть тайпдеф u8string
. Ну и в целом практика использования строки для бинарных данных мне кажется порочной. Нужен SSO? Есть folly::small_vector
. Я думаю есть еще миллион библиотек, которые предоставляют подобные типы.boost::small_vector
A
AZ
AZ
SE
A
АР
bar(foo())был бы или вообще запрещён, или разрешён только если по числу аргументов/другим аргументам есть ровно 1 вариант. Но вы же потом захотите если и не один вариант...
AT
A
АР
АР
АР
АР
m
template <class T> T foo();То есть смотреть на последующее использование переменной, чтобы определить ее тип, а через него и шаблонный параметр.
auto str = foo();
function_that_accepts_only_strings(str);
AZ
AZ