【发布时间】:2017-03-25 13:36:22
【问题描述】:
我尝试如下定义一个类A:
template< typename T >
class A
{
public:
A( T elem )
: _elem( elem )
{}
private:
TYPE _elem; // "TYPE" should be either "T" in case "elem" is an r-value or "T&" in case "elem" is an l-value.
};
在这里,我希望 _elem 具有类型 T 以防构造函数的参数 elem 是右值或类型 T& 以防 elem 是左值。
有人知道如何实现吗?
【问题讨论】:
-
我不够聪明,无法为你写出来,但你可以使用模板 specialisation 来实现。投赞成票以吸引注意力。
-
我也需要这个(在编写视图类时)...
标签: c++ rvalue-reference lvalue type-deduction