Files
2025-10-25 03:02:53 +03:00

2.2 KiB

[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]

1

#

A splice-specifier is dependent if its converted constant-expression is value-dependent.

A splice-specialization-specifier is dependent if its splice-specifier is dependent or if any of its template arguments are dependent.

A splice-scope-specifier is dependent if its splice-specifier orsplice-specialization-specifier is dependent.

2

#

[Example 1: template<auto T, auto NS>void fn() {using a = [:T:]<1>; // [:T:]<1> is dependent because [:T:] is dependentstatic_assert([:NS:]::template TCls<1>::v == a::v); // [:NS:] is dependent}namespace N {template struct TCls { static constexpr int v = V; };}int main() { fn<^^N::TCls, ^^N>();} — end example]

3

#

[Example 2: template<template class X>struct S {[:^^X:]<int, float> m;};

template struct V1 {};template<class, class = int> struct V2 {};

S s1; // error: V1<int, float> has too many template arguments S s2; // OK — end example]