What is a member function template?
Section [temp.mem.func]
David Thornley

Created on 2000-10-11.00:00:00 last changed 228 months ago


Date: 2000-10-15.00:00:00

Proposed resolution (10/00): As suggested.

Date: 2020-12-15.00:00:00

The phrase "member function template" is used in 6.3 [basic.def.odr] paragraph 5 in the list of entities whose definitions can appear more than once in a program, with a cross-reference to [temp.mem.func]. The title of that section is "Member functions of class templates," and paragraph 1 of that section says,

A member function template may be defined outside of the class template in which it is declared.

The example in that paragraph shows a non-template member function of a class template being defined. This gives the impression that the phrase "member function template" is intended to refer to a member function of a class template.

If this usage were intended, much of the rest of the Standard would be unintelligible: objects of class template specializations could not be copied (_N4750_.15.8 [class.copy] paragraph 3), member functions of class templates could not be declared virtual (13.7.3 [temp.mem] paragraph 3), etc.

Suggested resolution:

Change "member function template" to "member function of a class template" in both 6.3 [basic.def.odr] paragraph 5 and [temp.mem.func] paragraph 1.

(See also issue 205.)

Date User Action Args
2003-04-25 00:00:00adminsetstatus: dr -> tc1
2000-11-18 00:00:00adminsetmessages: + msg452
2000-10-11 00:00:00admincreate