在声明模板类的成员变量时,有没有办法根据某些模板参数的值使其需要零内存?
一个例子是定义类似的东西std::array<T,n>
,当n==0
.
例如:
template<int num_optional_args> class C {
int some_variable;
std::array<int,num_optional_args> optional_args;
};
有没有办法消除 optional_args 的开销num_optional_args==0
?
大多数std::array<T,n>
为一个元素保留空间的实现,T
即使n==0
.
还有另一种方法可以保留零空间吗?为什么这不是 C++ 标准的一部分?