
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