Go to the documentation of this file.00001
00002
00003
00004 #ifndef semantics_hh
00005 #define semantics_hh
00006
00007 #include "basics/outputOperator.hh"
00008
00009 namespace concepts {
00010
00011
00012 class Attribute;
00013
00014
00015
00018 template<class T>
00019 class Semantics : public OutputOperator {
00020 public:
00022 virtual T operator()(Attribute attrib) const = 0;
00023 protected:
00024 virtual std::ostream& info(std::ostream& os) const {
00025 return os << "Semantics()"; }
00026 };
00027
00028
00029
00033 class AttributeBool : public Semantics<bool> {
00034 public:
00038 bool operator()(Attribute attrib) const;
00039 protected:
00040 virtual std::ostream& info(std::ostream& os) const;
00041 };
00042
00043 }
00044
00045 #endif // semantics_hh