- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在构建以下函数时遇到构建错误:
template <class T> class Event {
public:
typedef boost::signal<void (void*, const T)> signal_t;
typedef boost::signals::connection connection_t;
public:
Event() { }
connection_t connect(signal_t::slot_type subscriber){
return signal.connect(subscriber);
}
}
错误:
error: 'class boost::signal<void ()(void*, T), boost::last_value<typename boost::function_traits<void ()(void*, T)>::result_type>, int, std::less<int>, boost::function<void ()(void*, T)> >::slot_type' is not a type
我相信这与它是模板化的事实有关,但我不确定如何修复它。我试过添加 , 这样
connection_t connect(signal_t::slot_type<T> subscriber)
但这只会产生另一个错误。
最佳答案
用typename
告诉编译器它是一个类型:
connection_t connect(typename signal_t::slot_type subscriber){
return signal.connect(subscriber);
}
问题是 signal_t
依赖于模板参数 T
,所以你需要明确地告诉编译器 signal_t::slot_type
将成为一种类型。
关于c++ - boost::signal slot_type 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15571416/
我在构建以下函数时遇到构建错误: template class Event { public: typedef boost::signal signal_t; typedef
如果您使用不同的函数(待调用)连接到信号,如何检查该函数是否已连接?通常我会比较函数指针的地址,但我如何访问该指针? 例子: boost::signals2::signal sig; sig.conn
当我尝试将多个信号连接到单个 slot_type 时,我正在使用 boost::signals 并泄漏内存。我在各种论坛上看到过同样的泄漏报告,但找不到任何提到正确的方法或任何解决方法的信息。 我正在
接近 this tutorial 的结尾对于 boost::signals 库,在“传递槽”标题下,一个名为“slot_type”的类型用于传递要连接到信号的所需槽函数。但是,在 next examp
考虑这个例子: #include #include typedef boost::signals2::signal DoubleSignalType; typedef boost::signals
我是一名优秀的程序员,十分优秀!