abstract2.c

来自「Mac OS X 10.4.9 for x86 Source Code gcc」· C语言 代码 · 共 59 行

C
59
字号
// { dg-do compile }// Contributed by Gabriel Dos Reis <gdr at integrable-solutions dot net>// PR c++/2204: Check for parameters of abstract type in function declarations.namespace N1 {  struct X;  struct Y1 {    void g(X parm1);         // { dg-error "abstract" }    void g(X parm2[2]);      // { dg-error "abstract" }    void g(X (*parm3)[2]);   // { dg-error "abstract" }  };  template <int N>  struct Y2 {    void g(X parm4);         // { dg-error "abstract" }    void g(X parm5[2]);      // { dg-error "abstract" }    void g(X (*parm6)[2]);   // { dg-error "abstract" }  };  struct X {  // { dg-error "note" }    virtual void xfunc(void) = 0;  // { dg-error "note" }  };}namespace N2 {  struct X1 { // { dg-error "note" }    virtual void xfunc(void) = 0;  // { dg-error "note" }    void g(X1 parm7);        // { dg-error "abstract" }    void g(X1 parm8[2]);     // { dg-error "abstract" }    void g(X1 (*parm9)[2]);  // { dg-error "abstract" }  };  template <int N>  struct X2 { // { dg-error "note" }    virtual void xfunc(void) = 0; // { dg-error "note" }    void g(X2 parm10);        // { dg-error "abstract" }    void g(X2 parm11[2]);     // { dg-error "abstract" }    void g(X2 (*parm12)[2]);  // { dg-error "abstract" }  };}namespace N3 {  struct X { // { dg-error "note" "" }    virtual void xfunc(void) = 0;  // { dg-error "note" }  };  void g(X parm13);          // { dg-error "abstract" }  void g(X parm14[2]);       // { dg-error "abstract" }  void g(X (*parm15)[2]);    // { dg-error "abstract" }  template <int N>   void g(X parm16);          // { dg-error "abstract" }  template <int N>   void g(X parm17[2]);       // { dg-error "abstract" }  template <int N>   void g(X (*parm18)[2]);    // { dg-error "abstract" }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?