Resultados da pesquisa a pedido "template-specialization"

2 a resposta

specialização explícita após instanciaç

Eu tenho o seguinte código typedef vector<int> Vec; typedef vector<Vec> VecOfVec; template<typename Vec> Vec DoSomething(const Vec &v); template<> VecOfVec DoSomething<VecOfVec>(const VecOfVec &v) { VecOfVec r; for(auto i = v.begin(); i != ...

3 a resposta

Posso especializar um modelo de classe com um modelo de alia

Aqui está um exemplo simples: class bar {}; template <typename> class foo {}; template <> using foo<int> = bar; Isso é permitido?

6 a resposta

Especialização parcial do modelo de função C ++?

Sei que o código abaixo é uma especialização parcial de uma classe: template <typename T1, typename T2> class MyClass { … }; // partial specialization: both template parameters have same type template <typename T> class MyClass<T,T> { … }; ...

5 a resposta

Qual é a melhor maneira de criar um modelo de função somente de especialização?

Existe uma maneira melhor de fazer o seguinte? #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 ...

2 a resposta

Sintaxe de especialização de modelos C ++

No C ++ Primer Plus (2001, tradução para tcheco), encontrei estas diferentes sintaxes de especialização de modelos: função modelo template <typename T> void foo(T); sintaxe de especialização void foo(int param); // 1 void foo<int>(int param); ...

1 a resposta

Ambiguidade de especialização de modelo parcial

Não vejo por que a declaração principal é ambígu 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" << ...

4 a resposta

especialização de modelo c ++ para todas as subclasses

Preciso criar uma função de modelo como esta: template<typename T> void foo(T a) { if (T is a subclass of class Bar) do this else do something else } Também posso imaginar fazê-lo usando especialização de modelo ... mas nunca vi uma ...

4 a resposta

especialização de modelo de função c ++ para tamanho conhecido array datilografado

Considere o seguinte 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 is ...

6 a resposta

Padrão de design para evitar downcasting na passagem de mensagens

Base classMessageHandler derivou classes. Eles gostariam de passar mensagens um para o outro. As mensagens podem ser de classes diferentes, mas podem ser feitas para compartilhar uma classe base. Como cadaMessageHandler evitar fazer o downcast de ...

4 a resposta

Especializando um parâmetro de modelo variável no número mínimo de argumentos: legal ou não?

Tenho 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 { }; ...