Uma função constexpr pode conter um rótulo?
Nov 16 2020
Este programa :
constexpr void f() { x: ; }
é compilado pelo gcc, mas clang diz:
error: statement not allowed in constexpr function
Então, este código é válido?
Respostas
7 cigien Nov 16 2020 at 11:35
Conforme apontado em um comentário de Nathan Pierson , Clang está correto e o código está malformado. De acordo com o rascunho de trabalho atual (que inclui C ++ 20), dcl.constexpr # 3 diz:
A definição de uma função constexpr deve satisfazer os seguintes requisitos:
...
seu corpo de função não deve incluir
...
uma etiqueta identificadora,
...
...
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino