Resultados de la búsqueda a petición "templates"
El parámetro de plantilla no puede deducirse
No entiendo por qué T no se puede deducir en este escenario: template<class T> class MyType { T * data; }; class MyOtherType { }; template<typename T> struct MyType_OutArg { typedef MyType<T> & type; }; template<typename T> void ...
Especialización de plantilla e instanciación
Estos conceptos no me quedan claros. Bueno, la creación de instancias de plantilla se define bastante bien porN4296::14.7 [temp.spec]: El acto de instanciar una función, una clase, un miembro de una plantilla de clase o una plantilla de miembro ...
Registre dinámicamente los métodos de constructor en una AbstractFactory en tiempo de compilación utilizando plantillas de C ++
Al implementar una clase MessageFactory para instaurar objetos Message utilicé algo como: class MessageFactory { public: static Message *create(int type) { switch(type) { case PING_MSG: return new PingMessage(); case PONG_MSG: return ...
¿Se pueden especificar explícitamente los parámetros de plantilla de un constructor?
Un constructor de una clase puede ser una función de plantilla. En el punto donde se llama a dicho constructor, el compilador generalmente mira los argumentos dados al constructor y determina los parámetros de plantilla utilizados a partir de ...
Verificación de instanciación de plantilla para miembro existente en clase
Tengo un grupo de clases que tienen uno o más miembros del tipo memberA, memberB, memberC. No todas las clases tienen todos los miembros. Quiero crear una plantilla que establezca los miembros como template <typename T> void setAttributes(t & ...
¿Por qué la función declarada dentro de otra función no participa en la búsqueda dependiente del argumento?
Considere un ejemplo simple: template <class T> struct tag { }; int main() { auto foo = [](auto x) -> decltype(bar(x)) { return {}; }; tag<int> bar(tag<int>); bar(tag<int>{}); // <- compiles OK foo(tag<int>{}); // 'bar' was not declared in this ...
¿Por qué deben especializarse las especializaciones de plantillas?
Me refiero a esta respuesta: https://stackoverflow.com/a/4447057/930315 [https://stackoverflow.com/a/4447057/930315] Me encontré con un problema similar al OP de la pregunta citada, teniendo una función template<typename T> void func(T& val);y ...
¿Puedo usar el resultado de un operador de conversión lambda constexpr sin captura de C ++ 17 como un argumento sin tipo de plantilla de puntero de función?
Mientras contesta¿Cómo escribo una expresión lambda que se parece a un método? [https://stackoverflow.com/questions/47604606/how-do-i-write-a-lambda-expression-that-looks-like-a-method] , Intenté convertir una lambda sin captura en un puntero de ...
¿Por qué una plantilla de C ++ acepta una matriz no más especializada que una que acepta un puntero de acuerdo con GCC 5.3 y Clang 4.0?
¿Por qué las siguientes dos declaraciones de plantilla son ambiguas (por lo que ninguna es más especializada que la otra)? Sé que esta pregunta se ha planteado muchas veces en Stack Overflow, pero por lo general, las personas responden ...
Registro de tipo C ++ en tiempo de compilación truco
Tengo la siguiente situación: supongamos que tengo un montón de tipos (functores) en los que quiero registrar / compilar durante la compilación, preferiblemente en algo como boost :: mpl :: vector. ¿Conoces algún truco para hacerlo tan bien? Mi ...