summaryrefslogtreecommitdiff
path: root/Lib/csharp/std_map.i
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2009-05-26 17:08:53 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2009-05-26 17:08:53 +0000
commit25bcb4d5e60933b787f077c68837343fa27b38f9 (patch)
tree61f851baf7aba42afa4e048030bbb379ea97979c /Lib/csharp/std_map.i
parent3ffdfee64ad32119196c2d8f34454fabce7804f4 (diff)
downloadswig-25bcb4d5e60933b787f077c68837343fa27b38f9.tar.gz
std::map C# improvements
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11236 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Diffstat (limited to 'Lib/csharp/std_map.i')
-rw-r--r--Lib/csharp/std_map.i29
1 files changed, 19 insertions, 10 deletions
diff --git a/Lib/csharp/std_map.i b/Lib/csharp/std_map.i
index 32914affe..3b09861a2 100644
--- a/Lib/csharp/std_map.i
+++ b/Lib/csharp/std_map.i
@@ -53,7 +53,7 @@
%rename(Clear) clear;
void clear();
%extend {
- const mapped_type& get(const key_type& key) throw (std::out_of_range) {
+ const mapped_type& getitem(const key_type& key) throw (std::out_of_range) {
std::map<K,T >::iterator iter = $self->find(key);
if (iter != $self->end())
return iter->second;
@@ -61,22 +61,31 @@
throw std::out_of_range("key not found");
}
- void set(const key_type& key, const mapped_type& x) {
+ void setitem(const key_type& key, const mapped_type& x) {
(*$self)[key] = x;
}
- void del(const key_type& key) throw (std::out_of_range) {
- std::map<K,T >::iterator iter = $self->find(key);
+ bool ContainsKey(const key_type& key) {
+ std::map<K, T >::iterator iter = $self->find(key);
+ return iter != $self->end();
+ }
+
+ void Add(const key_type& key, const mapped_type& val) throw (std::out_of_range) {
+ std::map<K, T >::iterator iter = $self->find(key);
if (iter != $self->end())
- $self->erase(iter);
- else
- throw std::out_of_range("key not found");
+ throw std::out_of_range("key already exists");
+ $self->insert(std::pair<K, T >(key, val));
}
- bool has_key(const key_type& key) {
- std::map<K,T >::iterator iter = $self->find(key);
- return iter != $self->end();
+ bool Remove(const key_type& key) {
+ std::map<K, T >::iterator iter = $self->find(key);
+ if (iter != $self->end()) {
+ $self->erase(iter);
+ return true;
+ }
+ return false;
}
+
}
%enddef