Resultados da pesquisa a pedido "sfinae"
Sfinae fora de linha nas funções de membro do modelo é possível?
Demo [https://wandbox.org/permlink/ie6Naxo7GDzKOx89] A na declaração de classe de A :: foo. struct A { template <typename T> void foo(T a); };A :: foo agora é dividido por sfinae. template <typename T> typename std::enable_if<(sizeof(T) > 4), ...
SFINAE: detectar se a classe tem função livre
Existe uma maneira, usando SFINAE, para detectar se uma função livre está sobrecarregada para uma determinada classe? Basicamente, tenho a seguinte solução: struct has_no_f { }; struct has_f { }; void f(has_f const& x) { } template <typename T> ...
SFINAE e detectando se um objeto de função C ++ retorna nulo
Eu li as várias autoridades sobre isso, incluemDewhurst [http://www.semantics.org/once_weakly/w02_SFINAE.pdf]e ainda não conseguimos chegar a lugar algum com essa pergunta aparentemente simples. O que eu quero fazer éligar um C ++objeto de ...
Problemas do compilador SFINAE
O meu código a seguir deve detectar seT tembegin eend métodos: template <typename T> struct is_container { template <typename U, typename U::const_iterator (U::*)() const, typename U::const_iterator (U::*)() const> struct sfinae {}; template ...
Sobrecarga de resolução entre membros do modelo nas classes base e derivada
O compilador da Microsoft (Visual Studio 2017 15.2) rejeita o seguinte código: #include <type_traits> struct B { template<int n, std::enable_if_t<n == 0, int> = 0> void f() { } }; struct D : B { using B::f; template<int n, std::enable_if_t<n == ...
É possível usar SFINAE / templates para verificar se existe um operador?
Estou tentando verificar se um operador existe em tempo de compilação, se não, eu apenas quero que seja ignorado, existe alguma maneira de fazer isso? operador de exemplo: template <typename T> QDataStream& operator<<(QDataStream& s, const ...
Várias especializações de modelo de classe SFINAE usando void_t
As especializações de modelos de várias classes são válidas, quando cada uma é distinta apenas entre padrões que envolvem parâmetros de modelo em contextos não deduzidos? Um exemplo comum destd::void_t usa-o para definir uma característica que ...
Por que a especialização de modelo não é escolhida?
Eu escrevi o seguinte código: #include <iostream> #include <string> #include <type_traits> template<typename, typename = void> struct is_incrementable : std::false_type {}; template<typename T> struct is_incrementable<T, decltype( ...
SFINAE: verificando a existência de uma função é interrompida quando a sobrecarga é movida para outros namespaces
Quero verificar a existência de uma função em um espaço de nome específico usando SFINAE. eu encontreiSFINAE para testar uma função livre de outro espaço para ...
Verifique se uma classe tem um membro de dados do ponteiro
Existe uma maneira de testar se uma classe tem um membro de dados de ponteiro? class Test { int* p; } template< typename T > foo( T bla ) { }Isso não deve compilar. porque Teste tem um membro de dados do ponteiro. Test test; foo( test )Talvez ...