Tag: TEMPLATE-ARGUMENT-DEDUCTION
Tengo una plantilla de función que asigna el tipo de parámetro T basado en una bandera de tipo enum proporcionada como entrada. EDITAR (ahora incluye cómo determinar la bandera) enum class My_enum { a, b}; La función `My_enum someFunctionProvidingTheFlag(double number) { My_enum output; if (number > 5) . . . Read more
¿Por qué obtengo una deducción automática de parámetros de plantilla si llamo directamente al constructor de la clase, pero no la obtengo en std::unique_ptr y std::make_unique? Aquí tienes un ejemplo: “`c++ #include template class C { public: C(const T * const t) : t(t) {} ~C(void) { delete t; } . . . Read more
Supongamos que tenemos una plantilla de clase llamada Foo, la cual tiene un parámetro de plantilla de tipo que puede deducirse a partir de un argumento en su constructor. Si utilizamos std::make_unique para construir una instancia de Foo, ¿existe alguna forma de que el constructor de Foo deduzca los argumentos . . . Read more
A continuación se muestra un ejemplo simplificado de la plantilla de código “List”, donde hay dos funciones “append_move ()” y “append_forward ()” que tienen el mismo objetivo, tomar los argumentos y colocarlos en el contenedor “List”. La primera función “append_move ()” toma “arg1” pasado por valor y luego lo mueve . . . Read more
No entiendo por qué falla el siguiente ejemplo simple: “`C++ #include template static constexpr void Foo(boost::hana::type) { } int main() { Foo(boost::hana::type_c); return 0; } Obtengo el siguiente mensaje de error: [build] error: no se encontró ninguna función coincidente para ‘Foo(boost::hana::type&)’ [build] 74 | Foo(hana::type); [build] | ~~~^~~~~~~~~~~~~~~~~~ [build] nota: . . . Read more