如何判断Type是否为Functor? [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我有is_invocable来匹配函数指针,lambdas和functor。

但如果我被困在怎么办?我是否有类型特征,或者我可以写一个,这将匹配所有这些?

我尝试过is_function,但这只适用于函数指针。

c++ lambda c++14 functor typetraits
1个回答
1
投票

是的,你可以,std::is_invocable是一个库函数,不需要编译器支持。您可以从您选择的STL中删除实现。

例如,你可以在这里找到__invokable的LLVM实现(std::is_invocable转发LLVM的STL中的所有逻辑):https://android.googlesource.com/platform/ndk/+/5b3a49bdbd08775d0e6f9727221fe98946f6db44/sources/cxx-stl/llvm-libc++/libcxx/include/type_traits

(我当时正考虑将其提取并发布到此处,但对于帖子而言似乎太大了。在较轻松的音符上,我发现拼写不同 - 可调用与可调用 - 有趣。)

© www.soinside.com 2019 - 2024. All rights reserved.