diag0170.c

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

C
69
字号
// page 288 of ARM

struct X {
};

struct T {
    T(int);
    T(X);
};

struct S {
    operator int();
    operator X();
};

S a;

T x = T(a);

// page 275 of ARM

class Boolean {
    int b;
public:
    Boolean operator+(Boolean);
    Boolean(int i) { b = i!= 0; };
    operator int() { return b; }
};

Boolean xbool(1);

void foo( Boolean xbool )
{
    xbool + 1;
}


// page 275 of ARM

class B;

class A {
public:
    A(B&);
};

class B {
public:
    operator A();
};

// #pragma on ( dump_rank )

B b;

// text says that the following is ambiguous, but
//
// Effect operation as:
//
//  (1) make an A from b: A::A( b )
//  (2) copy result to a1
//
// A::A(B&) is exact
// A::A(A&) is ambiguous
//
A a1 = b;
A a2 = A(b);
A a3(b);

⌨️ 快捷键说明

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