Boost logo

Boost Users :

Subject: Re: [Boost-users] shared_ptr problem
From: Jeff Flinn (Jeffrey.Flinn_at_[hidden])
Date: 2013-07-25 08:38:58


On 7/24/2013 6:02 PM, Tim Burgess wrote:
> Hi,
>
> I’m developing an application for Windows and Mac. My source compiles
> and links fine, but I’m having a problem when building the code on the
> Mac (OSX 10.8 Mountain Lion, Xcode 4.6 using GCC). The contents of the
> Issue Navigator are shown below:
>
> SurfaceReader Group
>
> /Users/tim/developer/libraries/boost_1_54_0/boost/smart_ptr/make_shared_object.hpp
>
> /Users/tim/developer/libraries/boost_1_54_0/boost/smart_ptr/make_shared_object.hpp:711:
> error: no matching function for call to 'AppConfig::AppConfig(const
> boost::shared_ptr<AppConfig>&)'
>
> /Users/tim/developer/libraries/boost_1_54_0/boost/smart_ptr/make_shared_object.hpp:711:
> error: no matching function for call to
> 'SurfaceProtocol::SurfaceProtocol(const
> boost::shared_ptr<SurfaceProtocol>&)'
>
> /Users/tim/developer/libraries/boost_1_54_0/boost/smart_ptr/make_shared_object.hpp:711:
> error: no matching function for call to 'RBSpeech::RBSpeech(const
> boost::shared_ptr<RBSpeech>&)'
>
> I’m using shared_ptr in about half the modules in my application and,
> given that the above output doesn’t refer to compilation errors in
> particular modules of mine, I’m confused as to how to track this issue
> down. Obviously, the issue has something to do with the constructors for
> my AppConfig, SurfaceProtocol and RBSpeech classes, but these don’t
> cause any problems under Windows/VS2010 and only the RBSpeech class has
> any Mac-specific code blocks.

There's probably more error output that's been filtered by the 'Issue
Navigator' that shows what code of yours triggered the errors. I don't
regularly use XCode 4 yet, so I'm not sure how to get the full compile
error text.

Are there ctors taking non-const shared_ptr's for the above classes? If
so I'd look for the make_shared<AppConfig> calls in the cpp file being
compiled that trigger the above errors. Are the shared_ptr args being
supplied as the result of in-place function calls return rvalues? VS
allow(s|ed) binding of rvalues to non-const reference args. You may need
to create named temporary shared_ptr's and pass those as args.

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