[sisyphus] C/C++ compilers

Serge Skorokhodov =?iso-8859-1?q?suralis-s_=CE=C1_mtu-net=2Eru?=
Чт Дек 13 11:21:11 MSK 2001


Здравствуйте!

Alexey Voinov пишет, что:

AV> Maxim Penzin wrote
>> > Надо основываться на стандарте языка, а не на компиляторе. Хорошо 
>> > написанный код соберется всюду.
>> 
>> тут есть небольшой нюанс, так как кое-какой вполне норамальный
>> Ц++ код не совсем правильно интерпретируется gcc-2.95
>> 
>> даже если не лезть в темплейтные навороты, 
>> хотя plain C уже как-то не совсем ко двору,
>> первое, что приходит в голову
>> 
>> struct A { void f(){}; }; struct B: public A { int i; };
>> 
>> sizeof(B) ?
>> 
>> (большинство компилеров под ia32 считают, что должно получаться 4, а не 8 )

AV> И совершенно справедливо считают. Ищем в стандарте фразу: empty base
AV> optimization.
    ^^^^^^^^^^^^

Мне кажется, вопрос, по меньшей мере, спорный. По крайней мере в
стандарте, вроде, ничего однозначно не говориться (на то он и
стандарт:)

Вот то, что в 2.95 разрешен доступ к private-но объявленным
внутри класса структурам -- это уже нарушение стандарта, причем
серьезное.

-- 
Serge Skorokhodov aka suralis
13.12.2001 suralis-s на mtu-net.ru





Подробная информация о списке рассылки Sisyphus