Size: a a a

2020 June 29

AD

Andrey Davydov in pro.cxx
источник

m

magras in pro.cxx
Alex
Думаю навелосипедить класс над std::string<char8_t>
char8_t предназначен именно для хранения utf8 символов. Не надо в нем хранить бинарные данные. Если нужно избежать aliasing'а, есть [u]int8_t. Более того, для basic_string<char8_t> есть тайпдеф u8string. Ну и в целом практика использования строки для бинарных данных мне кажется порочной. Нужен SSO? Есть folly::small_vector. Я думаю есть еще миллион библиотек, которые предоставляют подобные типы.
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Спасибо! 👍
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
magras
char8_t предназначен именно для хранения utf8 символов. Не надо в нем хранить бинарные данные. Если нужно избежать aliasing'а, есть [u]int8_t. Более того, для basic_string<char8_t> есть тайпдеф u8string. Ну и в целом практика использования строки для бинарных данных мне кажется порочной. Нужен SSO? Есть folly::small_vector. Я думаю есть еще миллион библиотек, которые предоставляют подобные типы.
Я вот думаю, что для стд либы бы хорошо бы коньцепты для всех коньтейнеров прописать
источник

D

Danya in pro.cxx
magras
char8_t предназначен именно для хранения utf8 символов. Не надо в нем хранить бинарные данные. Если нужно избежать aliasing'а, есть [u]int8_t. Более того, для basic_string<char8_t> есть тайпдеф u8string. Ну и в целом практика использования строки для бинарных данных мне кажется порочной. Нужен SSO? Есть folly::small_vector. Я думаю есть еще миллион библиотек, которые предоставляют подобные типы.
boost::small_vector
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Чтобы можно было мигрировать меж реализациями без смены апи
источник

AZ

Alexander Zaitsev in pro.cxx
Alex Ф-ф-фэils!🌠︙
Я вот думаю, что для стд либы бы хорошо бы коньцепты для всех коньтейнеров прописать
это огромный пласт работы
источник

AZ

Alexander Zaitsev in pro.cxx
но есть место, откуда можно концепты воровать :)
источник

SE

Stanislav Ershov in pro.cxx
Alexander Zaitsev
но есть место, откуда можно концепты воровать :)
🤔
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Alexander Zaitsev
это огромный пласт работы
Ну а шо поделать, сейчас ибо пиздец, приходится на свинье методы чекать там
источник

АР

Андрей Руссков... in pro.cxx
Дмитрий ⬡ Лапшин
Но я не готов предлагать, как в правила плюсов переписывать это условие чтобы не сделать это место ещё сложнее, а код вида

bar(foo())

был бы или вообще запрещён, или разрешён только если по числу аргументов/другим аргументам есть ровно 1 вариант. Но вы же потом захотите если и не один вариант...
и так перегрузки сильно нагружают компиляцию, а создание правил перегрузки по возвращаемому значению и резолвинг этого всего зоопарка попросту взорвет времена компиляции
источник

AT

Anatoly Tomilov in pro.cxx
условно взорвёт там где используется ведь только. А это не страшно
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
"Rust traits"
источник

АР

Андрей Руссков... in pro.cxx
Anatoly Tomilov
условно взорвёт там где используется ведь только. А это не страшно
ну "медленно взорвет", по мере пользования фичей
источник

АР

Андрей Руссков... in pro.cxx
вообще функциональная зависимость от входа к выходу нарушается если мы начинаем зависеть еще и от типа возвращаемого значения
источник

АР

Андрей Руссков... in pro.cxx
а всё ради чего? Сахара вида string s = foo(); вместо auto s = foo<string>(); ? Оно того не стоит
источник

АР

Андрей Руссков... in pro.cxx
Alexander Zaitsev
но есть место, откуда можно концепты воровать :)
воровать идеи можно из любого языка. Лягут ли они в с++?
источник

m

magras in pro.cxx
Андрей Руссков
а всё ради чего? Сахара вида string s = foo(); вместо auto s = foo<string>(); ? Оно того не стоит
Ну я думаю речь идет не только об этом, а о таком:

template <class T> T foo();

auto str = foo();
function_that_accepts_only_strings(str);

То есть смотреть на последующее использование переменной, чтобы определить ее тип, а через него и шаблонный параметр.

Но я тоже не думаю что игра стоит свеч.
источник

AZ

Alexander Zaitsev in pro.cxx
Андрей Руссков
воровать идеи можно из любого языка. Лягут ли они в с++?
ну один к одному все концепты\трейты - не уверен. черпать идеи - определенно можно и нужно
источник

AZ

Alexander Zaitsev in pro.cxx
тем более, что уже оттестили
источник