Perguntas com a marcação «c++17»

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

17
Enumeração contínua C ++ 11

Existe uma maneira de verificar no C ++ 11 se uma enumeração é contínua ? É totalmente válido fornecer valores de enumeração que não são. Existe talvez um recurso como um traço de tipo em C ++ 14, C ++ 17 ou C ++ 20 para verificar se o enum é contínuo? Isso deve ser usado em um static_assert. Um...

16
std :: pair <auto, auto> tipo de retorno

Eu estava brincando com autono std::pair. No código abaixo, a função fdeve retornar um std::pairdos tipos que dependem de um parâmetro de modelo. Um exemplo de trabalho: EXEMPLO 1 template <unsigned S> auto f() { if constexpr (S == 1) return std::pair{1, 2}; // pair of ints else if...