[temp.dep.splice]
13 Templates [temp]
13.8 Name resolution [temp.res]
13.8.3 Dependent names [temp.dep]
13.8.3.5 Dependent splice specifiers [temp.dep.splice]
[Example 1: template<auto T, auto NS> void fn() { using a = [:T:]<1>; static_assert([:NS:]::template TCls<1>::v == a::v); } namespace N { template <auto V> struct TCls { static constexpr int v = V; }; } int main() { fn<^^N::TCls, ^^N>(); } — end example]
[Example 2: template<template<class> class X> struct S { [:^^X:]<int, float> m; }; template<class> struct V1 {}; template<class, class = int> struct V2 {}; S<V1> s1; S<V2> s2; — end example]