diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2024-11-15 12:30:49 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2024-11-15 12:30:49 +0100 |
commit | 2f9498dd93c1c5dde6ec19b73795631f1cb0cfa2 (patch) | |
tree | 89b11b3c475c9c3c8dbd1e8900c5059a02a9222d | |
parent | d2236d25b2c6fdf6f1311160226d4b2cbd25bb4a (diff) |
allow pointer to member argument for array_size()
-rw-r--r-- | compat/array-size.hpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/compat/array-size.hpp b/compat/array-size.hpp index 4d9b6ce6..fd313e6e 100644 --- a/compat/array-size.hpp +++ b/compat/array-size.hpp @@ -9,6 +9,7 @@ template<typename T, size_t N> struct array_size_<T(*)[N]> : std::integral_const template<typename T, size_t N> struct array_size_<T[N]> : std::integral_constant<size_t, N> {}; template<typename T, size_t N> struct array_size_<std::array<T, N>> : std::integral_constant<size_t, N> {}; template<typename T, size_t N> struct array_size_<StaticArray<N, T>> : std::integral_constant<size_t, N> {}; +template<size_t N, class T, class U> constexpr std::size_t arraySize(U(T::*)[N]) { return N; } template<typename C, typename T> struct array_size_<T C::*> : std::integral_constant<size_t, array_size_<std::remove_cvref_t<T>>::value> {}; |