【发布时间】:2013-05-15 07:07:27
【问题描述】:
我在我的项目中使用boost::signals2 已经有一段时间了。令我感到羞耻的是,我仍然不明白它们是如何在后台实现的。我的问题已经从信号的定义开始了。如何定义如
boost::signals2::signal< void (bool, double) >
处理?我可以从实现细节中看到,签名变成了一个模板参数,恰如其分地命名为Signature。但是,我不明白语法。 C++ 标准是否允许这种语法?以这种形式提供的信号如何“存储”函数签名?
我已经尝试查看源代码,但无法找到此语法的解释。任何帮助将不胜感激。
【问题讨论】:
-
我猜
Signature被用作函数签名。 google-mock 使用相同的东西来描述和绑定模拟接口的函数签名,显然它是有效的语法。
标签: c++ templates boost implementation boost-signals2