
"Andy Little" <andy@servocomm.freeserve.co.uk> wrote
"Arkadiy Vertleyb" wrote in message
"Andy Little" wrote
Small sample enclosed.( Let me know if you want a bigger portion.) .
c:\boost\boost_1_33_0\boost\typeof\encode_decode.hpp(24) : error C2504:
'boost::type_of::`anonymous-namespace'::encode_type_impl<V,Type_Not_Register
ed_With_Typeof_System>' : base class undefined with [ V=[...],
Type_Not_Registered_With_Typeof_System=boost::mpl::vector6<...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This complain about mpl::vector6 not registered.
That is true , but the error message is not correct. In my typeof registration I have registered vector6 with Typeof. This is not the registration that is lacking. I guess that VC7.1 goes off the rails somewhere close by but, fact is that the error message is pointing to the wrong place on this occasion.
I am puzzled... Is it possible for you to send me the source code that causes the problem?
FWIW I dont really see this as a problem for Typeof, which does provide good diagnostics in simpler cases. I am just pointing out that, when the error-checking is not helping as in the above case, then an alternative approach is to use Typeid to find out what types your type is made up of. This is particularly useful with e.g. mpl both because types are likely to be complicated and because its not always possible to know the exact mpl type your type is made of.
I am not arguing against using typeid, and I'll see how to add this to documentation... I just want to figure out why the diagnostic is not correct. It puzzles me, because vc71 is my primary compiler, and I never noticed this problem before. Regards, Arkadiy