Boost logo

Boost :

Subject: Re: [boost] Formal review request: static size matrix/vector linear algebra library (Boost) LA
From: Simonson, Lucanus J (lucanus.j.simonson_at_[hidden])
Date: 2010-02-05 13:04:53

Jeffrey Bosboom wrote:
> DE wrote:
>> looking at traits class specialization i have a question:
>> is there a reason defining integral constants as following?
>> static cont int dim = 42;
>> i mean if you do not take address of that member a better solution
>> (imho) is to define an anonymous enum like
>> enum {
>> dim = 42
>> };
>> or in one line
>> enum { dim = 42 };
>> rather than defining a global object
> An optimizing compiler will perform constant propagation, substituting
> the value of the variable (in this case, 42) everywhere it is used.
> If
> the address of the variable is never taken, the compiler need not
> actually have a memory location to hold it.

I've had bad experience with optimizing compilers failing to perform constant propagation for static const int the way I expected and prefer enum to avoid such problems. I avoid all static declarations when possible.


Boost list run by bdawes at, gregod at, cpdaniel at, john at