Написав что-то подобное с помощью библиотека локи,
typedef Functor<void> BitButtonPushHandler;
выдает ошибку компилятора, но это работает
typedef Functor<void,TYPELIST_1(Matrix3D*)> Perspective;
Functor.h:530: error: '((Loki::FunctorHandler, int>*)this)->Loki::FunctorHandler, int>::f_' cannot be used as a function Functor.h:530: error: return-statement with a value, in function returning 'void'
Кто-нибудь, знакомый с этой библиотекой, знает, как заставить работать первую строку?





Глядя на исходный код, определение шаблона Functor выглядит следующим образом:
template <typename R = void, class TList = NullType,
template<class, class> class ThreadingModel = LOKI_DEFAULT_THREADING_NO_OBJ_LEVEL>
class Functor{...};
Как указано ниже, не разрешены определения типов шаблонов, поэтому необходимо указать все типы (или принять все значения по умолчанию).
Вы можете просто определить следующее и позволить настройкам по умолчанию делать свою работу:
typedef Functor<> BitButtonPushHandler;
Это компилируется для меня с небольшим тестовым классом Functor (не с фактическим Loki), и я могу успешно использовать typedef.
То, что я изначально написал, сработало ... было поздно, и я забыл о ...
using namespace Loki;
...так жаль