From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3502 invoked by alias); 22 Jun 2011 17:35:28 -0000 Received: (qmail 3427 invoked by uid 22791); 22 Jun 2011 17:35:27 -0000 X-SWARE-Spam-Status: No, hits=-2.7 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 22 Jun 2011 17:35:12 +0000 From: "jason at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/22596] Impossible to explicitly instantiate particular overloaded function X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jason at gcc dot gnu.org X-Bugzilla-Status: RESOLVED X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Status Resolution Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Wed, 22 Jun 2011 17:35:00 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2011-06/txt/msg01985.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22596 Jason Merrill changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID --- Comment #9 from Jason Merrill 2011-06-22 17:35:09 UTC --- This is not a bug; under the partial ordering rules, the second foo is more specialized than the first, so if both are possible matches the second will be chosen. If you want the explicit instantiation to match the same function that's called with no explicit template arguments, then don't provide explicit template arguments in the explicit instantiation. If you just write template int foo(A_class a); or template int foo<>(A_class a); it will do what you want.