ra4_stats  0341147a0dc35f80f4e12c6003afb76a38e2ed6e
cut.hpp
Go to the documentation of this file.
1 #ifndef H_CUT
2 #define H_CUT
3 
4 #include <string>
5 #include <ostream>
6 #include <tuple>
7 
8 class Cut{
9 public:
10  Cut(const std::string &cut = "1");
11  Cut(const char *cut);
12 
13  Cut & Replace(const Cut &orig, const Cut &rep);
14  Cut & RmCutOn(const Cut &to_rm, const Cut &rep = Cut());
15 
16  Cut & operator &= (const Cut &cut);
17  Cut & operator |= (const Cut &cut);
18  Cut & operator += (const Cut &cut);
19  Cut & operator -= (const Cut &cut);
20  Cut & operator *= (const Cut &cut);
21  Cut & operator /= (const Cut &cut);
22  Cut & operator %= (const Cut &cut);
23  Cut & operator ^= (const Cut &cut);
24  Cut & operator <<= (const Cut &cut);
25  Cut & operator >>= (const Cut &cut);
26 
27  explicit operator std::string() const;
28  explicit operator const char *() const;
29 
30  bool operator<(const Cut &cut) const;
31  bool operator==(const Cut &cut) const;
32 
33  std::string GetCut();
34  void SetCut(std::string &cut);
35 
36 private:
37  std::string cut_;
38 
39  void Clean();
40 };
41 
54 
55 std::ostream & operator<<(std::ostream &stream, const Cut &cut);
56 
57 #endif
Cut & RmCutOn(const Cut &to_rm, const Cut &rep=Cut())
Definition: cut.cpp:31
Cut & operator/=(const Cut &cut)
Definition: cut.cpp:66
Cut & operator-=(const Cut &cut)
Definition: cut.cpp:54
Cut & operator<<=(const Cut &cut)
Definition: cut.cpp:84
Definition: cut.hpp:8
bool operator<(const Cut &cut) const
Definition: cut.cpp:104
Cut operator&&(Cut a, Cut b)
Definition: cut.cpp:120
std::string cut_
Definition: cut.hpp:37
Cut & Replace(const Cut &orig, const Cut &rep)
Definition: cut.cpp:17
Cut operator&(Cut a, Cut b)
Definition: cut.cpp:116
Cut & operator|=(const Cut &cut)
Definition: cut.cpp:42
Cut & operator>>=(const Cut &cut)
Definition: cut.cpp:90
Cut operator/(Cut a, Cut b)
Definition: cut.cpp:144
bool operator==(const Cut &cut) const
Definition: cut.cpp:108
Cut operator%(Cut a, Cut b)
Definition: cut.cpp:148
Cut operator||(Cut a, Cut b)
Definition: cut.cpp:128
Cut operator*(Cut a, Cut b)
Definition: cut.cpp:140
void SetCut(std::string &cut)
Definition: cut.cpp:26
Cut operator>>(Cut a, Cut b)
Definition: cut.cpp:160
Cut & operator&=(const Cut &cut)
Definition: cut.cpp:36
Cut & operator+=(const Cut &cut)
Definition: cut.cpp:48
std::string GetCut()
Definition: cut.cpp:22
Cut operator-(Cut a, Cut b)
Definition: cut.cpp:136
Cut operator^(Cut a, Cut b)
Definition: cut.cpp:152
Cut operator|(Cut a, Cut b)
Definition: cut.cpp:124
Cut(const std::string &cut="1")
Definition: cut.cpp:7
Cut operator+(Cut a, Cut b)
Definition: cut.cpp:132
Cut & operator%=(const Cut &cut)
Definition: cut.cpp:72
Cut operator<<(Cut a, Cut b)
Definition: cut.cpp:156
Cut & operator^=(const Cut &cut)
Definition: cut.cpp:78
void Clean()
Definition: cut.cpp:112
Cut & operator*=(const Cut &cut)
Definition: cut.cpp:60