【发布时间】:2015-08-20 12:10:36
【问题描述】:
我目前正在寻找一种封装数据以供编译时访问的数据结构。因此,访问的值应该返回为 constexpr。
虽然元组确实有 constexpr 构造函数,但元组的 get 函数不返回 constexpr。
这样的数据结构是否存在或者是否可以手动定义这样的数据结构?
最终目标是将编译时间已知值打包到某种对象中,将其(通过模板)传递给函数,访问那里的元素,并将编译时间已知值作为常量直接粘贴到二进制文件中。就我而言,封装部分至关重要。
【问题讨论】:
-
std::initializer_list? -
在上面的示例中使用
std:array,对结构中数组的访问被编译为callq std::array<int, 2ul>::operator[](unsigned long) const,这根本不是常量,而是我假设的内存访问......跨度> -
明确一点:它可能是常量,但它不是存储在数组中的整数常量,就像我想要的那样!
标签: c++ arrays tuples c++14 constexpr