Boost logo

Boost Users :

Subject: [Boost-users] Question about fusion::map
From: Frank Astier (fastier_at_[hidden])
Date: 2011-06-29 18:24:54

Hi -

I'm using fusion::map, and I've noticed that if I have:

struct attr0 {}; typedef fusion::pair<attr0, double> Attr0;
struct attr1 {}; typedef fusion::pair<attr1, double> Attr1;

And then:

typedef fusion::map<Attr0> ProfileType1;
typedef fusion::map<Attr0, Attr1> ProfileType2;

When I create N instances of ProfileType2, the process size at runtime is about twice the size of the same process creating N instances of ProfileType1.

No big surprise, I guess, but if I *never* mention the type Attr1 in my code, is there a way to "remove" it at compile time from ProfileType2? I.e. I would want the compilation to remove the parts of the fusion::map that are guaranteed not to be used at runtime, so that I don't spend memory that I will never use. Is that possible?

Thanks a lot!


Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at