typename7.c

来自「linux下编程用 编译软件」· C语言 代码 · 共 32 行

C
32
字号
// { dg-do compile }// Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de> and// Alexandre Oliva <aoliva@redhat.com>// PR c++/18757: ICE in get_innermost_template_argsstruct A{  template<typename>   void foo(int);  template<typename T> void bar(T t) {    this->foo<typename T>(t); } // { dg-error "expected|parse error|no matching" }  template<typename T> void bad(T t) {    foo<typename T>(t); } // { dg-error "expected|parse error" }};template <typename T>struct B{  void bar(T t) {    A().bar<typename T>(t); } // { dg-error "expected|parse error|no matching" }  void bad(T t) {    B<typename T>::bar(t); } // { dg-error "invalid|not a template" }};void baz(){  A().bar(0);  A().bad(0);  B<int>().bar(0);}

⌨️ 快捷键说明

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