I am using Dev-C++ with boost 1.34.1,the program is the following:
.......................
typedef std::map<int, int> IIPrimemap;
IIPrimemap primemapvec;
    # define BetaKGre2   1
     # define EqualToOne  2
     #define  ProductOfKPrime  3
..........................
(switch_statement(_1,
   case_statement<BetaKGre2>
   (var(result)=0),
   case_statement<EqualToOne>
   (var(result)=1),
   case_statement<ProductOfKPrime>   
     (var(result)=bind(static_cast<long double (*)(long double,int)>(std::pow),
                               constant(-1.0),bind(&IIPrimemap::size,var(primemapvec)))),
   default_statement
            ( var(result)=234)
   ))(switchvalue);
 
the complier told me no errors.But the linker told me that:
nstantiated from `Arg::sig<boost::tuples::tuple<A&, B&, C&, Env&, boost::tuples::null_type, boost::tuples::null_type, boost........
 instantiated from `RET boost::lambda::lambda_functor_base<boost::lambda::s................
nstantiated from `T::sig<boost::tuples::tuple<A&, boost::tuples::null_type, boost::tuples::null_type, bo...........
 instantiated from here..........// indicating the line:
  ))(switchvalue);
And after the second compling and linking , the program passed and ran
I do not know why. And this was caused after I added the line:
 (var(result)=bind(static_cast<long double (*)(long double,int)>(std::pow),
                               constant(-1.0),bind(&IIPrimemap::size,var(primemapvec)))),
otherwise the program do not have such problems. How can I solve it?
Can anyone with kindness help me?
 
 
 
 
 

 



200万种商品,最低价格,疯狂诱惑你