Resultados da pesquisa a pedido "template-specialization"

2 a resposta

Como simular uma especialização parcial de funções-membro selecionadas com base em um parâmetro de modelo que é um contêiner STL?

Estou trabalhando com uma classe que usa contêineres STL como um parâmetro de modelo. Porém, nem todos os contêineres fornecem os mesmos métodos, então estou tentando descobrir como posso especializar métodos específicos com base no contêiner ...

1 a resposta

Aviso C ++ 14: muitos cabeçalhos de modelo para a variável (deve ser 0)

Ao experimentar o recente compilador g ++ - 5, escrevi abaixo a declaração em um arquivo: template<T> T a; template<> int a = 1;O que resulta em: aviso: muitos cabeçalhos de modelo paraa (deve ser 0) Também efetivamente, ele realmente não se ...

2 a resposta

Usando parâmetros de modelo como parâmetros de modelo

Por que o código a seguir é inválido? template <typename S, typename T> struct B{ void f(T t, S s) {t.f<S>(s); } };O gcc 4.3.4 reclama que "expressão primária esperada antes do token '>'", ou seja, que "S" não era uma expressão primária válida.

1 a resposta

O que o SFINAE não funciona corretamente com a seguinte função has_member?

Estou experimentando exemplos dePalestra sobre Walter Brown [https://www.youtube.com/watch?v=Am2is2QCvxY]e eu estou tentando pegá-lohas_member implementação de trabalho. No entanto, a implementação parece retornar falsamente verdadeira, o que me ...

1 a resposta

especialização std :: hash usando sfinae?

Como exercício, estava tentando ver se poderia usar o SFINAE para criar umstd::hash especialização parastd::pair estd::tuple quando todos os seus parâmetros de modelo são de um tipo não assinado. Tenho um pouco de experiência com eles, mas, pelo ...

1 a resposta

A função de modelo especializada com o caso "geral" excluído falha ao compilar com g ++ <= 4.8.0 e clang ++

Compilando um projeto com uma versão mais antiga do g ++ (4.8.0, MinGW), descobri que esse código falha ao compilar: template<typename T> void foo() = delete; template<> void foo<int>(){} int main() { foo<int>(); return 0; }Parece que o g ++ nem ...

1 a resposta

Prioridade / ambiguidade de especialização de modelo de classe

Enquanto tentava implementar algumas coisas com base em modelos variados, deparei-me com algo que não sei explicar. Eu reduzi o problema para o seguinte trecho de código: template <typename ... Args> struct A {}; template <template ...

2 a resposta

especialização de modelos de função no std para tipos definidos pelo programa não será mais permitida no C ++ 2

Citação do cppreference.com [https://en.cppreference.com/w/cpp/language/extending_std]: Adicionando especializações de modelo É permitido adicionar especializações de modelo para qualquer biblioteca padrão | class (desde C ++ 20) | template ...

0 a resposta

specificação parcial do modelo de variável estática no modelo de clas

Se eu fizer especialização parcial, obtive resultados diferentes do clang eg template < typename T> class X { public: T i; X(T _i): i{_i}{} operator T(){ return i; } }; template < typename T2 > class Y { public: template <typename T> static ...

2 a resposta

rro de compilação da especialização do modelo de função

##A.hh template<class T> void func(T t) {} template<> void func<int>(int t) {} void func2(); ##A.cpp void func2() {} ##main.cpp func("hello"); func(int());O erro que recebo é: erro LNK2005: "void __cdecl func (int)" (?? $ func @ H @@ YAXH @ Z) já ...