【问题标题】:use constexpr to determine size of array pointer使用 constexpr 确定数组指针的大小
【发布时间】:2017-04-11 16:25:13
【问题描述】:

我正在使用 constexpr 来声明 std::array 的大小。

constexprt auto sizearr = 99;

基于 sizearr 的编译时类型推导,我想找到用于迭代数组的索引类型

char offset; //Class member

当 sizearr 更改为

constexprt auto sizearr = 65000;

我希望将 offset 自动声明为 int 类型,而不是手动更改为 int。

我假设必须有混合 auto、decltype 和 constexpr 的方法来做到这一点。

【问题讨论】:

标签: c++ constexpr auto decltype


【解决方案1】:

使用 log2(arraysize)/8 (cast to int) 作为非类型模板参数 N。

模板是一个结构模板,定义了你需要的类型。

基于 N 值的部分专业化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 2014-11-10
    • 2020-10-04
    相关资源
    最近更新 更多