Originalausgabe:
Stateful Metaprogramming unter Verwendung von Techniken wie constexpr-Zähler ermöglichen die Zustandsmanipulation in der Metaprogrammierung. Obwohl unter C 14 zulässig, wurden Bedenken hinsichtlich der Konformität mit der Semantik der Sprache geäußert.
Frage:
Hat sich der Status der Stateful Metaprogramming in C 17 geändert?
Aktives CWG-Problem 2118:
Das C-Standards-Komitee hat dies als potenzielles Problem erkannt und es als aktives CWG-Problem 2118 eingestuft. Die Sorge besteht darin, dass die Verwendung von Friend-Funktionen in Vorlagen zum Erfassen und Abrufen des Metaprogrammierungsstatus geheimnisvoll ist und sollte als schlecht geformt erklärt werden.
Auflösung in C 17:
Zum Zeitpunkt der CWG-Sitzung im Mai 2015 ist das Problem weiterhin ungelöst. Das Komitee stimmte zwar zu, dass solche Techniken fehlerhaft sein sollten, der Mechanismus zu ihrem Verbot muss jedoch noch festgelegt werden.
Aktuelle Implikation:
Stateful Metaprogramming-Techniken bleiben technisch gesehen bestehen in C 17 legal. Wenn jedoch letztendlich ein Verbotsmechanismus implementiert wird, kann er diese Techniken rückwirkend zu nicht konformem Code machen.
Das obige ist der detaillierte Inhalt vonIst Stateful Metaprogramming in C 17 noch legal?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!