[Example 1: constexprint v =1;
template<int V>struct TCls {staticconstexprint s = V +1;
};
using alias =[:^^TCls:]<([:^^v:])>;
// OK, a splice-specialization-specifier with a splice-expression as a template argumentstatic_assert(alias::s ==2);
auto o1 =[:^^TCls:]<([:^^v:])>(); // error: < means less thanauto o2 =typename[:^^TCls:]<([:^^v:])>(); // OK, o2 is an object of type TCls<1>constevalint bad_splice(std::meta::info v){return[:v:]; // error: v is not constant} — end example]