При компиляции под gcc можно реализовать такую конструкцию?
class CFoo
{
public:
CFoo(){};
~CFoo(){};
union
{
struct {int x; int y;};
int a[2];
};
};
gcc пишет anonymous class type not used to declare any objects.
под VC.net компиляется.
прошу прощения если вопрос не в тему это мой первый опыт программирования под unix.
Yuri.
---
Microsoft, Windows(tm), MustDie! — зарегистрированые торговые знаки корпорации Microsoft
Здравствуйте pro_nn, Вы писали:
PN>При компиляции под gcc можно реализовать такую конструкцию?
У меня твой код компилится, gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-110)
Какая версия gcc у тебя?
Вроде как unnamed unions — документированное расширение gcc. Так что должно работать.
Никогда не делайте ничего правильно с первого раза, иначе никто потом не оценит, как это было сложно.
Здравствуйте White Eagle, Вы писали:
WE>Какая версия gcc у тебя? WE>Вроде как unnamed unions — документированное расширение gcc. Так что должно работать.
gcc version 2.95.3 20010315 (release)
отдельно unnamed union и unnamed struct компилируются, а вложенные нет.
Здравствуйте White Eagle, Вы писали: WE>Странно что вообще компилятся, вроде не должны. WE>Апгрейдься — если у тебя Red-Hat — то на 2.96 , иначе на 3.* WE>(наверно 3.2 лучше всего) — всё будет.
к сожалению надо именно под эту версию.
аналогичного решения с другой конструкцией придумать не смог, прочто убрал a[2], jcnfdbk njkmrj x, y. Функциональность класса конечно уменьшилась, но не фатально.
Спасибо за помощь.