Mercurial > mm7
comparison lib/swig/swigwin-2.0.11/Lib/lua/std_map.i @ 1899:b3009adc0e2f
Adding swig, gitignore, hgignore
author | Nomad |
---|---|
date | Mon, 21 Oct 2013 10:42:27 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1867:eb580660bbbb | 1899:b3009adc0e2f |
---|---|
1 /* ----------------------------------------------------------------------------- | |
2 * std_map.i | |
3 * | |
4 * SWIG typemaps for std::map | |
5 * ----------------------------------------------------------------------------- */ | |
6 | |
7 %include <std_common.i> | |
8 | |
9 // ------------------------------------------------------------------------ | |
10 // std::map | |
11 // ------------------------------------------------------------------------ | |
12 | |
13 %{ | |
14 #include <map> | |
15 #include <algorithm> | |
16 #include <stdexcept> | |
17 %} | |
18 | |
19 // exported class | |
20 | |
21 namespace std { | |
22 | |
23 template<class K, class T> class map { | |
24 // add typemaps here | |
25 public: | |
26 typedef size_t size_type; | |
27 typedef ptrdiff_t difference_type; | |
28 typedef K key_type; | |
29 typedef T mapped_type; | |
30 map(); | |
31 map(const map<K,T> &); | |
32 | |
33 unsigned int size() const; | |
34 bool empty() const; | |
35 void clear(); | |
36 %extend { | |
37 const T& get(const K& key) throw (std::out_of_range) { | |
38 std::map<K,T >::iterator i = self->find(key); | |
39 if (i != self->end()) | |
40 return i->second; | |
41 else | |
42 throw std::out_of_range("key not found"); | |
43 } | |
44 void set(const K& key, const T& x) { | |
45 (*self)[key] = x; | |
46 } | |
47 void del(const K& key) throw (std::out_of_range) { | |
48 std::map<K,T >::iterator i = self->find(key); | |
49 if (i != self->end()) | |
50 self->erase(i); | |
51 else | |
52 throw std::out_of_range("key not found"); | |
53 } | |
54 bool has_key(const K& key) { | |
55 std::map<K,T >::iterator i = self->find(key); | |
56 return i != self->end(); | |
57 } | |
58 } | |
59 }; | |
60 } |