Perguntas com a marcação «templates»

82
Como o std :: is_function é implementado?

Como é a implementação a seguir std::is_function? template<class T> struct is_function : std::integral_constant< bool, !std::is_const<const T>::value && !std::is_reference<T>::value > {}; (da referência CPP ) Parece-me que uma intseria uma função sob esta...

38
Por que remove_reference não funciona em funções?

Ocorreu algo estranho ao fazer algum modelo de metaprogramação no outro dia. Basicamente, tudo se resume a essa afirmação que não (como eu esperaria) passar. static_assert(std::is_same_v<void(), std::remove_reference_t<void()&>>); No começo, pensei que estava cometendo um erro...

38
Meta programação

Alguém pode me explicar por que o primeiro método de meta-programação de modelos está indo para um loop infinito, mas o segundo é executado corretamente. #include <iostream> using namespace std; template<int N, int M> struct commondivs { static const int val = (N<M) ?...

34
Sobrecarregando uma Função Usando Modelos

Estou tentando definir uma função usando modelos e quero que o nome do tipo seja int ou anEnum (uma enumeração específica que eu havia definido). Eu tentei o seguinte, mas falhei: template <int | anEnum T> // or <int T, anEnum T> or <int, anEnum T> bool isFunction(const T...

16
Modelos de sobrecarga ambíguos

Eu tenho o seguinte código de modelo #include <vector> #include <array> #include <iostream> template<typename T1> void foo(std::vector<T1> bar) { std::cout << "GENERIC" << std::endl; } template<typename T1> void