metaSMT 2
|
00001 #pragma once 00002 00003 #include "Logic.hpp" 00004 #include "QF_BV.hpp" 00005 #include "Array.hpp" 00006 00007 #include <boost/mpl/joint_view.hpp> 00008 #include <boost/mpl/copy.hpp> 00009 #include <boost/mpl/size.hpp> 00010 00011 namespace metaSMT { 00012 00013 namespace _all_logic_tags { 00014 typedef boost::mpl::joint_view< 00015 logic::tag::Predicate_Tags 00016 , logic::QF_BV::tag::QF_BV_Tags 00017 >::type all_Tags1; 00018 00019 typedef boost::mpl::joint_view< 00020 all_Tags1 00021 , logic::Array::tag::Array_Tags 00022 >::type all_Tags2; 00023 00024 typedef boost::mpl::copy< 00025 all_Tags2 00026 , boost::mpl::back_inserter< boost::mpl::vector<> > 00027 >::type all_Tags; 00028 //BOOST_MPL_ASSERT_RELATION( boost::mpl::size<allTags>::value, ==, 1 ); 00029 } 00030 00031 00032 typedef boost::make_variant_over< _all_logic_tags::all_Tags >::type Tag; 00033 00034 } // namespace metaSMT 00035 00036 // vim: ft=cpp:ts=2:sw=2:expandtab