Überprüfung Wir haben:Explizite Instanziierung für Konzept
template<typename T>
struct A {
void foo(int a) {
T::foo(a);
}
};
template<typename T>
struct B {
template struct A<T>; // concept check
};
So definiere ich eine Ein Konzept-Prüfer, der T überprüft durch foo T Spedition :: foo.
Nun möchte ich überprüfen, ob das an B übergebene Argument das Konzept A durch explizite Instanziierung erfüllt, aber der Compiler beschwert sich, dass es der falsche Namensraum ist. Wie kann ich das beheben?
'A' ist kein Konzept. Es ist eine 'Struktur'. Selbst mit Concepts TS ist es immer noch eine Struktur; In Konzepten TS sind Konzepte entweder Funktionen oder Variablen. Ihre Frage scheint also verwirrt zu sein. –
Okay, ignoriere die Verwirrung. Wie setze ich den Scheck ein? – user3612643
Wenden Sie welche Prüfung an? Wie bereits festgestellt, überprüft 'A' * nichts *. –