我在std::result_of
上浏览了问题,但无法找到这个问题的答案。
如何在不使用std::return_type
的情况下使用decltype
推断出非静态方法的返回类型?
#include <utility>
#include <memory>
struct A
{
int a;
int fun() { return 0;}
};
int main()
{
std::result_of<A::fun(A)>::type x; // error, argument 1 is invalid
std::result_of<A::fun()>::type x; // error, cannot call member function A::fun() without object
return 0;
}
我知道我可以使用declval
和decltype
的组合来获得相同的效果,但我想知道我是否可以直接使用result_of
实现这一目标?