Resultados de la búsqueda a petición "template-meta-programming"

5 la respuesta

Aplica la primera función válida de un conjunto de N funciones

Esta respuesta anterior muestra cómo aplicar la función en función de la validez de una llamada:aqu [https://stackoverflow.com/a/42030223/882932]. Sin embargo, se aplica a dos funciones. Me preguntaba si el concepto podría generalizarse aN ...

3 la respuesta

Elija la función para aplicar en función de la validez de una expresión

El problema es el siguiente, enC++14: Tengamos dos funcionesFV&& valid_f, FI&& invalid_fy argumentosArgs&&... argsLa funciónapply_on_validity debería aplicarvalid_f enargs si la expresiónstd::forward<FV>(valid_f)(std::forward<Args>(args)...) es ...

1 la respuesta

Uso del argumento de plantilla vacía en la implementación de modismos de detección temprana

Enn4502 [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4502.pdf]los autores describen una implementación temprana del idioma de detección que encapsula elvoid_t truco. Aquí está su definición junto con el uso para definir un rasgo ...

1 la respuesta

¿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) ...

3 la respuesta

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 ...

2 la respuesta

¿Por qué std :: tuple <int> no se puede copiar trivialmente?

Construido coneste compilador en línea [http://ideone.com/8IGJmd], el siguiente código: #include <iostream> #include <type_traits> #include <tuple> int main() { std::cout << std::is_trivially_copyable<std::tuple<int>>::value << ...

6 la respuesta

Elija la plantilla basada en la cadena de tiempo de ejecución en C ++

Tengo un vector de atributos que puede contener diferentes tipos: class base_attribute_vector; // no template args template<typename T> class raw_attribute_vector : public base_attribute_vector; raw_attribute_vector<int> foo; ...

3 la respuesta

Encuentra el número de valores únicos de un paquete de parámetros

Dado un paquete de parámetros con argumentos variables, ¿cómo se puede encontrar el número de valores únicos en el paquete? Estoy buscando algo en la línea de no_of_uniques<0,1,2,1,2,2>::value // should return 3Mi implementación rudimentaria se ...

1 la respuesta

Secuencia entera de caracteres de literales definidos por el usuario que toman cadenas como parámetros

Actualmente, solo los dobles pueden producir una plantilla de caracteres en un literal definido por el usuario: template <char...> double operator "" _x(); // Later 1.3_x; // OK "1.3"_y; // C++14 does not allow a _y user- // defined operator to ...

1 la respuesta

¿Cómo verificar si T es un tipo agregado?

Se acerca destd::is_pod. Pero verifica más que solo los tipos agregados. O esstd::is_pod solo lo mejor que podemos hacer? Básicamente, quiero escribir una plantilla de función ...