Boost logo

Boost Users :

Subject: Re: [Boost-users] [Function] Encapsulated inside a class, won't initialize.
From: Jeff Flinn (TriumphSprint2000_at_[hidden])
Date: 2008-10-13 09:20:43


Ravey Alexandre wrote:
>
> Hi there,
>
> I'm using boost::function defined private inside a class and then assign
> a function comming from another boost::function. But it don't work.
>
> A little code may help understand my pretty bad explanation.
> #######
> class C
> {
> public:
> void Bind(boost::function<void()> f);
> private:
> boost::function<void()> func;
> };
>
> void C::Bind(boost::function<void()
> > f)
> {
> func = f; //Compile, but raise an access violation.
> }
> #######
>
> The problem seems obvious to me, func si not initialized correctly and
> swap() fail.
>
> But I can't figure out how to make this work.

Can you provide a minimally complete compilable example that exhibits
the problem. I think the problem lies in the code that you don't show.
For example your instance of Class C may not be properly constructed, or
the function f has bound arguments that do not copy/assign properly.

Jeff


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net