diff --git a/common/include/fwd-valptridx.h b/common/include/fwd-valptridx.h index 60a32d05d..0be2906b9 100644 --- a/common/include/fwd-valptridx.h +++ b/common/include/fwd-valptridx.h @@ -67,6 +67,7 @@ #define DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_N_DEFN_VARS const char *const filename, const unsigned lineno #define DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_R_DEFN_VARS DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_N_DEFN_VARS, #define DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_N_PASS_VARS_ filename, lineno +#define DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_N_VOID_VARS() static_cast(filename), static_cast(lineno) #define DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_L_PASS_VARS , DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_N_PASS_VARS_ #define DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_R_PASS_VARS DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_N_PASS_VARS_, #define DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_R_PASS_VA(...) DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_N_PASS_VARS_, ## __VA_ARGS__ @@ -75,6 +76,7 @@ #define DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_L_DECL_VARS #define DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_N_DEFN_VARS #define DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_R_DEFN_VARS +#define DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_N_VOID_VARS() static_cast(0) #define DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_L_PASS_VARS #define DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_R_PASS_VARS #define DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_R_PASS_VA(...) __VA_ARGS__ @@ -85,6 +87,7 @@ class valptridx : protected valptridx_specialized_types::type { using specialized_types = typename valptridx_specialized_types::type; + using specialized_types::array_size; class partial_policy { public: @@ -99,6 +102,8 @@ class valptridx : class im; /* allow_invalid + mutable_policy */ template class guarded; + class array_base_count_type; + using array_base_storage_type = std::array; public: class array_managed_type; @@ -112,7 +117,6 @@ protected: */ using typename specialized_types::integral_type; using index_type = integral_type; // deprecated; should be dedicated UDT - using specialized_types::array_size; /* basic_ptridx publicly inherits from basic_idx and * basic_ptr, but should not be implicitly sliced to one of @@ -126,17 +130,13 @@ protected: class basic_ptr; template class basic_ptridx; + template + class basic_ival_member_factory; + template + class basic_vval_member_factory; class allow_end_construction; class assume_nothrow_index; - static constexpr const array_managed_type &get_array(const_pointer_type p) - { - return get_global_array(p); - } - static constexpr array_managed_type &get_array(mutable_pointer_type p = mutable_pointer_type()) - { - return get_global_array(p); - } static inline void check_index_match(DXX_VALPTRIDX_REPORT_STANDARD_LEADER_COMMA_R_DEFN_VARS const_reference_type, index_type, const array_managed_type &); template