Core/Misc: A few more advstd imports from C++17

This commit is contained in:
Treeston
2018-09-27 14:45:13 +02:00
parent 1dc675f0a1
commit 2a607e647f

View File

@@ -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>>;