Created on2016-03-29.00:00:00 last changed62 months ago
Proposed resolution (November, 2017)
Change 13.9 [temp.spec] paragraph 2 as follows:
A function instantiated from a function template is called an instantiatedfunction. A class instantiated from a class template is called aninstantiated class. A member function, a member class, a memberenumeration, or a static data member of a class template instantiated fromthe member definition of the class template is called, respectively, aninstantiated member function, member class, member enumeration, or staticdata member. A member function instantiated from a member function templateis called an instantiated member function. A member class instantiated froma member class template is called an instantiated member class.Avariable instantiated from a variable template is called an instantiatedvariable. A static data member instantiated from a static data membertemplate is called an instantiated static data member.
[Accepted as a DR at the March, 2018 (Jacksonville) meeting.]
The current wording does not state that a specialization of a staticdata member template (Clause 13 [temp] paragraph 1) is a staticdata member, which leaves the status of an example like the followingunclear (since 7.6.1.5 [expr.ref] bullet 4.1 is phrased interms of static data members):
template <class T> struct A { template <class U> static const U x = 1; static const int y = 2; }; int main() { A<int> a; int y = a.y; // OK int x = a.x<int>; // ??? }| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2020-12-15 00:00:00 | admin | set | status: dr -> cd5 |
| 2018-04-11 00:00:00 | admin | set | status: tentatively ready -> dr |
| 2018-02-27 00:00:00 | admin | set | messages: +msg5871 |
| 2018-02-27 00:00:00 | admin | set | status: open -> tentatively ready |
| 2016-03-29 00:00:00 | admin | create | |