gpt4 book ai didi

c++ - constexpr 作为可变成员的一部分

转载 作者:行者123 更新时间:2023-11-27 23:50:54 27 4
gpt4 key购买 nike

这是 assignment 的定义std::basic_string_view 的运算符

constexpr basic_string_view& operator=(const basic_string_view& view) noexcept = default;

有人能向我解释为赋值运算符设置 constexpr 的目的是什么吗?

更一般的问题是什么原因使可变成员 constexpr?使用 VS2015 编译器我有一个警告,例如

in C++14 'constexpr' will not imply 'const'; consider explicitly specifying 'const'

不应该是一个错误吗?

最佳答案

您可以在 constexpr 上下文中创建局部变量并在 C++14 中修改它。

但是,如果赋值运算符不是 constexpr,则不能使用它。

template<class T, std::size_t N>
constexpr std::array<T, N> sort( std::array<T, N> in ) {
for (std::size_t i = 0; i < in.size(); ++i) {
for (std::size_t j = i+1; j < in.size(); ++j) {
if (in[i] > in[j]) {
auto tmp = in[j];
in[j] = in[i];
in[i] = tmp;
}
}
}
return in;
}

live example .

关于c++ - constexpr 作为可变成员的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46554878/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com