Title
Unnamed members of classes used as type parameters
Status
cd1
Section
13.4.2 [temp.arg.type]
Submitter
Steve Adamczyk

Created on 1998-10-13.00:00:00 last changed 189 months ago

Messages

Date: 2001-04-15.00:00:00

[Moved to DR at 4/01 meeting.]

Date: 2000-10-15.00:00:00

Proposed resolution (04/01):

In 13.4.2 [temp.arg.type] paragraph 2, change

A local type, a type with no linkage, an unnamed type or a type compounded from any of these types shall not be used as a template-argument for a template type-parameter.

to

The following types shall not be used as a template-argument for a template type-parameter:
  • a type whose name has no linkage
  • an unnamed class or enumeration type that has no name for linkage purposes (9.2.4 [dcl.typedef])
  • a cv-qualified version of one of the types in this list
  • a type created by application of declarator operators to one of the types in this list
  • a function type that uses one of the types in this list
Date: 1999-09-14.00:00:00

Section 13.4.2 [temp.arg.type] paragraph 2 says

A local type, a type with no linkage, an unnamed type or a type compounded from any of these types shall not be used as a template-argument for a template type-parameter.

It probably wasn't intended that classes with unnamed members should be included in this list, but they are arguably compounded from unnamed types.

History
Date User Action Args
2008-10-05 00:00:00adminsetstatus: wp -> cd1
2003-04-25 00:00:00adminsetstatus: dr -> wp
2002-05-10 00:00:00adminsetmessages: + msg690
2001-05-20 00:00:00adminsetstatus: ready -> dr
2000-11-18 00:00:00adminsetmessages: + msg405
2000-11-18 00:00:00adminsetstatus: drafting -> ready
2000-02-23 00:00:00adminsetstatus: open -> drafting
1998-10-13 00:00:00admincreate