Добавить оператор сложения последовательности символов и std::string

Evgeny Basargin
Evgeny Basargin

Зачастую хочется осуществить конкатенацию строковой константы и строки. В данный момент это делать не очень неудобно. Нужно использовать либо std::stringstream:

 

std::string world(" world");

std::stringstream ss;

ss << "hello" << world;

 

либо конструировать строку от строковой константы:

std::string world(" world");

std::string("hello") + world;

 

Хочу предложить добавить в стандарт следующий оператор сложения, который может упростить жизнь:

 

template<typename Char_T>

std::basic_string<Char_T> operator+(const Char_T* c_str, const std::basic_string<Char_T>& str) {

    return std::basic_string<Char_T>(c_str) + str;

}

 

при введении данного оператора следующая операция станет совершенно легальной:

 

std::string world(" world");

"hello" + world;

 

1
рейтинг
2 комментария
yndx-antoshkka

Такие операторы уже сть в стандарте: http://eel.is/c++draft/string.op+#5

Кажется, что недочёт в вашей стандартной библиотеке. Каким компилятором и стандартной библиотекой вы пользуетесь?

yndx-antoshkka
Обновлено 
Evgeny Basargin

yndx-antoshkka, скорее мой пробел в познаниях стандартной библиотеки. Действительно так, можно снять с голосования.

Evgeny Basargin
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения