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

2 la respuesta

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

1 la respuesta

Cómo usar adecuadamente std :: enable_if en un constructor

Esta pregunta combina varias piezas de código y es un poco complicada, pero intenté adelgazarla lo más posible. Estoy tratando de usarstd::enable_if para invocar condicionalmente el constructor correcto como resultado de firmas de funciones ...

1 la respuesta

¿Cómo ordenar tipos en tiempo de compilación?

Considere el siguiente programa: #include <tuple> #include <vector> #include <iostream> #include <type_traits> template <class T> struct ordered {}; template <class... T> struct ordered<std::tuple<T...>> { using type = /* a reordered tuple */; ...

2 la respuesta

Deducir el primer argumento de plantilla con otros parámetros de plantilla predeterminados

Gcc y clang parecen estar en desacuerdo sobre si este código debe compilarse o no: #include <type_traits> template <typename Signature, int N = 0> struct MyDelegate { }; template <typename D> struct signature_traits; template <template ...

3 la respuesta

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

5 la respuesta

¿Plantillas variables y declaración de cambio?

Tengo la siguiente función que puede tomar N argumentos de diferentes tipos y reenviarlos a N funciones con plantilla en cada tipo individual, de esta manera (ejemplo con dos argumentos): template <typename T1, typename T2> bool func(int& ...

1 la respuesta

La paradoja de Russell en plantillas de C ++ [duplicado]

Esta pregunta ya tiene una respuesta aquí: Fallback constructor variadic: ¿por qué funciona esto? [/questions/32997699/fallback-variadic-constructor-why-does-this-work] 1 respuesta Considere este programa: #include <iostream> #include ...

2 la respuesta

Deducción de argumento de plantilla cuando la función devuelve un tipo compuesto por el tipo de plantilla y otro

El título es bastante difícil de formular en palabras, pero esto es lo que estoy tratando de lograr en un código no compilable: template<template <typename> class Container> Container<int> foo() { return Container<int>{1,2,3}; } int main() { ...

4 la respuesta

tipo de búsqueda, para el cual se mantiene

Estaba jugando con plantillas e intentaba implementar el siguiente ayudante. first_constructible<Types..., Args...>::typeque devolvería el primer tipo deTypes que es construible a partir deArgs.... El primer problema obviamente es tener dos ...

9 la respuesta

Compruebe si un conjunto de tipos es un subconjunto del otro

¿Cómo se puede verificar si un paquete de parámetros (interpretado como un conjunto) es un subconjunto de otro? Hasta ahora solo tengo el marco (usando std :: tuple), pero no tengo funcionalidad. #include <tuple> #include <type_traits> template ...