и прочее. Разве нет?
if constexpr, CTAD
Новые дырявые абстракции. Пользы никакой.
Как бы не надо - не пользуйся, зачем мнение своё о пользе выражать? Я вот тоже не пользуюсь ни тем, ни другим, как не пользуюсь и всеми контейнерами STD.
В STD есть абсолютно бесполезные вещи, но это не они
Расскажи зачем нужен std::string_view. В функцию передаются ссылки на класс строки, литералы представляются как const char*.
Очевидно, чтобы не копировать данные и их иметь возможность обрабатывать.
Что мешает их обрабатывать через константный итератор?
Надо тогда два параметра передавать в функцию , а не один
а что будет если я сделаю +999999, ой, отстрел ноги. Чистые указатели это не круто, особенно куда то их передавать
А что мешает получить константную ссылку на строку и внутри сделать константный итератор?
string_view обладает недостатками указатель. От "отстрела ног" он не защищает никак. А зачем городить огород тогда?
так мы придём к тому, что std::string вообще не нужен, есть же char*
Товарищ дед, я уже предупреждал про пропаганду С++98 и прочего старья - это мнение не разделяется мировым сообществом
Да главное - что ворчать-то без толку ? Это контрпродуктивно...
std::string_view может быть создан из любой строки, которая владеет литералом. const char* - это таскать отдельно размер или использовать так называй ногостреллен
Чтобы не вызывать strlen на каждом чихе, и с шансом 50/50 не создать очередное чтение из никуда
Ну C++ без std::string_view, это и C++03, и C++11, и C++14
чтобы сделать одну функцию на литералы, массивы, const char*, строки
На массивы сделать невозможно. Это то же, что и const char*. А литералы это константные массивы charов. Строк в C++ вообще нет, это не паскаль. Строки это классы.
причем тут то что строки это не примитивный тип?
Обсуждают сегодня