gpt4 book ai didi

c++ - begin() 在 C++17 中是 constexpr 而在 C++14 中是 cbegin() 吗?

转载 作者:行者123 更新时间:2023-12-02 10:16:32 25 4
gpt4 key购买 nike

根据cppreference , std::cbegin()对于容器在 C++14 中被引入为 constexpr - 但是 std::begin() ,在 C++11 中引入,在 C++17 之前一直是非 constexpr。

真的吗?这似乎很不平衡。这是什么原因?

最佳答案

过载

template< class T, std::size_t N >
constexpr T* begin( T (&array)[N] ) noexcept;

在 C++14 中是 constexpr,所以 std::cbegin , 调用 std::begin , 在 C++14 中也是 constexpr。

对于非数组, std::cbegin在 C++14 的常量表达式中不可用,即使函数模板仍标记为 constexpr .

关于c++ - begin() 在 C++17 中是 constexpr 而在 C++14 中是 cbegin() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61763111/

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