[sisyphus] C/C++ compilers (was: По поводу сборки пакетов)

Alexey Voinov =?iso-8859-1?q?voins_=CE=C1_voins=2Eprogram=2Eru?=
Вт Дек 18 17:23:59 MSK 2001


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

п. 9.3:

A class with an empty sequence of members and base class objects is an
empty class.  Complete objects and member subobjects of an empty class
type  shall have nonzero size.1) 

и далее:

_________________________
1) That is, a base class subobject of an empty class
type may have zero size.

(На самом деле это не стандарт, а draft от Decembeer 1997, последний,
насколько мне известно. Номер пункта в самом стандарте скорее всего не
совпадает, но то, что там эти слова есть --- точно.)

-- 
Best Regards!           | Когда вам платят за работу, надо по крайней мере
Alexey Voinov           | делать вид, что вы работаете...
                        |                         Б.Виан "Осень в Пекине"
voins на voins.program.ru
voins на online.ru
vns на altlinux.ru

----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 232 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20011218/6ea33d4d/attachment-0012.bin>


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