【发布时间】:2018-02-25 11:55:57
【问题描述】:
根据this answer 显然没有充分的理由为什么不允许结构化绑定是 constexpr,但标准仍然禁止它。但是,在这种情况下,不应该禁止在 constexpr 函数中使用结构化绑定吗?考虑一个简单的 sn-p:
#include <utility>
constexpr int foo(std::pair<int, int> p) {
auto [a, b] = p;
return a;
}
int main() {
constexpr int a = foo({1, 2});
static_assert(a == 1);
}
【问题讨论】:
-
这与可以在 constexpr 函数中创建和修改非常量变量的原因相同。
-
@cpplearner 好点!写一个答案让我接受。
标签: c++ language-lawyer c++17 constexpr structured-bindings