
Joel de Guzman wrote:
Michael Marcin wrote:
causes it to compile so I'm thinking it is a compiler bug that needs to be worked around.
It is indeed a compiler bug, but I think there's more to it than that. With your fix, VC7.1 complains: boost\array.hpp(159) : error C3861: 'size': identifier not found, even with argument-dependent lookup while VC8 is ok. This is not a problem on any other compiler though. Also, it's funny that the fusion test for array is also ok. I noted that the thing that's causing problems is the header include:
#include <boost/array.hpp> #include <boost/fusion/iterator.hpp> #include <boost/fusion/sequence.hpp>
Changing this to
#include <boost/array.hpp> #include <boost/fusion/sequence/adapted/array.hpp> #include <boost/fusion/sequence/intrinsic.hpp>
makes VC++ happy.
I'll investigate further...
Alright. It is a compiler bug indeed. I traced it down to the operators! (of all things!). I just submitted a workaround for VC++. Regards, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net