如何在C++中创建空值函数(使用loki库)

3pvhb19x  于 2023-08-09  发布在  其他
关注(0)|答案(2)|浏览(133)

loki library写这样的东西

typedef Functor<void> BitButtonPushHandler;

字符串
抛出编译器错误,但这可以正常工作

typedef Functor<void,TYPELIST_1(Matrix3D*)> Perspective;


530:错误:'((Loki::FunctorHandler,int>*)this)->Loki::FunctorHandler,int>::f_'不能用作函数Functor.h:530:错误:返回值的return-statement,在返回“void”的函数中
任何熟悉这个库的人都知道如何让第一行工作?

bvn4nwqk

bvn4nwqk1#

查看源代码,Functor模板定义如下:

template <typename R = void, class TList = NullType,
        template<class, class> class ThreadingModel = LOKI_DEFAULT_THREADING_NO_OBJ_LEVEL>
    class Functor{...};

字符串
如下所述,不允许使用模板typedef,因此需要指定所有类型(或接受所有默认值)。
你可以像下面这样定义,让默认值来完成工作:

typedef Functor<> BitButtonPushHandler;


这为我编译了一个小的测试Functor类(不是实际的Loki类),我可以成功地使用typedef。

csga3l58

csga3l582#

我最初写的东西是有效的……很晚了我忘了...

using namespace Loki;

字符串
对不起

相关问题