msvc баг
От: Аноним  
Дата: 31.08.07 06:29
Оценка:
Вот такой баг компилятора.. вчера наткнулся

struct base
{
};

//////////////////////////////////////////////////////////////////////////
struct derived
    : private base
{
};


struct KTest
{
    KTest(base*)
    {
    }

    operator void *()
    {
        return 0;
    }
    void operator+(const KTest &)
    {
    }
};

void f2(const KTest &)
{
}
void f3(KTest)
{
}

int main()
{
    derived *p(0);

//    KTest ok(p);

    KTest k=KTest(p);//*
    void *vp=KTest(p);//*
    k+KTest(p);//*
    f2(KTest(p));
    f3(KTest(p));

    return 0;
}


msvc 7.1 ест аж бегом. Приводит derived к base и дергает конструктор KTest::KTest(base*)

а gcc правильно ругается
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.