|
Boost : |
Subject: [boost] [signals2] -no instance of overloaded function
From: Tal Agmon (tal.boost_at_[hidden])
Date: 2011-01-28 06:27:02
Hi All,
I get error no instance of overloading ... when using <memory> shared_ptr
can anyone explain why?
tested on:
windows7 vc100
// not working
//#include <memory> // fail to compile
//using std::tr1::shared_ptr;
// works
#include <boost/shared_ptr.hpp> // works find
using boost::shared_ptr;
[code]
#include <iostream>
#include <boost/signals2/signal.hpp>
class Reporter {
public:
explicit Reporter(const std::string& s) : s_(s) {}
void says() const { std::cout<< "news : " << s_ << std::endl; }
private:
std::string s_;
};
class NewsStation{
public:
void displayNews(const Reporter& r) const { r.says(); }
};
int main()
{
using namespace boost::signals2;
typedef signal<void (const Reporter&) > signal_type;
shared_ptr<signal_type> signalPtr(new signal_type);
typedef shared_ptr<NewsStation> news_station_ptr;
Reporter tal("when using std:tr1::shared_ptr --> no instance of
overloaded function, matches the argument list) ");
news_station_ptr newsStationPtr(new NewsStation);
signal_type sigNews;
sigNews.connect( signal_type::slot_type(
&NewsStation::displayNews, newsStationPtr.get(),
_1).track(newsStationPtr));
sigNews(tal);
}
[code]
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk