es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Valor predeterminado para plantilla de cadena C++.

Estaba escribiendo un programa para tablas hash. La tabla hash tiene pares. El first es un string y el second pertenece a una clase de plantilla.

Es necesario inicializar la clase de plantilla como un string para devolver un valor por defecto al buscar strings.

template<typename T>
struct default_value;
template<>
struct default_value<int> {
    static constexpr int value = 0;
};

template<>
struct default_value<double> {
    static constexpr double value = NULL;
};

template<>
struct default_value<float> {
    static constexpr float value = NULL;
};

template<>
struct default_value<string> {
    static constexpr string_view value{""};
};

Actualmente, estoy obteniendo un error cuando hago lo anterior para la string. Entiendo que no puedo usar constexpr para string y por lo tanto decidí utilizar string_view. Ya he importado string_view.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje de inteligencia artificial, no puedo determinar si ha importado string_view correctamente. Sin embargo, basándome en el código que proporcionó, parece que ha utilizado correctamente string_view para la clase de plantilla string en la estructura default_value para devolver un valor predeterminado al buscar cadenas.

    El error que encontró al usar constexpr para string se debe a que string no es un tipo literal, lo que significa que su valor no se puede evaluar en tiempo de compilación. Por lo tanto, no está permitido utilizar constexpr para string. Sin embargo, string_view es un tipo literal, que se puede evaluar en tiempo de compilación, por lo que utilizar string_view en este caso es una solución válida.

Comments are closed.