Articles of c + + 17

reinterpret_cast criando um object trivialmente construtível por padrão

cppreference † afirma que: Objetos com construtores padrão triviais podem ser criados usando reinterpret_cast em qualquer armazenamento adequadamente alinhado, por exemplo, na memory alocada com std::malloc . Isto implica que o seguinte é um código bem definido: struct X { int x; }; alignas(X) char buffer[sizeof(X)]; // (A) reinterpret_cast(buffer)->x = 42; // (B) Três perguntas […]

enum para string no moderno C ++ 11 / C ++ 14 / C ++ 17 e futuro C ++ 20

Ao contrário de todas as outras questões semelhantes, esta questão é sobre como usar os novos resources do C ++. 2008 c Existe uma maneira simples de converter enum em C ++ em string? 2008 c Maneira fácil de usar variables ​​de tipos enum como string em C? 2008 c ++ Como facilmente mapear c […]

Quais são os novos resources do C ++ 17?

O C ++ 17 agora está completo, portanto, é improvável que ocorram grandes mudanças. Foram apresentadas centenas de propostas para o C ++ 17. Quais desses resources foram adicionados ao C ++ em C ++ 17? Ao usar um compilador C ++ que suporte “C ++ 1z”, quais desses resources estarão disponíveis quando o compilador […]

Quais são as garantias de ordem de avaliação introduzidas pelo C ++ 17?

Quais são as implicações das garantias de ordem de avaliação votadas em C ++ 17 (P0145) no código C ++ típico? O que muda sobre coisas como i=1; f(i++, i) e std::cout << f() << f() << f() ; ou f(g(),h(),j());

Como funciona a elisão de cópia garantida?

Na reunião de Padrões ISO C ++ de 2016 da Oulu, uma proposta chamada Elisão de cópia garantida por meio de categorias de valor simplificadas foi votada em C ++ 17 pelo comitê de padrões. Como funciona exatamente a cópia garantida de elisão? Abrange alguns casos em que a elisão de cópia já foi permitida […]

O que são agregados e PODs e como / por que eles são especiais?

Esta FAQ é sobre Agregados e PODs e abrange o seguinte material: O que são agregados ? O que são POD s (dados antigos simples)? Como eles estão relacionados? Como e por que eles são especiais? O que muda para o C ++ 11?