Hi all,
I'm trying to use fusion vectors with more than 10 elements, but I'm
running into some trouble.
I'm using fusion as an implementation detail of some header-based
tools, which get included (often indirectly) by some translation
units. The tools require large fusion vectors, but I don't want
client code (i.e. the .cpp files) to have to care about this. I was
under the impression that I could just add:
#define FUSION_MAX_VECTOR_SIZE 20
#include
in my tool's header file, and be off to the races. It seems that this
works only if no other fusion header has been included previously in
the same translation unit:
#include
...
#define FUSION_MAX_VECTOR_SIZE 20
#include
...
// Error - too many template arguments!
boost::fusion::make_vector(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
I really don't want to have to track down every translation unit which
is (usually indirectly) including my tool's header. I am under the
impression that boost::function is fine with client code redefining
its limit macro and re-including its header, but perhaps fusion does
not have the same feature?
I also realize that for vector itself I can just include vectorN.hpp
and use vectorN<...>, but if I want to use the generation functions
(make_vector, vector_tie) it seems I'm stuck. Is there a workaround,
or just something obvious that I'm doing wrong?
Thanks,
-Gabe