
Paul, That isn't quite what I have in mind. (I asked on this list since it seemed most likely that Boost would have solved this problem if anyone has.) In the case of Vector, I would like to have Vector() create uninitialized memory because then Vector x[1000] takes essentially no time. But efficiency aside, the question is really how can I generically initialize a point in a linear space to the zero of that linear space. It would be nice if there were an agreed-upon PointInALinearSpace concept with a standard way of creating the zero element. One way would be to make a special zero type so then I could have these two consctructors: Vector::Vector() {} // Uninitialized members. Vector::Vector(const Zero<Vector>&) : x(0), y(0), z(0) {} —Ben On 1/22/07, Paul Giaccone <paulg@cinesite.co.uk> wrote:
Is there a generic way to to initialize to zero an object representing a point in a linear space? I know the base types can be constructed like int foo(0); or double bar(0); but but if I have a three-vector class, I don't want to give it Vector::Vector(double); because Vector(2) makes no sense. (Should Vector(2) make the Vector (2, 0, 0) or the Vector (2, 2, 2)?) I also would rather have Vector() create
Ben FrantzDale wrote: three
This is really a C++ question rather than a Boost one, if I have understood it correctly.
I usually use an unparameterised constructor for this, and, indeed, there is one in the code I am working on right now:
Vector::Vector(void) : x(0.0), y(0.0), z(0,0) { //any other stuff here }
Does this do what you want?
Paul
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost