Boost logo

Boost :

Subject: [boost] [test] How to have a simple unit test compile on Borland/CodeGear?
From: Niels Dekker - address until 2010-10-10 (niels_address_until_2010-10-10_at_[hidden])
Date: 2010-04-05 11:31:59


Is the following still a proper way to write a unit test for a Boost
library component?

   #define BOOST_INCLUDE_MAIN
   #include <boost/test/test_tools.hpp>

   int test_main(int, char*[])
   {
     // TODO Some testing here...
     return 0;
   }

I can't get the above code compiling on the latest Borland/CodeGear
compiler (Embarcadero C++ 6.21), installed by
c++builder_2010_3615_win_esd.zip, downloaded from
www.embarcadero.com/downloads Even though I already patched
boost/smart_ptr (ticket #4067) and boost/exception (ticket #4068).

I just do:

   bjam toolset=borland

Which tries to compile
<boost/test/utils/runtime/cla/dual_name_parameter.hpp> apparently, and
it yields an error at line 43:

     template<typename Modifier>
     void accept_modifier( Modifier const& m )
     {
         if( m.has( prefix ) ) {
             set_prefix( m[prefix] ); // line 43, "Error E2094"!
             ...

The complete error message is down here. Interestingly, the message says
that operator+ is missing (while I don't see a need for operator+ in
this context). Any help is appreciated!

Kind regards,

     Niels

------------------------------------------------------------
CodeGear/Embarcadero C++ 6.21 output:

Error E2094
..\..\..\..\boost/test/utils/runtime/cla/dual_name_parameter.hpp 43:
'operator+' not implemented in type
'nfp::nfp_detail::named_parameter_combine<nfp::named_parameter<const
unit_test::const_string,description_t,const unit_test::const_string
&>,nfp::nfp_detail::named_parameter_combine<nfp::named_parameter<bool,optional_t,bool>,nfp::nfp_detail::named_parameter_combine<nfp::named_parameter<bool,guess_name_t,bool>,nfp::nfp_detail::named_parameter_combine<nfp::named_parameter<const
unit_test::const_string,separator_t,const unit_test::const_string
&>,nfp::named_parameter<const unit_test::const_string,prefix_t,const
unit_test::const_string &> > > > >' for arguments of type
'nfp::typed_keyword<unit_test::const_string,prefix_t,0>' in function
void
dual_name_policy::accept_modifier<nfp::nfp_detail::named_parameter_combine<nfp::named_parameter<const
unit_test::const_string,description_t,const unit_test::const_string
&>,nfp::nfp_detail::named_parameter_combine<nfp::named_parameter<bool,optional_t,bool>,nfp::nfp_detail::named_parameter_combine<nfp::named_parameter<bool,guess_name_t,bool>,nfp::nfp_detail::named_parameter_combine<nfp::named_parameter<const
unit_test::const_string,separator_t,const unit_test::const_string
&>,nfp::named_parameter<const unit_test::const_string,prefix_t,const
unit_test::const_string &> > > > > >(const
nfp::nfp_detail::named_parameter_combine<nfp::named_parameter<const
unit_test::const_string,description_t,const unit_test::const_string
&>,nfp::nfp_detail::named_parameter_combine<nfp::named_parameter<bool,optional_t,bool>,nfp::nfp_detail::named_parameter_combine<nfp::named_parameter<bool,guess_name_t,bool>,nfp::nfp_detail::named_parameter_combine<nfp::named_parameter<const
unit_test::const_string,separator_t,const unit_test::const_string
&>,nfp::named_parameter<const unit_test::const_string,prefix_t,const
unit_test::const_string &> > > > > &)


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk