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_
polybori::invalid_tag
This class shows, whether a property of an order is invalid.
Definition: tags.h:27
polybori::and_tag< valid_tag, valid_tag >::type
valid_tag type
Definition: tags.h:54
END_NAMESPACE_PBORI
#define END_NAMESPACE_PBORI
Finish project's namespace.
Definition: pbori_defs.h:77
BEGIN_NAMESPACE_PBORI
#define BEGIN_NAMESPACE_PBORI
Start project's namespace.
Definition: pbori_defs.h:74
polybori::equality_property
Definition: tags.h:66
order_tags.h
polybori::and_tag::type
invalid_tag type
Definition: tags.h:51
polybori::invert_tag
Changes valid_tag -> invalid_tag and vice versa.
Definition: tags.h:39
pbori_defs.h
polybori::equality_property::easy_equality_property
ValidityTag easy_equality_property
Set marker for validity.
Definition: tags.h:70
polybori::invert_tag< valid_tag >::type
invalid_tag type
Definition: tags.h:42
polybori::navigator_tag
for iterator_category
Definition: tags.h:60
polybori::invert_tag< invalid_tag >::type
valid_tag type
Definition: tags.h:45
polybori::and_tag
and_tag<valid_tag, valid_tag> -> valid_tag, otherwise invalid_tag.
Definition: tags.h:51
polybori::valid_tag
This class shows, whether a property of an order is valid.
Definition: tags.h:32