Resultados da pesquisa a pedido "c++17"

1 a resposta

Os parâmetros de modelo não-tipo no c ++ 17 podem ser decltype (auto)?

Eu descobri que o gcc e o clang permitem usardecltype(auto) na cláusula de tipo de parâmetro do modelo não-tipo. Por exemplo.: template <decltype(auto)> struct X {}; int foo ; int main() { X<(foo)> x; static_cast<void>(x); }[demonstração ao vivo ...

3 a resposta

Existe algum motivo para usar std :: map :: emplace () em vez de try_emplace () em C ++ 1z?

No C ++ 17,std::map [http://en.cppreference.com/w/cpp/container/map]e std::unordered_map [http://en.cppreference.com/w/cpp/container/unordered_map] obteve um novo modelo de função de ...

1 a resposta

Como fornecer guia de dedução para a classe de modelo aninhado?

De acordo com [temp.deduct.guide/3 [https://timsong-cpp.github.io/cppwp/n4659/temp.deduct.guide#3]]: (...) Um guia de dedução deve ser declarado no mesmo escopo que o modelo de classe correspondente e, para um modelo de classe membro, com o ...

2 a resposta

Padrão C ++: as variáveis constexpr com escopo no espaço para nome têm ligação interna?

Imagine que temos um cabeçalhofoo.h contendo o seguinte: #ifndef FOO_H_ #define FOO_H_ namespace foo { constexpr std::string_view kSomeString = "blah"; } #endif // FOO_H_Éfoo::kSomeString garantido que tenha ligação interna em qualquer unidade ...

2 a resposta

A captura implícita do Lambda falha com a variável declarada da ligação estruturada

Com o código a seguir, recebo um erro de compilaçãoC2065 'a': undeclared identifier (usando o visual studio 2017): [] { auto [a, b] = [] {return std::make_tuple(1, 2); }(); auto r = [&] {return a; }(); //error C2065 }();No entanto, o seguinte ...

1 a resposta

Por que boost :: filesystem :: path e std :: filesystem :: path não possuem o operador +?

Considere as seguintes afirmações sobre a decomposição do caminho, em que cada variável local, por exemplostem tem a inicialização óbvia, por exemploauto stem = path.stem() — assert(root_path == root_name / root_directory); assert(path == ...

2 a resposta

Comportamento indefinido no uso repetido do operador prefix ++

Eu li issoresponda [https://stackoverflow.com/a/4176333/6935629]sobre comportamento indefinido, onde vi a seguinte declaração: ++++++i; // UB, parsed as (++(++(++i)))Não acho que seja um comportamento indefinido. Eu tenho uma dúvida, é realmente ...

2 a resposta

Por que esse lambda aninhado não é considerado constexpr?

Eu estou tentando criar uma interface ao curry usando aninhadas constexpr lambdas, mas o compilador não considera uma expressão constante. namespace hana = boost::hana; using namespace hana::literals; struct C1 {}; template < typename T, ...

1 a resposta

Posso usar o resultado de um operador de conversão C ++ 17 lambda constexpr captureless como argumento de tipo de modelo de ponteiro de função?

Ao responderComo escrevo uma expressão lambda que se parece com um método? [https://stackoverflow.com/questions/47604606/how-do-i-write-a-lambda-expression-that-looks-like-a-method] , Tentei transformar um lambda sem captura em um ponteiro de ...

1 a resposta

É legal verificar se o endereço de um subobjeto está dentro dos limites de um objeto que contém

2 perguntas: O código a seguir está bem formado com comportamento definido? Existe alguma implementação possível de c ++ na qual ela possa afirmar? Código (c ++ 11 e superior): #include <cassert> #include <utility> #include <ciso646> ...