编译升压信号2时出现问题
为什么这个简单的例子无法编译,我该如何解决这个问题?
#include <iostream>
#include <boost/signals2/signal.hpp>
struct HelloWorld {
HelloWorld() {
i = 0;
}
void operator()() {
std::cout << "I is: " << i++ << std::endl;
}
void setup () {
sig.connect(this);
}
void run () {
sig();
}
boost::signals2::signal<void ()> sig;
private:
int i;
};
int main()
{
HelloWorld hello;
hello.setup();
hello.run();
hello.run();
hello.run();
return 0;
};
Why does this simple example not compile, and how can I get around the problem?
#include <iostream>
#include <boost/signals2/signal.hpp>
struct HelloWorld {
HelloWorld() {
i = 0;
}
void operator()() {
std::cout << "I is: " << i++ << std::endl;
}
void setup () {
sig.connect(this);
}
void run () {
sig();
}
boost::signals2::signal<void ()> sig;
private:
int i;
};
int main()
{
HelloWorld hello;
hello.setup();
hello.run();
hello.run();
hello.run();
return 0;
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您正在尝试连接到指针,但这是不可能的。相反,您需要连接到对对象的引用:
You are trying to connect to a pointer, which isn't possible. Instead you need to connect to a reference to your object: