Re[2]: VC и GCC: разное поведение, а как д.б. по стандарту?
От: Masterkent  
Дата: 27.03.12 12:10
Оценка: 3 (1)
uzhas:

SM>>Я не хочу вдаваться в такие вещи как "two-phase name lookup" или ADL, потому что все таки это особенности реализации компиляторов, и в стандарте о них нет ни слова.

U>ADL вполне себе стандартизованная вещь

Как и two-phase name lookup.

SM>>Я хочу понять, какое поведение как правильное определяется стандартом ?

U>не могу сказать точно, но интуитивном уровне подоpреваю баг у гцц.

GCC поступает правильно (см. 14.6.2/3)

SM>>И как с этим вообще жить ? Почему так ?

U>более явно можно прописывать, что за функцию мы вызываем
U>
U>this->foo(); // вызываем свою

Ещё можно использовать using

struct B
{
    void f() {}
};

template <class T>
    struct D : T
{
    using T::f;

    void g()
    {
        f();
    }
};

int main()
{
    D<B>().g();
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.