From: Jason Merrill <jason@redhat.com>
To: Gabriel Dos Reis <gdr@integrable-solutions.net>
Cc: tromey@redhat.com, Andrew Haley <aph@redhat.com>,
Jamie Lokier <jamie@shareable.org>,
gcc@gcc.gnu.org
Subject: Re: On alignment
Date: Mon, 05 May 2003 14:56:00 -0000 [thread overview]
Message-ID: <wvld6ixe94o.fsf@prospero.boston.redhat.com> (raw)
In-Reply-To: <m3llxpo5sl.fsf@uniton.integrable-solutions.net> (Gabriel Dos Reis's message of "02 May 2003 15:07:54 +0200")
On 02 May 2003 15:07:54 +0200, Gabriel Dos Reis <gdr@integrable-solutions.net> wrote:
> Tom Tromey <tromey@redhat.com> writes:
>
> [...]
>
> | What will eventually go wrong with what we have now?
> |
> | template<typename T>
> | struct aligner
> | {
> | T field;
> | };
> |
> | #define ALIGNOF(TYPE) (__alignof__ (((aligner<TYPE> *) 0)->field))
>
> This, as I understand it from my previous attempt, won't give you the
> right answer (for double, it would give 8 instead of 4).
It will give you the right answer on the trunk (and I just checked in a
patch so it will give you the right answer in 3.3 as well).
> What is wrong with the following code I posted earlier?
>
> template<typename T>
> struct alignment {
>
> struct helper {
> T datum;
> helper();
> };
>
> static helper instance;
>
> enum { value = __alignof__ (instance) };
> };
The alignment of a non-field instance of a class can be greater that the
alignment of the class itself. Just saying __alignof (helper) should work,
though I'm not sure it's guaranteed to work. Also, why do you give helper
a constructor?
Tom's example above is directly asking the question they want an answer to;
as long as it works, that's the best way to do it, and it does work now.
Jason
next prev parent reply other threads:[~2003-05-05 14:56 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-03-25 16:48 Kevin B. Hendricks
2003-03-25 18:39 ` Jason Merrill
2003-03-25 18:41 ` Jason Merrill
2003-03-25 19:14 ` Kevin B. Hendricks
2003-03-25 19:57 ` Jason Merrill
2003-04-22 11:36 ` Andrew Haley
2003-04-22 12:05 ` Nathan Sidwell
2003-04-22 12:37 ` Andrew Haley
2003-04-22 13:15 ` Andreas Schwab
2003-04-23 13:32 ` Jamie Lokier
2003-04-23 16:07 ` Jason Merrill
2003-04-23 17:41 ` Tom Tromey
2003-04-23 18:06 ` Jason Merrill
2003-04-23 18:42 ` Tom Tromey
2003-04-23 19:13 ` Jason Merrill
2003-04-23 19:43 ` Gabriel Dos Reis
2003-04-23 20:23 ` Tom Tromey
2003-04-23 21:45 ` Gabriel Dos Reis
2003-04-24 7:00 ` Jason Merrill
2003-04-24 11:45 ` Andrew Haley
2003-05-01 23:50 ` Tom Tromey
2003-05-02 13:08 ` Gabriel Dos Reis
2003-05-05 14:56 ` Jason Merrill [this message]
2003-05-08 9:58 ` Gabriel Dos Reis
2003-04-23 19:33 ` Gabriel Dos Reis
2003-04-24 1:32 ` Jamie Lokier
2003-03-25 21:27 ` Tom Tromey
2003-03-26 12:58 ` Andrew Haley
2003-03-26 22:26 ` Mark Mitchell
2003-03-25 18:57 ` Tom Tromey
-- strict thread matches above, loose matches on Subject: below --
2003-04-23 19:47 Robert Dewar
2003-04-23 19:34 Joern Rennecke
2003-04-22 17:19 Robert Dewar
2003-04-22 14:43 Robert Dewar
2003-04-22 15:13 ` Andrew Haley
2003-04-22 16:22 ` Jason Merrill
2003-04-22 16:26 ` Nicola Pero
2003-04-22 17:19 ` Andrew Haley
2003-04-22 18:46 ` Jason Merrill
2003-04-22 17:17 ` Andrew Haley
2003-03-21 0:25 Jason Merrill
2003-03-21 11:49 ` Andrew Haley
2003-03-21 15:18 ` Andrew Haley
2003-03-21 19:31 ` Tom Tromey
2003-03-21 15:39 ` Michael Matz
2003-03-21 15:41 ` Andrew Haley
2003-03-22 0:25 ` Jason Merrill
2003-03-22 9:35 ` Tom Tromey
2003-03-22 10:31 ` Andrew Haley
2003-03-25 2:52 ` Jason Merrill
2003-03-25 10:16 ` Andrew Haley
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=wvld6ixe94o.fsf@prospero.boston.redhat.com \
--to=jason@redhat.com \
--cc=aph@redhat.com \
--cc=gcc@gcc.gnu.org \
--cc=gdr@integrable-solutions.net \
--cc=jamie@shareable.org \
--cc=tromey@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).