Как получить тип возвращаемого сигнала boost :: signal? - PullRequest
2 голосов
/ 13 июля 2010

Я использую boost::signal с разными сигнатурами функций и разными сумматорами.В классе, который похож на тот, что за ним, я хочу получить возвращение определенного объявления сигнала.

template<typename signal_type> class MyClass
{

    signal_type mSignal;

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

}

Но signal_type::result_type не работает.Так есть ли способ получить тип возвращаемого значения?

1 Ответ

2 голосов
/ 13 июля 2010

Вам нужно typename, чтобы использовать зависимые типы:

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

Зависимые имена (т.е. зависящие от параметра шаблона) предполагаются равными

  • не имена типов, если с префиксом typename и
  • не шаблоны имен, если сразу не указан префикс template.
...