Нормальный ли это код?
От: Chez Россия  
Дата: 25.03.05 15:20
Оценка:
Это баг или фича, что он компилируется? (MSVC7)

class A
{
public:
    class X;
};

class B : public A
{
public:
    class A::X // all OK
    {
    };
}

A::X x; // all OK

Chez, ICQ#161095094

Posted via:RSDN@Home;version:1.1.3;muzikstamp:Пикник и Секта Мо — 03 — U (напряжение не кончается)

Re: Нормальный ли это код?
От: Lorenzo_LAMAS  
Дата: 25.03.05 15:21
Оценка:
баг
Of course, the code must be complete enough to compile and link.
Re[2]: Нормальный ли это код?
От: Leshi Россия  
Дата: 25.03.05 15:31
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

L_L>баг

Если этот баг еще и правильно работает, то классная получается фича!
... << RSDN@Home 1.1.3 stable >>
Re[3]: Нормальный ли это код?
От: Chez Россия  
Дата: 25.03.05 15:37
Оценка: :))
L>Если этот баг еще и правильно работает, то классная получается фича!
Ещё какая классная фича, кстати. Фича работает в VC6 и VC7.
Я с помощью неё всё-таки type_of сделал!!!

Chez, ICQ#161095094

Posted via:RSDN@Home;version:1.1.3;muzikstamp:Пикник и Секта Мо — 06 — Будь навсегда

Re: Нормальный ли это код?
От: Pavel_Chikulaev Россия  
Дата: 25.03.05 16:39
Оценка:
Здравствуйте, Chez, Вы писали:

C>Это баг или фича, что он компилируется? (MSVC7)

Баг. Это абсолютно не корректно, так как не учитывается область видимости классов (структур). В C это бы корректно, но в С++ уже нет. А то, что VC6 и VC7 компилируют это говорит только о их качестве.
А в 7.1 или 8.0 пробовал?
Re[2]: Нормальный ли это код?
От: Аноним  
Дата: 25.03.05 16:50
Оценка:
Здравствуйте, Pavel_Chikulaev, Вы писали:

P_C>Здравствуйте, Chez, Вы писали:


C>>Это баг или фича, что он компилируется? (MSVC7)

P_C>Баг. Это абсолютно не корректно, так как не учитывается область видимости классов (структур). В C это бы корректно, но в С++ уже нет. А то, что VC6 и VC7 компилируют это говорит только о их качестве.
P_C>А в 7.1 или 8.0 пробовал?

Что-то мне аж интересно стало : это где тут не учитывается область видимости классов?
По моему все отлично : нормальное объявление, а после определение.
Какая разница где определять, лишь бы права на это были, а то разные классы получаться.

И компилятор в данном случае абсолютно прав.
Re[3]: Нормальный ли это код?
От: Pavel_Chikulaev Россия  
Дата: 25.03.05 17:00
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Pavel_Chikulaev, Вы писали:

А>Что-то мне аж интересно стало : это где тут не учитывается область видимости классов?
А>По моему все отлично : нормальное объявление, а после определение.
А>Какая разница где определять, лишь бы права на это были, а то разные классы получаться.

область видимости

class A
{
public:
    class X;
};

class B : public A
{
public:
    class A::X //нельзя создавать объявлять класс как A::X внутри B, так как полное имя класса будет B::A::X что совсем не то что A::X
       
    {
    };
}

A::X x; // Не должно компилироваться - тип A::X не опеределен.



А>И компилятор в данном случае абсолютно прав.

Нифига, читай стандарт ed2k://|file|ansi_iso_iec_14882_1998%20(C++%20standard).pdf|2860601|AE2659B30E58BC7C8CAF12E26263BDE1|/
Re[4]: Нормальный ли это код?
От: Seriously Serious  
Дата: 25.03.05 20:56
Оценка:
Здравствуйте, Chez, Вы писали:

L>>Если этот баг еще и правильно работает, то классная получается фича!

C>Ещё какая классная фича, кстати. Фича работает в VC6 и VC7.
C>Я с помощью неё всё-таки type_of сделал!!!

КАК???
Re[5]: Нормальный ли это код?
От: Fakie  
Дата: 25.03.05 21:16
Оценка:
Здравствуйте, Seriously Serious

Я не думаю что у него хорошое решение эмуляции typeof.
Лови решение от Boost:
http://boost-sandbox.sourceforge.net/vault/index.php?direction=&amp;order=&amp; там файл typeof.zip
Re[6]: Нормальный ли это код?
От: Seriously Serious  
Дата: 25.03.05 21:17
Оценка:
Здравствуйте, Fakie, Вы писали:

F>Здравствуйте, Seriously Serious


F>Я не думаю что у него хорошое решение эмуляции typeof.

F>Лови решение от Boost:
F>http://boost-sandbox.sourceforge.net/vault/index.php?direction=&amp;order=&amp; там файл typeof.zip

мне ради интереса
Re[6]: Нормальный ли это код?
От: Chez Россия  
Дата: 28.03.05 08:32
Оценка:
Здравствуйте, Fakie, Вы писали:

F>Здравствуйте, Seriously Serious


F>Я не думаю что у него хорошое решение эмуляции typeof.

F>Лови решение от Boost:
F>http://boost-sandbox.sourceforge.net/vault/index.php?direction=&amp;order=&amp; там файл typeof.zip

Кто сказал что у меня эмуляция?
Нормальный type_of у меня.
Он даже не требует регистрации типов
Ща покажу, как. (запосчу топик).

Chez, ICQ#161095094

Posted via:RSDN@Home;version:1.1.3;muzikstamp:silent

Re[5]: Нормальный ли это код?
От: Chez Россия  
Дата: 28.03.05 08:52
Оценка:
SS>КАК???
В форум "Исходники" кинул.

Chez, ICQ#161095094

Posted via:RSDN@Home;version:1.1.3;muzikstamp:silent

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