34#ifndef __GECODE_FLATZINC_SYMBOLTABLE_HH__
35#define __GECODE_FLATZINC_SYMBOLTABLE_HH__
39#ifdef GECODE_HAS_UNORDERED_MAP
40#include <unordered_map>
41#elif defined(GECODE_HAS_GNU_HASH_MAP)
42#include <ext/hash_map>
53#ifdef GECODE_HAS_UNORDERED_MAP
54 typedef std::unordered_map<std::string,Val> mymap;
55#elif defined(GECODE_HAS_GNU_HASH_MAP)
58 size_t operator ()(
const std::string&
x)
const {
59 return __gnu_cxx::hash<const char*>()(
x.c_str());
62 typedef __gnu_cxx::hash_map<std::string,Val,hashString> mymap;
64 typedef std::map<std::string,Val> mymap;
69 bool put(
const std::string& key,
const Val& val);
71 bool get(
const std::string& key,
Val& val)
const;
77 typename mymap::const_iterator i = m.find(key);
78 bool fresh = (i == m.
end());
86 typename mymap::const_iterator i = m.find(key);
iterator end(void)
Return an iterator past the end of the array.
Symbol table mapping identifiers (strings) to values.
bool put(const std::string &key, const Val &val)
Insert val with key.
bool get(const std::string &key, Val &val) const
Return whether key exists, and set val if it does exist.
Interpreter for the FlatZinc language.
Gecode toplevel namespace
Post propagator for SetVar x