string_view en C++
Una ventana a los caracteres de otro: subcadenas sin copias, verificadas en tiempo de compilación.
#include <string_view>
constexpr std::string_view greeting = "Hello, typestar!";
constexpr std::string_view first_word(std::string_view text) {
return text.substr(0, text.find(' '));
}
static_assert(first_word(greeting) == "Hello,");
static_assert(greeting.substr(7).starts_with("type"));
static_assert(greeting.ends_with('!'));
Cómo funciona
std::string_viewapunta a caracteres existentes —greetingno posee nada y no copia nada.substryfinddevuelven vistas nuevas sobre el mismo buffer:first_wordnunca reserva memoria.- Cada operación aquí es
constexpr, ystatic_assertprueba el rebanado en tiempo de compilación.
Palabras clave y builtins usados aquí
constexprreturnstatic_assert
El intento, en números
- Líneas
- 11
- Caracteres a escribir
- 331
- Tokens
- 87
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 70 segundos.
Paso 1 de 3 en Cadenas y streams; paso 19 de 27 en Fundamentos del lenguaje.