【发布时间】:2019-06-27 23:15:18
【问题描述】:
也就是说,给定一个 constexpr std::array<int,2>{1,2} 将其传递给某个函数或帮助类,该类会输出 std::integer_sequence<int, 1, 2> 类型?
从类型世界跳转到“constexpr value”世界似乎很容易(例如,进行反向转换),但很难或不可能进行反向转换。
【问题讨论】:
-
我有一种预感,不,这是不可能的,因为
constexpr函数可能仍会在运行时被调用。但是,这可能通过 C++20 中的consteval函数实现 -
你的
array有链接吗? -
@Davis - 没有。至少,我认为不是——它是由基于模板参数的 constexpr 函数自己创建的。
-
@BeeOnRope:决定链接的不是它是如何产生的,而是它的存储位置(在命名空间、类、函数、类类型对象中)。
-
@Davis - 是的,但我的意思是“确定我希望它具有链接”,但鉴于它不是全球性的,我认为这并不明显。跨度>