primary3.c

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

C
46
字号
// { dg-do run  }// Copyright (C) 2000 Free Software Foundation, Inc.// Contributed by Nathan Sidwell 4 February 2001 <nathan@codesourcery.com>// Check primary bases are chosen correctly.struct A {virtual void Foo () {}};struct B1 : virtual A {};struct B2 : virtual A {};struct C : virtual B1, B2 {};struct D : virtual C {};int main (){  C c;  D d;    A *apc = &c;  B1 *b1pc = &c;  B2 *b2pc = &c;    A *apd = &d;  B1 *b1pd = &d;  B2 *b2pd = &d;  C *cpd = &d;  #if __GXX_ABI_VERSION >= 100  if (static_cast <void *> (apc) != static_cast <void *> (b1pc))    return 1;  if (static_cast <void *> (&c) != static_cast <void *> (b2pc))    return 2;  if (static_cast <void *> (b1pc) == static_cast <void *> (b2pc))    return 3;    if (static_cast <void *> (apd) != static_cast <void *> (b1pd))    return 11;  if (static_cast <void *> (b2pd) != static_cast <void *> (&d))    return 12;  if (static_cast <void *> (b2pd) != static_cast <void *> (cpd))    return 13;  if (static_cast <void *> (b1pd) == static_cast <void *> (b2pd))    return 14;#endif  return 0;}

⌨️ 快捷键说明

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