Betrachten Sie dieses Beispiel (also available on wandbox):Kann C++ 17 'automatisch' Nicht-Typ `Template'-Parameter Mustervergleichsvorlagen mit expliziten Nicht-Typ-Parametern ableiten?
template <template <auto> class>
void test() { }
template <int>
struct X { };
Versuch test<X>()
auf clang++
4.0 (Stamm) führt zu einem Kompilierungsfehler zu instanziiert:
error: no matching function for call to 'test'
test<X>();
^~~~~~~
note: candidate template ignored:
invalid explicitly-specified argument for 1st template parameter
void test() { }
Meine anfängliche Annahme/Intuition, dass test
könnte verwendet werden, um einen beliebigen template
mit einem Nicht-Typparameter zu finden.
jedoch der folgende Code-Schnipsel erfolgreich kompiliert:
template <template <auto> class>
void test() { }
// vvvv
template <auto>
struct X { };
Ist das beabsichtigt? Konnte nicht schlüssig in P0127R2 finden.
Im Titel meintest du "abgeleitet"? –