Resultados da pesquisa a pedido "c++17"

1 a resposta

Sobrecarregando estruturas com operador de chamada de modelo e lambdas genéricas - gcc vs clang

Eu descobri um trecho de código que compila e funciona corretamente emclang ++ 4 (e tronco)mas falha ao compilarg ++ 7 (e tronco). Vamos assumir que tenho o seguintestruct tipos: struct a { void foo() { } }; struct b { void bar() { } }; struct c ...

1 a resposta

Como encomendar tipos em tempo de compilação?

Considere o seguinte programa: #include <tuple> #include <vector> #include <iostream> #include <type_traits> template <class T> struct ordered {}; template <class... T> struct ordered<std::tuple<T...>> { using type = /* a reordered tuple */; }; ...

4 a resposta

Como habilitar o C ++ 17 no CMake

Estou usando o VS 15.3, que suporta CMake 3.8 integrado. Como posso segmentar o C ++ 17 sem gravar sinalizadores para cada compilador específico? Minhas configurações globais atuais não funcionam: # ...

3 a resposta

(v) é realmente (* & v) desde quando?

Os gurus dos padrões C ++ poderiam me esclarecer: Desde que versão padrão do C ++ esta declaração falhou porque(v) parece ser equivalente a(*&v)? I.e. por exemplo, o código: #define DEC(V) ( ((V)>0)? ((V)-=1) : 0 ) ...{... register int v=1; ...

1 a resposta

O decltype (auto) para uma ligação estruturada deve ser uma referência?

Considere um exemplo: #include <iostream> #include <type_traits> #include <tuple> int main() { auto tup = std::make_tuple(1, 2); auto [ a, b ] = tup; decltype(auto) e = a; std::cout << std::boolalpha << std::is_reference_v<decltype(e)> << ...

1 a resposta

Um ponteiro std :: byte tem as mesmas implicações de alias do char *?

As regras estritas de aliasing de C ++ (e C) incluem que umchar* eunsigned char* pode usar qualquer outro ponteiro. AFAIK não existe uma regra análoga parauint8_t*. Assim, minha pergunta: quais são as regras de alias para ...

1 a resposta

Guia de dedução e modelos variados

Considere o seguinte código: #include <tuple> #include <iostream> template <class T> struct custom_wrapper { template <class Arg> custom_wrapper(Arg arg): data(arg) {} T data; }; template <class Arg> custom_wrapper(Arg arg) -> ...

1 a resposta

Resultados diferentes em Clang e GCC ao converter para std :: optional <T>

Dado o seguinte código: #include <iostream> #include <optional> struct foo { explicit operator std::optional<int>() { return std::optional<int>( 1 ); } explicit operator int() { return 0; } }; int main() { foo my_foo; std::optional<int> my_opt( ...

2 a resposta

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

2 a resposta

Qual é a razão para o `std :: result_of` descontinuado no C ++ 17?

eu vistd::result_of está sendo preterido no C ++ 17. Qual a razão parastd::result_of obsoleto em C ++ 17?Também gostaria de saber a diferença entrestd::result_of estd::invoke_result.