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

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: External
    • Labels:
      None
    • Environment:

      aCC: HP ANSI C++ B3910B A.03.73

    • Severity:
      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

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

              Dates

              • Created:
                Updated: