【发布时间】:2017-01-13 21:30:52
【问题描述】:
我有一个像这样的简单模板向量类:
template <typename T, size_t N>
class Vec {
public:
T v[N];
//T const& x = v[0];
...
}
我可以在没有大小成本的情况下引用数组成员吗?因为如果我编写注释掉的代码,它将为指针分配大小,是否有解决方法或#define 或某种魔法?
【问题讨论】:
-
T const& x() const { return v[0]; }怎么样?这没有任何成本。 -
你真的需要持有一个引用,或者返回引用的函数就是你所追求的
-
@KerrekSB 打败了我 :)
-
@Muscampester 程序大小无关紧要,但谢谢 :)
-
但是你应该使用一个更有特色的名字,否则如果你尝试使用
x作为一个普通的变量你会遇到问题。例如#define Vec_x v[0]。然后你可以做myvec.Vec_x = 100;
标签: c++ arrays templates generics vector