Movatterモバイル変換


[0]ホーム

URL:


This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 119a. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2025-12-20


565. Conflict rules forusing-declarations naming function templates

Section:9.10  [namespace.udecl]    Status:CD3    Submitter:Paolo Carlini    Date:9 March 2006

[Voted into the WP at the February, 2012 meeting;moved to DR at the October, 2012 meeting.]

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.

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:...



[8]ページ先頭

©2009-2026 Movatter.jp