metaSMT git
Classes | Namespaces | Defines | Typedefs

metaSMT/tags/Logic.hpp File Reference

#include <boost/variant.hpp>
#include <boost/mpl/vector.hpp>

Go to the source code of this file.

Classes

struct  metaSMT::nil
struct  metaSMT::logic::tag::var_tag

Namespaces

namespace  metaSMT
namespace  metaSMT::logic
namespace  metaSMT::logic::tag

Defines

#define PRINT(Tag, body)
#define TAG(NAME)

Typedefs

typedef boost::mpl::vector
< false_tag, true_tag, not_tag,
equal_tag, nequal_tag, and_tag,
nand_tag, or_tag, nor_tag,
xor_tag, xnor_tag, implies_tag,
ite_tag, var_tag >::type 
metaSMT::logic::tag::Predicate_Tags
typedef
boost::make_variant_over
< Predicate_Tags >::type 
metaSMT::logic::tag::Predicate_Tag

Define Documentation

#define PRINT (   Tag,
  body 
)
Value:
template<typename STREAM> \
  friend STREAM & operator<< (STREAM & out, Tag const & self) \
  {  out << body; return out; }

Definition at line 16 of file Logic.hpp.

#define TAG (   NAME)
Value:
struct  NAME##_tag { \
  bool operator<(NAME##_tag const &) const {return false;} \
  PRINT(NAME##_tag, #NAME) \
};

Definition at line 19 of file Logic.hpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines