Main Page   Class Hierarchy   Compound List   File List   Contact   Download   Symbolic Constraints   Examples  

cons_map.h

00001 #ifndef SCIL_CONS_MAP_H
00002 #define SCIL_CONS_MAP_H
00003 
00004 #include <tr1/unordered_map>
00005 #include<scil/basic_constraint.h>
00006 
00007 namespace SCIL {
00008 
00010 template<class A>
00011 class cons_map {
00012 private:
00013   tr1::unordered_map<A, cons> AV;
00014  
00015 public:
00016 
00018   cons_map() : AV(nil) {
00019   };
00020 
00022   virtual void init() {
00023     AV.clear();
00024   };
00025 
00027   const
00028   cons operator[](const A& a) const {
00029     return AV[a];
00030   };
00031 
00032   // sets the constraint assosiated with \a a.
00033   cons& operator[](const A& a) {
00034     return AV[a];
00035   };
00036 
00039   virtual
00040     const cons& inf(const A& a) const {
00041     return AV[a];
00042   }
00043 
00045   virtual
00046     void undefine(const A& a) {
00047     AV.undefine(a);
00048   }
00049   
00051   virtual
00052     void set(cons c, const A& a) {
00053     AV[a]=c;
00054   }
00055 
00056   virtual
00057   ~cons_map() {};
00058 };
00059 
00060 };
00061 
00062 #endif
Generated on Mon Mar 28 22:03:47 2011 for SCIL by  doxygen 1.6.3