Open
Description
Testcase:
template<typename T> void F() {
// Clang requires `typename` and `template`. As discussed later in this
// issue, should require only `typename`.
T::X<int> f();
}
template<typename T> class C {
// Should require neither; clang requires `template` but not `typename`.
T::X<int> g();
};
template<typename T>
// Should require neither; clang requires `template` but not `typename`.
T::X<int> h();
Under P1787 (DR against C++20), per [temp.names]/3, the template
keyword is not required before X
in g
and h
, following the same rules that P0634 established for type-only contexts. But Clang (and GCC) seems to not implement this, and still requires template
in g
and h
.
Metadata
Metadata
Assignees
Type
Projects
Status
No status