ns20.c

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

C
53
字号
#include "fail.h"

#ifdef __WATCOM_NAMESPACE__
namespace x {
    template <class T>
	struct S {
	    T x[10];
	    T set( T i, T v ) {
		v ^= x[i];
		x[i] ^= v;
		v ^= x[i];
		return v;
	    }
	};
    namespace q {
	int i = 'i';
    };
    typedef enum E { A, B, C } T;
    int E;
};

using x::q;
using x::T;
using x::S;
using x::E;

int main() {
    if( &q::i != &x::q::i ) fail(__LINE__);
    if( q::i != 'i' ) fail(__LINE__);
    size_t x = sizeof( T );
    if( x != sizeof( x::T ) ) fail(__LINE__);
    T e;
    e = x::A;
    e = x::B;
    enum E f;
    f = x::A;
    f = x::B;
    S<short> zz;
    for( int i = 0; i < 10; ++i ) {
	zz.set( i, -i );
    }
    for( i = 0; i < 10; ++i ) {
	if( zz.set( i, i ) != -i ) fail(__LINE__);
    }
    for( i = 0; i < 10; ++i ) {
	if( zz.set( i, -i ) != i ) fail(__LINE__);
    }
    _PASS;
}
#else
ALWAYS_PASS
#endif

⌨️ 快捷键说明

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