Boost logo

Boost Users :

Subject: Re: [Boost-users] error C2825: 'F': must be a class or namespace when followed by '::'
From: Jeff Flinn (TriumphSprint2000_at_[hidden])
Date: 2011-04-20 13:23:58

simone pilozzi wrote:
> Dear Users,
> I am using a pointer to a function member with the std::transform alorithm.
> The class is a QuantLib class called DayCounter and the method is called
> yearFraction
> and takes in two mandatory dates and two optionals to return the
> corresponding year fraction.
> /yearFraction ( QuantLib::Date t1,QuantLib::Date t2,QuantLib::Date t3 =
> Date(),QuantLib::Date t4=Date())/
> Now I tried to fill a vector called yearfracs in this way
> boost::shared_ptr<QuantLib::DayCounter> dc( new QuantLib::ActualActual);
> QuantLib::Date t = todaysDate()
> std::vector<QuantLib::Time> yearfracs;
> std::transform(subsample.begin(),subsample.end(),
> yearfracs.begin(),boost::bind(&QuantLib::ActualActual::yearFraction,&dc,t,_2))

Assuming you want each subsample item to be pass as t2 :

, QuantLib::Date()
, QuantLib::Date())

You need the _1, as you are generating a unary function object. IIRC,
you need to specify the default args.

Also I assume yearFracs.size() >= subsamble.size()?


Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at