【发布时间】:2013-09-11 01:15:20
【问题描述】:
如果用户将 函数指针 作为参数传递,我想使用 SFINAE 来启用特定模板。
我在 Google 上四处搜索,但一无所获 - 我还尝试查看 <type_traits> 文档,但找不到类似于 is_function_ptr<T> 的任何内容。
函数指针是指全局函数指针,例如TReturn(*)(TArgs...)。
【问题讨论】:
-
你能同时检查 is_function 和 is_pointer 吗?
-
为什么选择 SFINAE?这里有点矫枉过正。
-
为什么没有简单的 f(std::function) ?
-
@n.m.,Dieter Lücking:我需要在编译时区分成员函数指针、函数指针和仿函数。
-
@NicolasLouisGuillemot:我找不到将两者结合起来的正确方法——我认为
is_function不适合检查函数指针(不过我可能错了)。
标签: c++ templates pointers c++11 enable-if