[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