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!

Frank
fastier@yahoo.com