This question is related to this one and has to be with the specific cases below
template<class T, class U = T> class B { };
template <class ... Types> class C { };
template<template<class> class P> class X { };
X<B>{ }; // OK
X<C>{ }; // OK
The standard in [temp.arg.template]/3
has marked these two cases as OK but the last update on the defect CWG 150 says that the CWG
has decided not take action yet. Neither clang
nor gcc
accept the code.
Are clang
and gcc
non-conformant?