C++ 如何在C++;(使用洛基图书馆)
使用C++ 如何在C++;(使用洛基图书馆),c++,loki,C++,Loki,使用 typedef函子BitButtonPushHandler; 抛出一个编译器错误,但这是有效的 typedef Functor<void,TYPELIST_1(Matrix3D*)> Perspective; typedef函子透视图; Functor.h:530:error:'((Loki::FunctorHandler,int>*)this)->Loki::FunctorHandler,int>::f_'不能用作函数 Functor.h:530:错误:返回“void”
typedef函子BitButtonPushHandler;
抛出一个编译器错误,但这是有效的
typedef Functor<void,TYPELIST_1(Matrix3D*)> Perspective;
typedef函子透视图;
Functor.h:530:error:'((Loki::FunctorHandler,int>*)this)->Loki::FunctorHandler,int>::f_'不能用作函数
Functor.h:530:错误:返回“void”的函数中有值的return语句
熟悉此库的任何人都知道如何使第一行工作?查看源代码,函子模板定义如下:
template <typename R = void, class TList = NullType,
template<class, class> class ThreadingModel = LOKI_DEFAULT_THREADING_NO_OBJ_LEVEL>
class Functor{...};
模板
类函子{…};
如下所述,不允许使用模板typedef,因此需要指定所有类型(或接受所有默认值)
您只需按以下方式定义,并让默认值完成工作:
typedef Functor<> BitButtonPushHandler;
typedef函子BitButtonPushHandler;
这为我编译了一个小的测试函子类(不是实际的Loki类),我可以成功地使用typedef。我最初编写的工作正常。。。很晚了,我忘了
using namespace Loki;
…非常抱歉
using namespace Loki;