From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 18 Dec 2001 17:23:59 +0300 From: Alexey Voinov To: sisyphus@altlinux.ru Subject: Re: [sisyphus] C/C++ =?koi8-r?Q?compilers_?= =?koi8-r?B?KHdhczogIPDPINDP18/E1SDTws/Sy8kg0MHLxdTP1yk=?= Message-ID: <20011218142359.GA1557@voins.local> Mail-Followup-To: Alexey Voinov , sisyphus@altlinux.ru References: <20011213104410.2f53d941.maxp@ozero.net> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="envbJBWh7q8WU6mo" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.3.24i Sender: sisyphus-admin@altlinux.ru Errors-To: sisyphus-admin@altlinux.ru X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.0 Precedence: bulk Reply-To: sisyphus@altlinux.ru List-Help: List-Post: List-Subscribe: , List-Id: List-Unsubscribe: , List-Archive: Archived-At: List-Archive: --envbJBWh7q8WU6mo Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit 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 --envbJBWh7q8WU6mo Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE8H1F/3FGE/YJu+jkRAlWzAJ4gVUTTmp4Vxo/r9KjPKwpVXjsGvwCfaTOb 8PS3feoh7sUsPmBxMTQW6zg= =4jf0 -----END PGP SIGNATURE----- --envbJBWh7q8WU6mo--