Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在C++;(使用洛基图书馆)_C++_Loki - Fatal编程技术网

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;