Betrachten Sie ein einfaches Beispiel:
%Vor%Sowohl [gcc] als auch [clang ] scheint den Code zu akzeptieren. Ist der Code wirklich C ++ 17 kompatibel? Wenn ja, gibt es eine andere Regel, die den folgenden Code schlecht ausgebildet macht?
%Vor%Dieser macht nur [gcc] unglücklich.
Fehlermeldung:
%Vor% Ja, auto
kann in einem zusammengesetzten Typ verwendet werden ( [temp.param] /4.6 , [dcl.type.auto.deduct] ). Ich glaube, dass gcc in Ihrem zweiten Beispiel falsch ist: Ihre explizit angegebene T
von int
wird vor dem Abzug ([temp.educt] /2.3, / 5 und / 6, referenziert durch [dcl.type. auto.educt] /2.3 und / 4).
Tags und Links c++ templates language-lawyer c++17