2

我使用boost::signal不同的函数签名和不同的组合器。在一个看起来像我想要返回某个信号声明的类中。

template<typename signal_type> class MyClass
{

    signal_type mSignal;

    signal_type::result_type getResult() { return mSignal(); }

}

signal_type::result_type不起作用。那么有没有办法获取返回类型呢?

4

1 回答 1

2

您需要typename使用依赖类型:

typename signal_type::result_type getResult() { return mSignal(); }

依赖名称(即依赖于模板参数)被假定为

  • typename除非以and to 为前缀,否则不命名类型
  • 除非立即以 . 为前缀,否则不要命名模板template
于 2010-07-13T15:47:36.377 回答