cdisp9.c

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 61 行

C
61
字号
// MetaWare and IBM CSet++ can't compile this program
// Borland can't execute it properly
#include "fail.h"

struct V {
    int v;
    virtual void check( int v_value, unsigned line )
    {
	if( v != v_value ) {
	    fail(line);
	}
    }
};
template <class VBase>
    struct Trouble : virtual VBase {
	Trouble()
	{
	    V *pv = this;
    
	    v = __LINE__;
	    pv->check( v, __LINE__ );
	}
	virtual void check( int v_value, unsigned line )
	{
	    if( v != v_value ) {
		fail(line);
	    }
	}
    };
template <class VBase>
    struct Disrupt : virtual VBase {
	Disrupt()
	{
	    V *pv = this;
    
	    v = __LINE__;
	    pv->check( v, __LINE__ );
	}
    };
int main()
{
    Disrupt<
     Trouble<
      Disrupt<
       Trouble<
        Disrupt<
         Trouble<
          Disrupt<
           Trouble<
    V
           >
          >
         >
        >
       >
      >
     >
    > dummy;
    _PASS;
}

⌨️ 快捷键说明

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