Uploaded image for project: 'C++ Standard Library'
  1. C++ Standard Library
  2. STDCXX-942

[HP aCC 3.73] error on parenthesized qualified member function pointer declaration

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • External
    • None
    • aCC: HP ANSI C++ B3910B A.03.73

    • Incorrect Behavior

    Description

      ------- Original Message --------
      Subject: Re: aCC 3.73 error on parenthesized qualified member function pointer declaration
      Date: Wed, 21 May 2008 11:28:52 -0600
      From: Martin Sebor <sebor AT roguewave DOT com>
      Organization: Rogue Wave Software, Inc.
      To: acxx AT cup DOT hp DOT com
      CC: Eric Lemings <lemings AT roguewave DOT com>
      References: <4834498A DOT 9030804 AT roguewave DOT com>

      The test case can be simplified a little bit further:

      namespace N {
      struct S {
      void foo ()

      { void (S::*pf)(N::S&); }

      };
      }

      aCC: HP ANSI C++ B3910B A.03.73
      Error 420: "t.cpp", line 3 # Syntax error in class or function declaration.
      void foo ()

      { void (S::*pf)(N::S&); }

      ^
      Error 231: "t.cpp", line 3 # The underlying type to which a pointer,
      reference or pointer to member refers must not be a reference.
      void foo ()

      { void (S::*pf)(N::S&); }

      ^^^^

      Martin Sebor wrote:
      > I don't think we've reported this one yet:
      >
      > $ cat t.cpp && aCC -c -V t.cpp
      > namespace N {
      > template <class T> struct S {
      > void foo ()

      { void (N::S<T>::*pf)(); }

      > };
      > }
      >
      > int main ()

      { N::S<int>().foo (); }

      >
      > aCC: HP ANSI C++ B3910B A.03.73
      > Error 420: "t.cpp", line 3 # Syntax error in class or function declaration.
      > void foo ()

      { void (N::S<T>::*pf)(); }

      > ^
      > Error 231: "t.cpp", line 3 # The underlying type to which a pointer,
      > reference or pointer to member refers must not be a reference.
      > void foo ()

      { void (N::S<T>::*pf)(); }

      > ^^^^^^^^^^

      Attachments

        Activity

          People

            Unassigned Unassigned
            sebor Martin Sebor
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: