From: Geoffrey Irving (irving_at_[hidden])
Date: 2006-09-25 00:59:10
On Sat, Sep 23, 2006 at 04:53:00PM +0100, Dave Harris wrote:
> In-Reply-To: <20060922201042.GO21158_at_[hidden]>
> irving_at_[hidden] (Geoffrey Irving) wrote (abridged):
> > Especially if you can make it a static assert (which I'm not sure of).
> Making it a static assert is not straightforward because addresses are not
> compile-time constants. The straightforward way to compute offsets is by
> subtracting addresses.
I wasn't asking whether it was straightforward, just possible.
This should work:
template<class T> class vectorN
T x1, x2, ..., xN;
T& operator(unsigned int i)
struct checker:public vectorN
Since elements of arrays are required to be in contiguous memory locations,
the variables x1 through xN must also be contigous if the static assert
passes. I don't know if this is a necessary condition, but it's certainly
Here I'm assuming that the compiler aligns to at most 256 bytes.