[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