#pragma once #include "compat/linkage-macros.hpp" #include "compat/macros.hpp" #include "compat/meta.hpp" #include namespace mixins::traits_detail { using namespace meta; template using tuple = meta::detail::tuple; template struct mixin_traits { //using depends = tuple<>; }; template struct check_depends_; template struct check_depends_ { using type = std::bool_constant; }; template struct check_depends_ { using b1 = std::is_base_of; using b2 = typename check_depends_::type; using depends = typename mixin_traits::depends; using t1 = cons; using t2 = lift; using b3 = typename t2::type; using type = std::bool_constant; }; template class impl { using t1 = typename lift::depends>>::type; static_assert(t1::value); }; } // ns mixins::traits_detail