Resultados de la búsqueda a petición "template-meta-programming"
SFINAE para hacer que la plantilla base siempre resulte en un error
Entonces estoy diseñando una especie demy_numeric_cast función para limitar los tipos de conversiones disponibles al usar un marco que estoy escribiendo. Fue bastante sencillo hacer algo como template<typename To, typename From> constexpr To ...
Creación de una lista de tiempo de compilación incremental en C ++
En C ++, ¿hay alguna manera de construir una lista de tiempo de compilación incremental, en el siguiente patrón? START_LIST(List) ADD_TO_LIST(List, int) ADD_TO_LIST(List, float) ADD_TO_LIST(List, double) END_LIST(List)El resultado de esto ...
Usando Boost :: odeint con Eigen :: Matrix como vector de estado
Estoy tratando de utilizar elCapacidades de integración ODE de Boost [http://www.boost.org/doc/libs/1_55_0/libs/numeric/odeint/doc/html/index.html] utilizando laClase de matriz de Eigen ...
“¿Qué le sucedió a mi SFINAE” redux: miembros de la clase de plantilla condicional?
Soy nuevo en escribir código de metaprogramación de plantillas (frente a solo leerlo). Así que estoy en conflicto con algunos problemas de noob. Uno de los c...
¿Cómo hacer una función que comprima dos tuplas en C ++ 11 (STL)?
Hace poco me encontré con este rompecabezas, finalmente pude encontrar una respuesta intrépida (utilizando matrices de índices) y quise compartirla (respuest...
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 ...
¿Cómo puedes iterar sobre los elementos de un std :: tuple?
¿Cómo puedo iterar sobre una tupla (usando C ++ 11)? Intenté lo siguiente:
¿Es posible invocar un método con todas las combinaciones K posibles (con repetición) de argumentos pasados en una tupla?
El comportamiento deseado se puede ilustrar de la siguiente manera: void foo(int x, int y) { std::cout << x << " " << y << std::endl; } int main() { all_combinations<2>(foo, std::make_tuple(1, 2)); // K = 2 // to run: // foo(1, 1) // foo(1, 2) ...