Considérez les deux concepts simples suivants :
template <typename T>
concept C1 = requires(T t) {
[t = t]{ t; };
};
template <typename T>
concept C2 = requires(T t) {
[t]{ t; };
};
À mon avis, les deux déclarations devraient être équivalentes, mais le GCC rejette l'option concept C2
et dit :
<source>:10:9: error: use of parameter outside function body before ';' token
Pourquoi le GCC n'accepte que le concept C1
ou c'est juste un bug ? Sinon, quelle est la différence entre ces deux déclarations ?