Skip to content

[temp.arg.explicit] Misleading note about explicit template arguments on constructors #2041

@jensmaurer

Description

@jensmaurer

The note in paragraph 7 says "Because ... constructor member function templates are called without using a function name, there is no way to provide an explicit template argument list for these function templates."

This reasoning falls short for the other situations where a constructor template may be named, e.g. in an explicit instantiation or specialization.

I'd suggest to replace the "called" with "named" and add cross-references to [class.ctor] and [class.mem].

There is 12-year-old core issue 581 on the subject whether explicit instantiations or specializations of constructors should be allowed to use explicit template arguments, but the status quo normative situation in 17.9.1 [temp.arg.explicit] p1 seems pretty clear ("function template name").

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions