39 void _accept(
const mstd::function_view<
void(
const scalar_type&)> scalarVisit,
40 const mstd::function_view<
void(
const vec_type&)> vecVisit,
const mstd::function_view<
void(
const mat_type&)> matVisit,
41 const mstd::function_view<
void(
const struct_type&)> structVisit,
42 const mstd::function_view<
void(
const array_type&)> arrayVisit)
const override {
43 if _MSTD_CONSTEXPR17 (std::is_same_v<Derived, scalar_type>) { scalarVisit(_get_derived()); }
44 else if _MSTD_CONSTEXPR17 (std::is_same_v<Derived, vec_type>) { vecVisit(_get_derived()); }
45 else if _MSTD_CONSTEXPR17 (std::is_same_v<Derived, mat_type>) { matVisit(_get_derived()); }
46 else if _MSTD_CONSTEXPR17 (std::is_same_v<Derived, struct_type>) { structVisit(_get_derived()); }
47 else if _MSTD_CONSTEXPR17 (std::is_same_v<Derived, array_type>) { arrayVisit(_get_derived()); }