Created on2006-03-09.00:00:00 last changed145 months ago
[Voted into the WP at the February, 2012 meeting;moved to DR at the October, 2012 meeting.]
Proposed resolution (August, 2011):
Change 9.10 [namespace.udecl] paragraph 14 as follows:
If a function declaration in namespace scope or block scope has thesame name and the sameparameter typesparameter-type-list (9.3.4.6 [dcl.fct]) as afunction introduced by ausing-declaration, and thedeclarations do not declare the same function, the program isill-formed.If a function template declaration in namespacescope has the same name, parameter-type-list, return type, andtemplate parameter list as a function template introduced by ausing-declaration, the program is ill-formed.[Note: Twousing-declarations may introduce functionswith the same name and the sameparameter typesparameter-type-list. If, for a call to an unqualifiedfunction name, function overload resolution selects the functionsintroduced by suchusing-declarations, the function call isill-formed. [Example:...
The Standard does not appear to specify what happens for code like thefollowing:
namespace one { template<typename T> void fun(T); } using one::fun; template<typename T> void fun(T);9.10 [namespace.udecl] paragraph 13 does not appear to applybecause it deals only with functions, not function templates:
If a function declaration in namespace scope or block scope has thesame name and the same parameter types as a function introduced by ausing-declaration, and the declarations do not declare the samefunction, the program is ill-formed.
John Spicer: For function templates I believe the ruleshould be that if they have the same function type (parameter typesand return type) and have identical template parameter lists, theprogram is ill-formed.
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2014-03-03 00:00:00 | admin | set | status: drwp -> cd3 |
| 2012-11-03 00:00:00 | admin | set | status: dr -> drwp |
| 2012-02-27 00:00:00 | admin | set | messages: +msg3806 |
| 2012-02-27 00:00:00 | admin | set | status: ready -> dr |
| 2011-09-06 00:00:00 | admin | set | messages: +msg3458 |
| 2011-09-06 00:00:00 | admin | set | status: open -> ready |
| 2006-03-09 00:00:00 | admin | create | |