Resultados da pesquisa a pedido "c++17"

2 a resposta

Return Valor opcional com?: Operator

Muitas vezes, preciso usar o tipo opcional para funções: std::optional<int32_t> get(const std::string& field) { auto it = map.find(field); if (it != map.end()) return it->second; return {}; }Existe uma maneira de retornar o valor opcional em uma ...

1 a resposta

O C ++ 17 proíbe a remoção de cópias em um caso em que o C ++ 14 o permitiu?

Considere o seguinte: struct X { X() {} X(X&&) { puts("move"); } }; X x = X();No C ++ 14, a movimentação pode ser elidida, apesar do construtor da movimentação ter efeitos colaterais, graças a [class.copy] / 31, Essa elisão de operações de ...

1 a resposta

Usando std :: washder para obter um ponteiro para um membro do objeto ativo de um ponteiro para um objeto inativo?

Esta pergunta segue esta1 [https://stackoverflow.com/questions/48188737/is-pointer-arithmetic-on-inactive-member-of-a-union-ub] Vamos considerar este código de exemplo: struct sso { union{ struct { char* ptr; char size_r[8]; } large_str; ...

1 a resposta

A metaprogramação com estado está mal formada (ainda)?

Uma das minhas invenções mais amadas / más que tive a sorte de encontrar é a contador constexpr [http://b.atch.se/posts/constexpr-counter/], também conhecido como metaprogramação com estado. Como mencionado no post, parece legal no C ++ 14, e eu ...

3 a resposta

Quais são os casos de uso para ligações estruturadas?

O padrão C ++ 17 apresenta um novoligações estruturadas [http://en.cppreference.com/w/cpp/language/structured_binding]recurso, que foi inicialmenteproposto [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0144r0.pdf]em 2015 e cuja ...

1 a resposta

Por que não há suporte para concatenar std :: string e std :: string_view?

Desde C ++ 1z, temosstd::string_view [http://en.cppreference.com/w/cpp/string/basic_string_view], uma visualização leve em uma sequência contígua de caracteres que evita a cópia desnecessária de dados. Em vez de ter umconst std::string& ...

1 a resposta

se constexpr (condição) como condicional em tempo de compilação

Eu quero usar um booleano constexpr (useF no exemplo abaixo) para ativar um recurso no código a seguir. Aqui, chamandoA::f(). Além disso, quero ser o alias-template (a) ser estarvoid no caso de desligar o recurso. Tentei usar uma instrução ...

4 a resposta

Por que sizeof (std :: variant) tem o mesmo tamanho de uma estrutura com os mesmos membros?

O modelo de classestd::variant representa uma união de tipo seguro. Uma instância destd::variant a qualquer momento, mantém um valor de um de seus tipos alternativos ou não possui valor. sizeof(std::variant<float, int32_t, double>) == 16Mas se é ...

2 a resposta

Quais são os tipos de identificadores introduzidos por ligações estruturadas no C ++ 17?

Que eu saiba, identificadores introduzidos por ligações estruturadas no C ++ 17 são de fato referências a alguma variável "oculta". De tal modo que auto [ a, b ] = std::make_tuple(1, 2);émais ou menos equivalente a auto e = std::make_tuple(1, ...

2 a resposta

Como P0522R0 está quebrando o código?

Hoje eu estava lendo a página de suporte do C ++ 17 do clang. Eu notei algo estranho. A característicaCorrespondência de parâmetros de modelo a argumentos compatíveis ...