¿Por qué std :: string no define la multiplicación o los literales? [cerrado]

En el lenguaje que me presentaron por primera vez, había una funciónrepeat(), que tomó una cuerda, y la repitió.n veces. Por ejemplo,repeat ("hi", 3) da un resultado de"hihihi".

Tuve varias veces que usé esta función, pero para mi consternación, nunca encontré algo similar en C ++. Sí, puedo hacer el mío fácilmente o hacerlo más fácil de usar, pero me sorprende que no esté incluido.

Un lugar en el que encajaría realmente es enstd::string:

std::string operator* (const std::string &text, int repeatCount);
std::string operator* (int repeatCount, const std::string &text);

Eso permitiría una sintaxis como:

cout << "Repeating \"Hi\" three times gives us \"" << std::string("Hi") * 3 << "\"."

Ahora, en sí mismo, todavía no es demasiado bueno, pero podría ser mejor, lo que me lleva a mi otra parte: los literales.

Cada vez que usamos los operadores de cadena, comooperator+, tenemos que asegurarnos de que un argumento sea en realidad una cadena. ¿Por qué no solo definieron un literal para eso, como""s? Los sufijos literales que no comienzan con un guión bajo se reservan para la implementación, por lo que esto no debería ser conflictivo, ya que se podría haber agregado antes de que alguien comience a crear los suyos.

Volviendo al ejemplo de repetición, la sintaxis sería simplemente:

cout << "123"s * 3 + "456"s;

Esto produciría:

123123123456

Mientras que en eso, uno para los personajes podría ser incluido también, para satisfacercout << '1's + '2's;

¿Por qué no se incluyeron estas dos características? Definitivamente tienen un significado claro, y facilitan la codificación, mientras siguen usando las bibliotecas estándar.

Respuestas a la pregunta(2)

Su respuesta a la pregunta