Resultados da pesquisa a pedido "overload-resolution"

2 a resposta

Resolução de sobrecarga olhando para namespaces

O código a seguir falha conforme o esperado, porque nenhuma sobrecarga deget seja encontrado. Usandostd::get resolveria o problema. #include <array> int main() { std::array<int, 2> ar{2,3}; auto r = get<0>(ar);//fails, get was not declared in ...

1 a resposta

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 == ...

1 a resposta

Como impedir conversões implícitas em um modelo de função?

Como posso definir um modelo de função para impedir conversões implícitas? Parece que posso impedir conversões implícitas usando funções que não são de modelo, mas não usando modelos de função. Definir um modelo de função de referência de ...

3 a resposta

Por que posso impedir conversões implícitas para tipos primitivos, mas não definidos pelo usuário?

Os padrões C ++ de alta integridade sugerem que argumentos rvalue para funções podem ser excluídos, impedindo conversões ...

1 a resposta

Desambiguação de modelo de função sobrecarregada com `std :: enable_if` e contexto não deduzido

Considere o seguinte código: template <typename T> struct dependent_type { using type = T; }; template <typename T> auto foo(T) -> std::enable_if_t<std::is_same<T, int>{}> { std::cout << "a\n"; } template<typename T> void foo(typename ...

1 a resposta

Como a dedução de argumento de modelo funciona quando uma função sobrecarregada está envolvida como argumento?

Isto é opergunta mais sofisticada mencionado emComo a resolução de sobrecarga funciona quando um argumento é uma função ...

1 a resposta

Como a resolução de sobrecarga funciona quando um argumento é uma função sobrecarregada?

PreâmbuloA resolução de sobrecarga em C ++ pode ser um processo excessivamente complexo. É preciso muito esforço mental para entender todas as regras de C ++ que governam a resolução de sobrecarga. Recentemente, ocorreu-me que a presença do nome ...

4 a resposta

Como “std :: cout << std :: endl;” é compilado?

A maioriaManipuladores de fluxo IO [http://en.cppreference.com/w/cpp/io/manip] são funções regulares com a seguinte assinatura: std::ios_base& func( std::ios_base& str );No entanto, alguns manipuladores (incluindo os mais usados ...

2 a resposta

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() {} ...

2 a resposta

Determinando qual sobrecarga foi selecionada

Digamos que eu tenha alguma função sobrecarregada arbitrária e complicada: template <class T> void foo(T&& ); template <class T> void foo(T* ); void foo(int );Eu quero saber, para uma determinada expressão,qual foo() é chamado. Por exemplo, dada ...