#pragma once #define MIXIN_TRAIT_TESTS #ifdef MIXIN_TRAIT_TESTS # include "mixin-traits.hpp" namespace mixins::traits_detail { struct A {}; struct B : A {}; struct C {}; template<> struct mixin_traits<B> { using depends = tuple<A>; }; template<> struct mixin_traits<A> { using depends = tuple<B>; }; template<> struct mixin_traits<C> { using depends = tuple<B, A>; }; extern void test1(); void test1() { //impl<A> fail1; impl<B> ok1; } } // ns mixins::traits_detail #endif