Resultados da pesquisa a pedido "template-specialization"
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 ...
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 ...
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.
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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á ...