pp/header/cmath "cpp/header/cmath") [ ` <cstdlib> ` ](/w/cpp/header/cstdlib "cpp/header/cstdlib") |  (C++26)  |  [ P1383R2 ](https://wg21.link/P1383R2)  
` __cpp_lib_constexpr_complex ` |  Constexpr for  [ std::complex ](/w/cpp/numeric/complex "cpp/numeric/complex") |  201711L  |  [ ` <complex> ` ](/w/cpp/header/complex "cpp/header/complex") |  (C++20)  |  [ P0415R1 ](https://wg21.link/P0415R1)  
More constexpr for [ ` <complex> ` ](/w/cpp/header/complex "cpp/header/complex") |  202306L  |  [ ` <complex> ` ](/w/cpp/header/complex "cpp/header/complex") |  (C++26)  |  [ P1383R2 ](https://wg21.link/P1383R2)  
` __cpp_lib_constexpr_  dynamic_alloc ` |  Constexpr for  [ std::allocator ](/w/cpp/memory/allocator "cpp/memory/allocator") and related utilities  |  201907L  |  [ ` <memory> ` ](/w/cpp/header/memory "cpp/header/memory") |  (C++20)  |  [ P0784R7 ](https://wg21.link/P0784R7)  
` __cpp_lib_constexpr_functional ` |  Misc constexpr bits (  [ std::default_searcher ](/w/cpp/utility/functional/default_searcher "cpp/utility/functional/default searcher") ); constexpr ` INVOKE ` |  201907L  |  [ ` <functional> ` ](/w/cpp/header/functional "cpp/header/functional") |  (C++20)  |  [ P1032R1 ](https://wg21.link/P1032R1)   
[ P1065R2 ](https://wg21.link/P1065R2)  
` __cpp_lib_constexpr_iterator ` |  Misc constexpr bits (  [ std::insert_iterator ](/w/cpp/iterator/insert_iterator "cpp/iterator/insert iterator") et al.)  |  201811L  |  [ ` <iterator> ` ](/w/cpp/header/iterator "cpp/header/iterator") |  (C++20)  |  [ P1032R1 ](https://wg21.link/P1032R1)  
` __cpp_lib_constexpr_memory ` |  Constexpr in  [ std::pointer_traits ](/w/cpp/memory/pointer_traits "cpp/memory/pointer traits") |  201811L  |  [ ` <memory> ` ](/w/cpp/header/memory "cpp/header/memory") |  (C++20)  |  [ P1006R1 ](https://wg21.link/P1006R1)  
Constexpr  [ std::unique_ptr ](/w/cpp/memory/unique_ptr "cpp/memory/unique ptr") |  202202L  |  [ ` <memory> ` ](/w/cpp/header/memory "cpp/header/memory") |  (C++23)  |  [ P2273R3 ](https://wg21.link/P2273R3)  
` __cpp_lib_constexpr_numeric ` |  Constexpr for [ algorithms ](/w/cpp/algorithm#Numeric_operations "cpp/algorithm") in [ ` <numeric> ` ](/w/cpp/header/numeric "cpp/header/numeric") |  201911L  |  [ ` <numeric> ` ](/w/cpp/header/numeric "cpp/header/numeric") |  (C++20)  |  [ P1645R1 ](https://wg21.link/P1645R1)  
` __cpp_lib_constexpr_string ` |  Constexpr for  [ std::string ](/w/cpp/string/basic_string "cpp/string/basic string") |  201907L  |  [ ` <string> ` ](/w/cpp/header/string "cpp/header/string") |  (C++20)  |  [ P0426R1 ](https://wg21.link/P0426R1)   
[ P1032R1 ](https://wg21.link/P1032R1)  
[ P0980R1 ](https://wg21.link/P0980R1)  
` __cpp_lib_constexpr_  string_view ` |  Misc constexpr bits (  [ std::string_view::copy ](/w/cpp/string/basic_string_view/copy "cpp/string/basic string view/copy") )  |  201811L  |  [ ` <string_view> ` ](/w/cpp/header/string_view "cpp/header/string view") |  (C++20)  |  [ P0426R1 ](https://wg21.link/P0426R1)   
[ P1032R1 ](https://wg21.link/P1032R1)  
` __cpp_lib_constexpr_tuple ` |  Misc constexpr bits (  [ std::tuple::operator= ](/w/cpp/utility/tuple/operator%3D "cpp/utility/tuple/operator=") et al.)  |  201811L  |  [ ` <tuple> ` ](/w/cpp/header/tuple "cpp/header/tuple") |  (C++20)  |  [ P1032R1 ](https://wg21.link/P1032R1)  
` __cpp_lib_constexpr_typeinfo ` |  Constexpr for  [ std::type_info::operator== ](/w/cpp/types/type_info/operator_cmp "cpp/types/type info/operator cmp") |  202106L  |  [ ` <typeinfo> ` ](/w/cpp/header/typeinfo "cpp/header/typeinfo") |  (C++23)  |  [ P1328R1 ](https://wg21.link/P1328R1)  
` __cpp_lib_constexpr_utility ` |  Misc constexpr bits (  [ std::pair::operator= ](/w/cpp/utility/pair/operator%3D "cpp/utility/pair/operator=") et al.)  |  201811L  |  [ ` <utility> ` ](/w/cpp/header/utility "cpp/header/utility") |  (C++20)  |  [ P1032R1 ](https://wg21.link/P1032R1)  
` __cpp_lib_constexpr_vector ` |  Constexpr for  [ std::vector ](/w/cpp/container/vector "cpp/containe