tags.h
Go to the documentation of this file.
// -*- c++ -*-
//*****************************************************************************
//*****************************************************************************
#ifndef polybori_common_common_tags_h_
#define polybori_common_common_tags_h_
// include basic definitions
#include <polybori/pbori_defs.h>
#include <polybori/orderings/order_tags.h>
BEGIN_NAMESPACE_PBORI
struct invalid_tag { };
struct valid_tag { };
template <class Tag>
struct invert_tag;
template <>
struct invert_tag<valid_tag> { typedef invalid_tag type; };
template <>
struct invert_tag<invalid_tag> { typedef valid_tag type; };
template <class Tag1, class Tag2>
struct and_tag { typedef invalid_tag type; };
template <>
struct and_tag<valid_tag, valid_tag> { typedef valid_tag type; };
struct navigator_tag {};
template <class ValidityTag>
class equality_property {
public:
typedef ValidityTag easy_equality_property;
};
END_NAMESPACE_PBORI
#endif // order_tags_h_