iso02.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 36 行
C
36 行
#include "fail.h"
template <class T>
struct equiv {
friend int operator ==( const T &l, const T &r ) {
return l.eq( r );
}
};
int count;
struct X : equiv<X> {
int eq( X const &m ) const {
return sig == m.sig;
}
int sig;
X() : sig(++count) {
}
void same( X const &x ) {
sig = x.sig;
}
};
int main() {
X a1;
X a2;
X a3;
if( a1 == a2 ) fail(__LINE__);
if( a1 == a3 ) fail(__LINE__);
if( a2 == a3 ) fail(__LINE__);
a2.same( a1 );
if( ! ( a1 == a2 ) ) fail(__LINE__);
_PASS;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?