From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,703c4f68db81387d X-Google-Thread: 109fba,703c4f68db81387d X-Google-Thread: 115aec,703c4f68db81387d X-Google-Thread: f43e6,703c4f68db81387d X-Google-Attributes: gid103376,gid109fba,gid115aec,gidf43e6,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news3.google.com!news.glorb.com!newsread.com!news-xfer.newsread.com!nntp.abs.net!attws2!att542!ip.att.net!newsfeed3.global.lmco.com!svlnews.lmms.lmco.com!not-for-mail From: "REH" Newsgroups: comp.lang.ada,comp.lang.c++,comp.realtime,comp.software-eng Subject: Re: [OT] Re: Teaching new tricks to an old dog (C++ -->Ada) Date: Mon, 28 Mar 2005 13:51:02 -0500 Organization: Earth Message-ID: References: <4229bad9$0$1019$afc38c87@news.optusnet.com.au> <1110032222.447846.167060@g14g2000cwa.googlegroups.com> <871xau9nlh.fsf@insalien.org> <3SjWd.103128$Vf.3969241@news000.worldonline.dk> <87r7iu85lf.fsf@insalien.org> <1110052142.832650@athnrd02> <1lr611thktbau$.1dj95z21h7l5v.dlg@40tude.net> <1112022773.497341@athnrd02> <1112026376.920221@athnrd02> <1112034544.645999@athnrd02> NNTP-Posting-Host: 158.187.64.144 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1437 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 Xref: g2news1.google.com comp.lang.ada:10088 comp.lang.c++:47649 comp.realtime:1790 comp.software-eng:5426 Date: 2005-03-28T13:51:02-05:00 List-Id: "Ioannis Vranos" wrote in message news:1112034544.645999@athnrd02... > REH wrote: > > > Well, suppose your class contains a variable of type double, which on some > > systems is 8 bytes and requires 8 byte alignment. The array you are > > defining to hold the class is a character array, which only requires 1 byte > > alignment. If it is created with a 1 byte alignment, when you create the > > class in it using placement new, now the double is misaligned. > > > But we can treat a double variable as a sequence of unsigned chars/plain chars plus copy > it byte by byte (char/unsigned char) to a new unsigned char/char sequence and have an > exact working copy of the original. So since we can do this for stand alone > doubles/sequences of doubles, then why can't we do this in the double contained in a class > case? > I never said you couldn't. I was just pointing out that what you wrote was not portable, and would not work for any arbitrary class. Besides, why would you incur the extra time and complexity of manually moving the data back and forth, byte-by-byte instead of just insuring the correct alignment and letting the compiler take care of it?