unify10.c

来自「用于进行gcc测试」· C语言 代码 · 共 49 行

C
49
字号
// { dg-do compile }// Origin: Wolfgang Bangerth <bangerth at ticam dot utexas dot edu>//     and Rene Fonseca <fonseca at mip dot sdu dot dk>// PR c++/8271: Check cv-qualifiers while unifying pointer to member//  functions.struct MyClass {  void mMethod() throw() {}  void cMethod() const throw() {}  void vMethod() volatile throw() {}  void cvMethod() const volatile throw() {}};template<class CLASS>void mFunction(void (CLASS::* method)()) {}template<class CLASS>void cFunction(void (CLASS::* method)() const) {}template<class CLASS>void vFunction(void (CLASS::* method)() volatile) {}template<class CLASS>void cvFunction(void (CLASS::* method)() const volatile) {}int main() {  mFunction(&MyClass::mMethod);  mFunction(&MyClass::cMethod);    // { dg-error "no matching function" }  mFunction(&MyClass::vMethod);    // { dg-error "no matching function" }  mFunction(&MyClass::cvMethod);   // { dg-error "no matching function" }  cFunction(&MyClass::mMethod);    // { dg-error "no matching function" }  cFunction(&MyClass::cMethod);  cFunction(&MyClass::vMethod);    // { dg-error "no matching function" }  cFunction(&MyClass::cvMethod);   // { dg-error "no matching function" }  vFunction(&MyClass::mMethod);    // { dg-error "no matching function" }  vFunction(&MyClass::cMethod);    // { dg-error "no matching function" }  vFunction(&MyClass::vMethod);  vFunction(&MyClass::cvMethod);   // { dg-error "no matching function" }  cvFunction(&MyClass::mMethod);   // { dg-error "no matching function" }  cvFunction(&MyClass::cMethod);   // { dg-error "no matching function" }  cvFunction(&MyClass::vMethod);   // { dg-error "no matching function" }  cvFunction(&MyClass::cvMethod);  return 0;}

⌨️ 快捷键说明

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