You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2007/11/09 00:40:50 UTC
[jira] Closed: (STDCXX-657) [HP aCC 3.39] confused taking the
address of an overloaded member
[ https://issues.apache.org/jira/browse/STDCXX-657?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Sebor closed STDCXX-657.
-------------------------------
Resolution: Fixed
The test case compiles with 3.73. Closing.
> [HP aCC 3.39] confused taking the address of an overloaded member
> -----------------------------------------------------------------
>
> Key: STDCXX-657
> URL: https://issues.apache.org/jira/browse/STDCXX-657
> Project: C++ Standard Library
> Issue Type: Bug
> Components: External
> Environment: HP aCC 3.25 - (at least) 3.39
> Reporter: Martin Sebor
>
> Moved from Rogue Wave bug tracking database:
> ****Created By: sebor @ Dec 29, 2000 09:03:26 PM****
> Subject: aCC 3.25 confused taking the address of an overloaded member
> Date: Fri, 29 Dec 2000 21:03:09 -0700
> From: Martin Sebor <se...@roguewave.com>
> Organization: Rogue Wave Software, Inc.
> To: HP aCC mailing list <ac...@cup.hp.com>
> Here's another member template problem.
> Martin
> $ cat t.cpp
> template<class T>
> struct S
> {
> void foo (S&) throw ();
> template <class U>
> void foo (S<U>&) throw ();
> };
> int main ()
> {
> void (S<int>::*pf) (S<int>&) throw () = &S<int>::foo;
> }
> $ aCC -V -c t.cpp
> aCC: HP ANSI C++ B3910B A.03.25
> Error 722: "t.cpp", line 12 # The exception specification for the source must
> be at least as restrictive as the exception specification for the
> destination.
> void (S<int>::*pf) (S<int>&) throw () = &S<int>::foo;
> ^
> Error 722: "t.cpp", line 12 # The exception specification for the source must
> be at least as restrictive as the exception specification for the
> destination.
> void (S<int>::*pf) (S<int>&) throw () = &S<int>::foo;
> ^
> Error 706: "t.cpp", line 12 # An overloaded variable may not be used in this
> context.
> void (S<int>::*pf) (S<int>&) throw () = &S<int>::foo;
> ^^^^^^^^^^^
> ****Modified By: sebor @ Jan 03, 2001 09:51:13 PM****
> Subject: Re: aCC 3.25 confused taking the address of an overloaded member
> Date: Wed, 3 Jan 2001 20:48:08 -0800 (PST)
> From: Dennis Handly <dh...@cup.hp.com>
> To: acxx-beta@cup.hp.com, sebor@roguewave.com
> >Here's another member template problem.
> Martin
> Error 722: The exception specification for the source must
> be at least as restrictive as the exception specification for the
> destination.
> I filed the following for you:
> CR JAGad44411
> Error 722 throw spec problem with member templates
> ****Modified By: sebor @ Feb 23, 2001 09:18:09 PM****
> Bug persists in 3.27:
> $ aCC -V -c -AA t.cpp
> aCC: HP ANSI C++ B3910B A.03.27
> Error 722: "t.cpp", line 12 # The exception specification for the source must
> be at least as restrictive as the exception specification for the
> destination.
> void (S<int>::*pf) (S<int>&) throw () = &S<int>::foo;
> ^
> Error 722: "t.cpp", line 12 # The exception specification for the source must
> be at least as restrictive as the exception specification for the
> destination.
> void (S<int>::*pf) (S<int>&) throw () = &S<int>::foo;
> ^
> Error 706: "t.cpp", line 12 # An overloaded variable may not be used in this
> context.
> void (S<int>::*pf) (S<int>&) throw () = &S<int>::foo;
> ^^^^^^^^^^^
> ****Modified By: sebor @ Jan 28, 2003 11:48:35 AM****
> Still broken in 3.39.
> $ cat t.cpp && aCC +w -AA -V t.cpp && ./a.out; echo $?
> template<class T>
> struct S
> {
> void foo (S&) throw ();
> template <class U>
> void foo (S<U>&) throw ();
> };
> int main ()
> {
> void (S<int>::*pf) (S<int>&) throw () = &S<int>::foo;
> }
> aCC: HP ANSI C++ B3910B A.03.39
> Error 722: "t.cpp", line 13 # The exception specification for the source must
> be at least as restrictive as the exception specification for the
> destination.
> void (S<int>::*pf) (S<int>&) throw () = &S<int>::foo;
> ^
> Error 722: "t.cpp", line 13 # The exception specification for the source must
> be at least as restrictive as the exception specification for the
> destination.
> void (S<int>::*pf) (S<int>&) throw () = &S<int>::foo;
> ^
> Error 706: "t.cpp", line 13 # An overloaded variable may not be used in this
> context.
> void (S<int>::*pf) (S<int>&) throw () = &S<int>::foo;
> ^^^^^^^^^^^
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.