Resultados de la búsqueda a petición "template-meta-programming"
¿Cómo puedo detectar si un tipo se puede transmitir a un std :: ostream?
Estoy tratando de escribir un rasgo de tipo para detectar si un tipo ha sobrecargado el operador << () adecuado para usar en una secuencia de salida. Me falta algo porque siempre estoy cumpliendo para una clase vacía simple sin operadores en ...
Argumento especificado explícitamente no válido para el parámetro de plantilla que es constexpr
Tengo unstatic_loop construir así template <std::size_t n, typename F> void static_loop(F&& f) { static_assert(n <= 8 && "static loop size should <= 8"); if constexpr (n >= 8) f(std::integral_constant<size_t, n - 8>()); if constexpr (n >= ...
C ++ tiempo de compilación ejecución de la función
Tengo etiquetas de cadena en mi código que se convierten en números y se utilizan para buscar valores en una estructura de valor de etiqueta. Tengo algo como esto: void foo() { type value = search("SomeTag"); } Donde la búsqueda se define ...
Plantillas C ++: cómo determinar si un tipo es adecuado para subclasificar
Digamos que tengo alguna clase de plantilla según el tipoT. T podría ser casi cualquier cosa:int, int*, pair <int, int> ostruct lol; no puede servoid, una referencia o cualquier cosa calificada por cv. Para alguna optimización, necesito saber si ...
Seleccione automáticamente un tipo de variable lo suficientemente grande como para contener un número especificado
¿Hay alguna forma en C ++ de definir un tipo que sea lo suficientemente grande como para contener como máximo un número específico, presumiblemente usando algún código de plantilla inteligente? Por ejemplo, quiero poder escribir: ...
Identificación constante de tiempo de compilación
Dado lo siguiente: template<typename T> class A { public: static const unsigned int ID = ?; }; Quiero que ID genere un ID de tiempo de compilación único para cada T. que he considerado__COUNTER__ y la biblioteca PP de impulso, pero hasta ahora ...
detección de typedef en tiempo de compilación (metaprogramación de plantilla)
Actualmente estoy haciendo una metaprogramación de plantilla. En mi caso, puedo manejar cualquier tipo "iterable", es decir, cualquier tipo para el que untypedef foo const_iterator existe de la misma manera. Intenté utilizar la nueva ...
Obtener el tipo de miembro
NOT: Esta pregunta se hizo originalmente en 2012. Antes de ladecltype specifier fue implementado completamente por los principales compiladores. No debería mirar este código a menos que solo tenga acceso a C ++ 03. Todos los ...
¿Por qué los type_traits se implementan con estructuras de plantillas especializadas en lugar de constexpr?
¿Hay alguna razón por la cual el estándar los especifica como plantillastructs en lugar de simple booleanconstexpr? En una pregunta adicional que probablemente se responderá en una buena respuesta a la pregunta principal, ¿cómo se ...
Realice la resolución de sobrecarga con la metaprogramación de plantilla
Inspirado por otra pregunta, traté de encontrar una manera de deducir el tipo de función miembro de sobrecarga dado el argumento real utilizado para llamar a esa función. Esto es lo que tengo hasta ahora: #include <type_traits> ...