我可以创造constexpr
标准::数组:
constexpr std::array<int,5> values {1,2,3,4,5};
效果很好。但我无法创造constexpr
vector:
constexpr std::vector<int> vec = {1,2,3,4,5};
它给了我一个错误:
the type 'const std::vector<int>' of constexpr variable 'vec' is not literal constexpr std::vector<int> vec = {1,2,3,4,5};
有一个建议要提出std::vector
constexpr
: https://github.com/ldionne/wg21/blob/master/ generated/p1004r1.pdf https://github.com/ldionne/wg21/blob/master/generated/p1004r1.pdf关于即将到来的事情有一个完整的讨论C++20/23
变化:https://youtu.be/CRDNPwXDVp0?t=3080 https://youtu.be/CRDNPwXDVp0?t=3080所以再次检查C++20
!
[edit]: constexpr std::vector
已获批准用于C++20
! https://www.reddit.com/r/cpp/comments/au0c4x/201902_kona_iso_c_committee_trip_report_c20/ https://www.reddit.com/r/cpp/comments/au0c4x/201902_kona_iso_c_committee_trip_report_c20/
[编辑 2019-10]:gcc 主干(带有--std=c++2a
标志)已开始实施constexpr new
(前提条件是constexpr vector
). See: https://youtu.be/FRTmkDiW5MM?t=372 https://youtu.be/FRTmkDiW5MM?t=372
[编辑 2021-11]:both constexpr std::vector
and constexpr std::basic_string
现已实施于gcc 12
( https://en.cppreference.com/w/cpp/compiler_support https://en.cppreference.com/w/cpp/compiler_support )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)