
christopher diggins wrote:
On the subject of GUI object hierarchies, I wanted to bring to everyone's attention the Boost Interfaces Library (BIL) currently being developed by Jonathan Turkanis which could be an excellent tool for building a flexible and efficient GUI library. There is a brief introduction to the library on the Boost wiki ( http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Boost.Interfa... )
The code for declaring the interfaces would look like this:
BOOST_IDL_BEGIN(ILabel) BOOST_IDL_CONST_FN0(GetText, string) BOOST_IDL_CONST_FN0(GetAlignment, align_T) BOOST_IDL_END(ILabel)
What I am trying to get working is: 15: BOOST_IDL_BEGIN(IUIObject) 16: BOOST_IDL_FN4(move, void, g::metric, g::metric, g::metric, g::metric) 17: BOOST_IDL_FN2(move, void, g::metric, g::metric) 18: inline void move( g::point p ) 19: { 20: move( p.x, p.y ); 21: } 22: BOOST_IDL_END(IUIObject) with the latest CVS of Boost, but with msvc-8.0, I get: phase1.cpp(16): error C2061: syntax error : identifier 'BOOST_PP_TUPLE_ELEM_2_0' phase1.cpp(16): see reference to class template instantiation 'IUIObject_interface_impl_::generator_impl<Derived_,Flags_,Base_>::tracker_<boost::mpl::int_<N>,Dummy_>::type::interface_functions<XXX_>' being compiled with [ N=1 ] Any suggestions? Is there a version of the BIL that works with the CVS version (or 1.33) of Boost? And is the above valid, since this is the kind of thing I want? Regards, Reece