どういうわけか、ポインターをboost::signals2::signalに接続できるかどうか疑問に思っていました。私の問題は次のとおりです。「信号」に接続されているオブジェクトを変更したい。例えば :
class Something
{
public:
int x;
bool operator()(std::string str)
{
std::cout << str << x << std::endl;
return true;
}
};
int main()
{
boost::signals2::signal<bool (std::string)> sig;
Something something;
something.x = 3;
Something* somethingElse = new Something;
somethingElse->x = 3;
sig.connect(something);
sig.connect(*somethingElse);
something.x = 2;
somethingElse->x = 2;
sig("x is : ");
}
コードは常に出力します:
×は:3
そして、私はそれを出力したいと思います
×は:2
今、簡単な解決策か、boost::signals2 の目的をよく理解しているかのいずれかが欠けているように感じます。