⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 covariant3.c

📁 Mac OS X 10.4.9 for x86 Source Code gcc 实现源代码
💻 C
字号:
// { dg-do run }// Copyright (C) 2003 Free Software Foundation, Inc.// Contributed by Nathan Sidwell 12 Dec 2003 <nathan@codesourcery.com>// Origin:  grigory@stl.sarov.ru// PR c++/13118. Missing covariant thunk.struct c0 {};struct c1 : virtual c0 {  virtual c0* f6();};struct c5 {    virtual void foo();};struct c10 : virtual c1 {    virtual void foo();};struct c1a : c1 {}; // disambiguationstruct c11 : virtual c10, c1a {  int i;  virtual c1* f6 () = 0;};struct c18 : c5, virtual c1 {    virtual void bar();};struct c28 : virtual c0, virtual c11 {    virtual c18* f6();};c0 *c1::f6 () {}void c5::foo () {}void c10::foo () {}void c18::bar () {}c18 ret;c18 *c28::f6 (){  return &ret;}bool check_c1 (c1 *ptr){  c0 *r = ptr->f6 ();  return r != &ret;}bool check_c10 (c10 *ptr){  c0 *r = ptr->f6 ();  return r != &ret;}bool check_c11 (c11 *ptr){  c1 *r = ptr->f6 ();  return r != &ret;}bool check_c28 (c28 *ptr){  c18 *r = ptr->f6 ();  return r != &ret;}int main (){  c28 obj;    if (check_c1 (static_cast<c1a *> (&obj)))    return 1;  if (check_c1 (static_cast<c10 *> (&obj)))    return 2;  if (check_c10 (&obj))    return 3;  if (check_c11 (&obj))    return 4;  if (check_c28 (&obj))    return 5;  return 0;}

⌨️ 快捷键说明

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