我需要一种通用的方法来确定当前分配的连续变量的内存大小,而无需为每种类型创建大量的模板。我主要需要这个用于C ++样式容器的模板函数,但是(因为我事先并不知道Type)我需要它与原始C类型兼容。
编辑这个问题听起来有点描述性和迂腐。
答案 0 :(得分:0)
C ++中的解决方案14,假设我明白你的意思:
template <class Container>
constexpr auto byte_size(const Container& container) {
using std::begin;
using std::end;
return (end(container) - begin(container)) * sizeof(container[0]);
}
请注意,即使容器为空,这也会起作用,因为sizeof
不会计算其操作数。
它虽然不适用于std::vector<bool>
---猜测你必须为此添加专业化。