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
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