用于确定各种变量的字节大小的模板

时间:2016-08-26 00:31:13

标签: c++ size c++14

我需要一种通用的方法来确定当前分配的连续变量的内存大小,而无需为每种类型创建大量的模板。我主要需要这个用于C ++样式容器的模板函数,但是(因为我事先并不知道Type)我需要它与原始C类型兼容。

编辑这个问题听起来有点描述性和迂腐。

1 个答案:

答案 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> ---猜测你必须为此添加专业化。