Heim >Backend-Entwicklung >C++ >Können lokale Klassen als Vorlagenargumente in STL-Algorithmen verwendet werden?
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!