Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/ext/bases.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// { dg-options "-w" } // { dg-do run { target c++11 } } #include<typeinfo> #include<cassert> // A simple typelist template<typename... _Elements> struct types {}; // Simple bases implementation template<typename T> struct b { typedef types<__bases(T)...> type; }; // Simple direct_bases implementation template<typename T> struct db { typedef types<__direct_bases(T)...> type; }; template <class,class> struct assert_same_type; template <class T> struct assert_same_type<T,T> {}; struct A {}; struct C : virtual A {}; struct D : public C {}; struct B : D, virtual A {}; struct E : C, virtual D, B {}; struct F : A, B, E {}; int main() { assert_same_type<b<F>::type, types<A,C,D,A,C,D,B,C,C,D,B,E>>(); assert_same_type<db<F>::type, types<A,B,E>>(); assert_same_type<db<int>::type, types<>>(); return 0; }