Resultados da pesquisa a pedido "sfinae"
Verifique se o tipo é hashble
Eu gostaria de fazer um traço de tipo para verificar se um tipo específico é hashable usando as instanciações padrão dos contêineres não-ordenados da bibliot...
Como implementar o traço do tipo is_enum_class? [duplicado]
Esta pergunta já tem uma resposta aqui: É possível determinar se um tipo é um tipo de enumeração no escopo? [/questions/10724783/is-it-possible-to-determine-if-a-type-is-a-scoped-enumeration-type] 1 respostaComo implementar um traço de tipo ...
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 ...
Verificação SFINAE para o operador + =
Estou tentando eliminar uma sobrecarga de um conjunto de sobrecargas seoperator+= está desaparecido. Eu sei como verificar seT+T é legal: template<typename T, typename CheckTplusT = decltype(std::declval<T>() + std::declval<T>())> void foo(T a, ...
"Anti-SFINAE" permitindo uma sobrecarga se uma determinada expressão * não for * bem formada
É fácil usar o SFINAE para ocultar uma sobrecarga de função específica se uma expressão específica não estiver bem formada. Mas quero fazer o oposto, ocultando uma sobrecarga se e somente se uma determinada expressãoé bem formado, e para fazê-lo ...
SFINAE não está acontecendo com std :: subjac_type
Abaixo do código SFINAE com modelos variadic compila bem usando o clang 3.7.1, C ++ 14: #include <array> #include <iostream> #include <vector> #include <cstdint> enum class Bar : uint8_t { ay, bee, see }; struct S { static void foo() {} ...
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 ...