【发布时间】:2023-02-04 10:59:31
【问题描述】:
我认为代码会更好地说明我的需要:
template <typename F>
struct return_type
{
typedef ??? type;
};
以便:
return_type<int(*)()>::type -> int
return_type<void(*)(int,int)>::type -> void
我知道 decltype 和 result_of 但他们需要传递参数。我想从单个模板参数中推断出函数指针的返回类型。我不能将返回类型添加为参数,因为这正是我想在这里隐藏的内容......
我知道在 boost 中有一个解决方案,但我不能使用它,并且试图从 boost 中挖掘它导致了一个惊人的失败(正如它经常发生的那样)。
欢迎使用 C++11 解决方案(只要 VS2012 支持)。
【问题讨论】:
-
在编写函数绑定器时,需要区别对待“void”返回类型,因此我有一个专门针对
void的模板。要使用它,我需要返回类型,而且我不想再次重新输入所有参数计数。
标签: c++ c++11 function-pointers