Heim >Backend-Entwicklung >C++ >Können lokale Klassen als Vorlagenargumente in STL-Algorithmen verwendet werden?

Können lokale Klassen als Vorlagenargumente in STL-Algorithmen verwendet werden?

DDD
DDDOriginal
2024-11-16 10:42:02936Durchsuche

Can Local Classes Be Used as Template Arguments in STL Algorithms?

Verwendung lokal definierter Klassen mit STL-Algorithmen

Bei der Programmierung ist es oft wünschenswert, lokal definierte Klassen als Prädikate für STL-Algorithmen zu verwenden. Leider verbietet der C 98/03-Standard diese Praxis ausdrücklich und besagt:

Diese Einschränkung ist in Artikel 14.3.1 des C-Standards festgelegt.

Ursprünglich war diese Einschränkung Dies wird von vielen Programmierern als Fehler angesehen und wäre früher behoben worden, wenn sich der Standard schneller weiterentwickelt hätte. Allerdings wurde diese Einschränkung in C 11 aufgehoben, sodass lokale Typen als Vorlagenargumente verwendet werden können.

Zum Beispiel ist der folgende Code, der zuvor in C 98/03 ungültig war, jetzt in C 11 zulässig:

Die meisten modernen Compiler ermöglichen die Verwendung lokaler Klassen als Vorlagenargumente und bieten Unterstützung für Lambda-Ausdrücke.

Das obige ist der detaillierte Inhalt vonKönnen lokale Klassen als Vorlagenargumente in STL-Algorithmen verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn