#pragma once #include "compat/meta.hpp" #include namespace mixins::traits_detail { using namespace meta; template using tuple = tuple_; template struct mixin_traits { // implement this! using depends = tuple<>; // unconditional but at instantiation time static_assert(sizeof(t) < sizeof(char), "must specialize mixin_traits"); }; template struct check_depends_; template struct check_depends_ : std::true_type { }; template struct check_depends_ : std::bool_constant< std::is_base_of_v && lift::depends>>::value && check_depends_::value > { }; template struct impl { static constexpr bool class_must_inherit_dependent_mixins = lift>::value; static_assert(class_must_inherit_dependent_mixins); }; } // ns mixins::traits_detail