Kenji,
Thank you much for the '.C' alias support, Amazed to see there could be some action so quick!
Could we please look at the nontype-as-primary-template?
How can we deduce all of the dependent types from a non-type template parameter, if it's the only parameter of the primary template?// P is the primary-template param
struct Foo {};
template <class> struct B { Foo x; }
template <nontype P> struct A;// Given the call in main,
template <auto M, auto C, nontype P> struct A<M C::*P> {
// M is deduced as Foo
// C is deduced as B<int>
// P was passed successfully and we know the types that make it up.
}
int main() {
auto mp = &B<B<int>>::x
A<mp> a;
}