In C ++ 20 kann der autoFunktionsparametertyp verwendet werden.
Ermöglicht es auch die Verwendung autoeines Platzhalters als Vorlagenargument (nicht ähnlich, aber in gewisser Weise im Sinne der C ++ 17-Vorlage <auto> ) für den Funktionsparametertyp?
Also der folgende Code vor C ++ 20:
template<typename First, typename Second>
void printPair(const std::pair<First, Second>& p) {
std::cout << p.first << ", " << p.second;
}
Könnte geschrieben werden als:
void printPair(const std::pair<auto, auto>& p) {
std::cout << p.first << ", " << p.second;
}
Es kompiliert und funktioniert gut mit der experimentellen GCC-Implementierung für Konzepte.
Ist es eine legitime Syntax mit C ++ 20?
autoerlaubt ist . [](const std::pair<auto, auto>& p){}-std=c++2a-std=c++17
autodirekt Templatisierttypename XYZ, was stark bedeuten würde, dass es sich um die legitime Syntax handelt. Ordentlich .