diff options
author | Treeston <treeston.mmoc@gmail.com> | 2018-09-27 14:45:13 +0200 |
---|---|---|
committer | Treeston <treeston.mmoc@gmail.com> | 2018-09-27 14:45:13 +0200 |
commit | 2a607e647fc5656bc4ba3d2a7e7dbc97c47c7bb8 (patch) | |
tree | 877ebc39ac1873af97f75f2f0f489e17493fd292 | |
parent | 1dc675f0a17d9c7d1b6e9a07d5c25cdd79bb8788 (diff) |
Core/Misc: A few more advstd imports from C++17
-rw-r--r-- | src/common/Utilities/advstd.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/common/Utilities/advstd.h b/src/common/Utilities/advstd.h index de925225254..70c0d21cd51 100644 --- a/src/common/Utilities/advstd.h +++ b/src/common/Utilities/advstd.h @@ -64,12 +64,25 @@ namespace advstd // C++17 std::is_floating_point_v forward_1v(is_floating_point, bool); + // C++17 std::is_pointer_v + forward_1v(is_pointer, bool); + + // C++17 std::is_reference_v + forward_1v(is_reference, bool); + // C++17 std::tuple_size_v forward_1v(tuple_size, size_t); #undef forward_1v #undef forward_2v + // C++17 std::size + template <class C> + constexpr auto size(const C& c) -> decltype(c.size()) { return c.size(); } + + template <class T, std::size_t N> + constexpr std::size_t size(const T(&array)[N]) noexcept { return N; } + // C++20 std::remove_cvref_t template <class T> using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>; |