metaSMT 2
Classes | Namespaces | Defines | Typedefs
metaSMT/tags/Array.hpp File Reference
#include "Logic.hpp"
#include <boost/mpl/vector.hpp>
#include <boost/variant.hpp>

Go to the source code of this file.

Classes

struct  metaSMT::logic::Array::tag::array_var_tag

Namespaces

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

Defines

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

Typedefs

typedef boost::mpl::vector
< nil, select_tag, store_tag,
array_var_tag >::type 
metaSMT::logic::Array::tag::Array_Tags
typedef
boost::make_variant_over
< Array_Tags >::type 
metaSMT::logic::Array::tag::Array_Tag

Define Documentation

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

Definition at line 15 of file Array.hpp.

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

Definition at line 18 of file Array.hpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines