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

📄 ptrflags.c

📁 gcc-you can use this code to learn something about gcc, and inquire further into linux,
💻 C
字号:
// Test rtti pointer flags// Copyright (C) 2000, 2002 Free Software Foundation, Inc.// Contributed by Nathan Sidwell 15 Apr 2000 <nathan@nathan@codesourcery.com>#include <typeinfo>#if defined (__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100#include <cxxabi.h>struct A {int m;};struct B;using namespace abi;int expect (int flags, std::type_info const &info){  abi::__pbase_type_info const *ptr =      dynamic_cast <abi::__pbase_type_info const *> (&info);  if (!ptr)    return 0;  if (ptr->__flags != flags)    return 0;  return 1;}int main (){  if (! expect (0, typeid (A *)))    return 1;  if (! expect (1, typeid (A const *)))    return 2;  if (! expect (2, typeid (A volatile *)))    return 3;  if (! expect (4, typeid (A *__restrict__ *)))    return 4;  if (! expect (0, typeid (int A::*)))    return 5;  if (! expect (0, typeid (int A::**)))    return 6;  if (! expect (8 | 0, typeid (B *)))    return 11;  if (! expect (8 | 1, typeid (B const *)))    return 12;  if (! expect (8 | 2, typeid (B volatile *)))    return 13;  if (! expect (8 | 4, typeid (B *__restrict__ *)))    return 14;  if (! expect (16 | 0, typeid (int B::*)))    return 15;  if (! expect (8 | 0, typeid (int B::**)))    return 16;  if (! expect (8 | 0, typeid (B A::*)))    return 17;  if (! expect (24, typeid (B B::*)))    return 18;    return 0;}#elseint main (){  return 0;}#endif

⌨️ 快捷键说明

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