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

3 la respuesta

¿Puedo especializar una plantilla de clase con una plantilla de alias?

Aquí hay un ejemplo simple: class bar {}; template <typename> class foo {}; template <> using foo<int> = bar; ¿Está permitido?

6 la respuesta

¿Especialización parcial de plantilla de función C ++?

Sé que el siguiente código es una especialización parcial de una clase: template <typename T1, typename T2> class MyClass { … }; // partial specialization: both template parameters have same type template <typename T> class MyClass<T,T> { … }; ...

5 la respuesta

Cuál es la mejor manera de crear una plantilla de función de especialización?

¿Hay una mejor manera de hacer lo siguiente? #include <iostream> template <typename T> T Bar(); template <> int Bar<int>() { return 3; } // Potentially other specialisations int main() { std::cout << Bar<int>() << std::endl; // This should work ...

4 la respuesta

Sintaxis de especialización de plantillas C ++

En C ++ Primer Plus (2001, traducción al checo) he encontrado estas diferentes sintaxis de especialización de plantillas: plantilla de función template <typename T> void foo(T);sintaxis de especialización void foo(int param); // 1 void ...

2 la respuesta

Ambigüedad de especialización de plantilla parcial

No puedo ver por qué la declaración en main es ambigua. template<class T, class U, int I> struct X { void f() { cout << "Primary template" << endl; } }; template<class T, int I> struct X<T, T*, I> {void f() { cout << "Partial specialization 1" ...

8 la respuesta

c ++ especialización de plantilla para todas las subclases

Necesito crear una función de plantilla como esta: template<typename T> void foo(T a) { if (T is a subclass of class Bar) do this else do something else } También puedo imaginar hacerlo usando la especialización de plantilla ... pero nunca he ...

4 la respuesta

c ++ especialización de plantilla de función para matriz de tipo definido de tamaño conocido

Considere el siguiente código: #include <iostream> #include <typeinfo> template< typename Type > void func( Type var ) { std::cout << __FUNCTION__ << ": var = " << var << " [" << typeid( var ).name( ) << "]." << std::endl; std::cout << "-> var ...

6 la respuesta

Diseño de patrón para evitar el downcasting en el mensaje que pasa

Base classMessageHandler ha derivado clases. Les gustaría pasar mensajes el uno al otro. Los mensajes pueden ser de diferentes clases, pero se pueden hacer para compartir una clase base. ¿Cómo puede cadaMessageHandler evitar rechazar un mensaje ...

4 la respuesta

Especializando un parámetro de plantilla de plantilla variable en el número mínimo de argumentos: ¿legal o no?

Tengo código: #include <cstdio> template<template<typename...> class> struct Foo { enum { n = 77 }; }; template<template<typename, typename...> class C> struct Foo<C> { enum { n = 99 }; }; template<typename...> struct A { }; ...

2 la respuesta

Condicional habilitar un operador de asignación alternativo

Estoy tratando de crear una instancia condicional de un operador de asignación adicional. El siguiente código funciona bien en clang, pero no en gcc 4.7. El problema que tengo parece muy similar a la pregunta que se hace aquí:std :: enable_if ...