aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/Utilities/advstd.h13
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>>;