相关疑难解决方法(0)

有没有办法得到"当前函数"的返回类型

我想编写一个模板,它将获取实例化函数的返回类型作为参数.

例如,假设我有一个Result模板类:

template<type T>
class Result {
    T _result_value;
    T& operator=( T that );
    ~Result( );
}
Run Code Online (Sandbox Code Playgroud)

这个类有几个专业.在析构函数中,我想记录返回类型,并且在operator=分配中我想检查并断言错误值.

理想情况下,我希望能够有这样的定义:

#define RESULT Result< /* decltype magic for type of current function */ >
Run Code Online (Sandbox Code Playgroud)

所以我可以用它:

HFILE MyOpenFile( ... ) {
    RESULT result;
}
Run Code Online (Sandbox Code Playgroud)

...将被推断出来Result<HFILE>.这是一个简化的例子:编写RESULT代替Result<HFILE>并不是什么大问题,但是还有其他情况下不容易获得当前函数的返回类型.

c++ type-inference c++11

14
推荐指数
2
解决办法
2229
查看次数

标签 统计

c++ ×1

c++11 ×1

type-inference ×1