use instead of self
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11231 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
30335a0198
commit
07ed699ef3
2 changed files with 53 additions and 53 deletions
|
|
@ -56,28 +56,28 @@
|
||||||
void clear();
|
void clear();
|
||||||
%extend {
|
%extend {
|
||||||
T get(const K& key) throw (std::out_of_range) {
|
T get(const K& key) throw (std::out_of_range) {
|
||||||
std::map<K,T >::iterator i = self->find(key);
|
std::map<K,T >::iterator i = $self->find(key);
|
||||||
if (i != self->end())
|
if (i != $self->end())
|
||||||
return i->second;
|
return i->second;
|
||||||
else
|
else
|
||||||
throw std::out_of_range("key not found");
|
throw std::out_of_range("key not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
void set(const K& key, const T& x) {
|
void set(const K& key, const T& x) {
|
||||||
(*self)[key] = x;
|
(*$self)[key] = x;
|
||||||
}
|
}
|
||||||
|
|
||||||
void del(const K& key) throw (std::out_of_range) {
|
void del(const K& key) throw (std::out_of_range) {
|
||||||
std::map<K,T >::iterator i = self->find(key);
|
std::map<K,T >::iterator i = $self->find(key);
|
||||||
if (i != self->end())
|
if (i != $self->end())
|
||||||
self->erase(i);
|
$self->erase(i);
|
||||||
else
|
else
|
||||||
throw std::out_of_range("key not found");
|
throw std::out_of_range("key not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool has_key(const K& key) {
|
bool has_key(const K& key) {
|
||||||
std::map<K,T >::iterator i = self->find(key);
|
std::map<K,T >::iterator i = $self->find(key);
|
||||||
return i != self->end();
|
return i != $self->end();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -288,15 +288,15 @@
|
||||||
void clear();
|
void clear();
|
||||||
%extend {
|
%extend {
|
||||||
T getitem(K key) throw (std::out_of_range) {
|
T getitem(K key) throw (std::out_of_range) {
|
||||||
std::map<K,T >::iterator i = self->find(key);
|
std::map<K,T >::iterator i = $self->find(key);
|
||||||
if (i != self->end())
|
if (i != $self->end())
|
||||||
return i->second;
|
return i->second;
|
||||||
else
|
else
|
||||||
throw std::out_of_range("key not found");
|
throw std::out_of_range("key not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
void setitem(K key, T x) {
|
void setitem(K key, T x) {
|
||||||
(*self)[key] = x;
|
(*$self)[key] = x;
|
||||||
}
|
}
|
||||||
|
|
||||||
// create_iterator_begin() and get_next_key() work together to provide a collection of keys to C#
|
// create_iterator_begin() and get_next_key() work together to provide a collection of keys to C#
|
||||||
|
|
@ -304,12 +304,12 @@
|
||||||
%apply void *VOID_INT_PTR { std::map<K, T >::iterator *swigiterator }
|
%apply void *VOID_INT_PTR { std::map<K, T >::iterator *swigiterator }
|
||||||
|
|
||||||
std::map<K, T >::iterator *create_iterator_begin() {
|
std::map<K, T >::iterator *create_iterator_begin() {
|
||||||
return new std::map<K, T >::iterator(self->begin());
|
return new std::map<K, T >::iterator($self->begin());
|
||||||
}
|
}
|
||||||
|
|
||||||
K get_next_key(std::map<K, T >::iterator *swigiterator) throw (std::out_of_range) {
|
K get_next_key(std::map<K, T >::iterator *swigiterator) throw (std::out_of_range) {
|
||||||
std::map<K, T >::iterator iter = *swigiterator;
|
std::map<K, T >::iterator iter = *swigiterator;
|
||||||
if (iter == self->end()) {
|
if (iter == $self->end()) {
|
||||||
delete swigiterator;
|
delete swigiterator;
|
||||||
throw std::out_of_range("no more map elements");
|
throw std::out_of_range("no more map elements");
|
||||||
}
|
}
|
||||||
|
|
@ -318,25 +318,25 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ContainsKey(K key) {
|
bool ContainsKey(K key) {
|
||||||
std::map<K, T >::iterator iter = self->find(key);
|
std::map<K, T >::iterator iter = $self->find(key);
|
||||||
if (iter != self->end()) {
|
if (iter != $self->end()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Add(K key, T val) throw (std::out_of_range) {
|
void Add(K key, T val) throw (std::out_of_range) {
|
||||||
std::map<K, T >::iterator iter = self->find(key);
|
std::map<K, T >::iterator iter = $self->find(key);
|
||||||
if (iter != self->end()) {
|
if (iter != $self->end()) {
|
||||||
throw std::out_of_range("key already exists");
|
throw std::out_of_range("key already exists");
|
||||||
}
|
}
|
||||||
self->insert(std::pair<K, T >(key, val));
|
$self->insert(std::pair<K, T >(key, val));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Remove(K key) {
|
bool Remove(K key) {
|
||||||
std::map<K, T >::iterator iter = self->find(key);
|
std::map<K, T >::iterator iter = $self->find(key);
|
||||||
if (iter != self->end()) {
|
if (iter != $self->end()) {
|
||||||
self->erase(iter);
|
$self->erase(iter);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -238,26 +238,26 @@
|
||||||
return pv;
|
return pv;
|
||||||
}
|
}
|
||||||
CTYPE getitemcopy(int index) throw (std::out_of_range) {
|
CTYPE getitemcopy(int index) throw (std::out_of_range) {
|
||||||
if (index>=0 && index<(int)self->size())
|
if (index>=0 && index<(int)$self->size())
|
||||||
return (*self)[index];
|
return (*$self)[index];
|
||||||
else
|
else
|
||||||
throw std::out_of_range("index");
|
throw std::out_of_range("index");
|
||||||
}
|
}
|
||||||
const_reference getitem(int index) throw (std::out_of_range) {
|
const_reference getitem(int index) throw (std::out_of_range) {
|
||||||
if (index>=0 && index<(int)self->size())
|
if (index>=0 && index<(int)$self->size())
|
||||||
return (*self)[index];
|
return (*$self)[index];
|
||||||
else
|
else
|
||||||
throw std::out_of_range("index");
|
throw std::out_of_range("index");
|
||||||
}
|
}
|
||||||
void setitem(int index, const value_type& val) throw (std::out_of_range) {
|
void setitem(int index, const value_type& val) throw (std::out_of_range) {
|
||||||
if (index>=0 && index<(int)self->size())
|
if (index>=0 && index<(int)$self->size())
|
||||||
(*self)[index] = val;
|
(*$self)[index] = val;
|
||||||
else
|
else
|
||||||
throw std::out_of_range("index");
|
throw std::out_of_range("index");
|
||||||
}
|
}
|
||||||
// Takes a deep copy of the elements unlike ArrayList.AddRange
|
// Takes a deep copy of the elements unlike ArrayList.AddRange
|
||||||
void AddRange(const std::vector<CTYPE >& values) {
|
void AddRange(const std::vector<CTYPE >& values) {
|
||||||
self->insert(self->end(), values.begin(), values.end());
|
$self->insert($self->end(), values.begin(), values.end());
|
||||||
}
|
}
|
||||||
// Takes a deep copy of the elements unlike ArrayList.GetRange
|
// Takes a deep copy of the elements unlike ArrayList.GetRange
|
||||||
std::vector<CTYPE > *GetRange(int index, int count) throw (std::out_of_range, std::invalid_argument) {
|
std::vector<CTYPE > *GetRange(int index, int count) throw (std::out_of_range, std::invalid_argument) {
|
||||||
|
|
@ -265,26 +265,26 @@
|
||||||
throw std::out_of_range("index");
|
throw std::out_of_range("index");
|
||||||
if (count < 0)
|
if (count < 0)
|
||||||
throw std::out_of_range("count");
|
throw std::out_of_range("count");
|
||||||
if (index >= (int)self->size()+1 || index+count > (int)self->size())
|
if (index >= (int)$self->size()+1 || index+count > (int)$self->size())
|
||||||
throw std::invalid_argument("invalid range");
|
throw std::invalid_argument("invalid range");
|
||||||
return new std::vector<CTYPE >(self->begin()+index, self->begin()+index+count);
|
return new std::vector<CTYPE >($self->begin()+index, $self->begin()+index+count);
|
||||||
}
|
}
|
||||||
void Insert(int index, const value_type& x) throw (std::out_of_range) {
|
void Insert(int index, const value_type& x) throw (std::out_of_range) {
|
||||||
if (index>=0 && index<(int)self->size()+1)
|
if (index>=0 && index<(int)$self->size()+1)
|
||||||
self->insert(self->begin()+index, x);
|
$self->insert($self->begin()+index, x);
|
||||||
else
|
else
|
||||||
throw std::out_of_range("index");
|
throw std::out_of_range("index");
|
||||||
}
|
}
|
||||||
// Takes a deep copy of the elements unlike ArrayList.InsertRange
|
// Takes a deep copy of the elements unlike ArrayList.InsertRange
|
||||||
void InsertRange(int index, const std::vector<CTYPE >& values) throw (std::out_of_range) {
|
void InsertRange(int index, const std::vector<CTYPE >& values) throw (std::out_of_range) {
|
||||||
if (index>=0 && index<(int)self->size()+1)
|
if (index>=0 && index<(int)$self->size()+1)
|
||||||
self->insert(self->begin()+index, values.begin(), values.end());
|
$self->insert($self->begin()+index, values.begin(), values.end());
|
||||||
else
|
else
|
||||||
throw std::out_of_range("index");
|
throw std::out_of_range("index");
|
||||||
}
|
}
|
||||||
void RemoveAt(int index) throw (std::out_of_range) {
|
void RemoveAt(int index) throw (std::out_of_range) {
|
||||||
if (index>=0 && index<(int)self->size())
|
if (index>=0 && index<(int)$self->size())
|
||||||
self->erase(self->begin() + index);
|
$self->erase($self->begin() + index);
|
||||||
else
|
else
|
||||||
throw std::out_of_range("index");
|
throw std::out_of_range("index");
|
||||||
}
|
}
|
||||||
|
|
@ -293,9 +293,9 @@
|
||||||
throw std::out_of_range("index");
|
throw std::out_of_range("index");
|
||||||
if (count < 0)
|
if (count < 0)
|
||||||
throw std::out_of_range("count");
|
throw std::out_of_range("count");
|
||||||
if (index >= (int)self->size()+1 || index+count > (int)self->size())
|
if (index >= (int)$self->size()+1 || index+count > (int)$self->size())
|
||||||
throw std::invalid_argument("invalid range");
|
throw std::invalid_argument("invalid range");
|
||||||
self->erase(self->begin()+index, self->begin()+index+count);
|
$self->erase($self->begin()+index, $self->begin()+index+count);
|
||||||
}
|
}
|
||||||
static std::vector<CTYPE > *Repeat(const value_type& value, int count) throw (std::out_of_range) {
|
static std::vector<CTYPE > *Repeat(const value_type& value, int count) throw (std::out_of_range) {
|
||||||
if (count < 0)
|
if (count < 0)
|
||||||
|
|
@ -303,24 +303,24 @@
|
||||||
return new std::vector<CTYPE >(count, value);
|
return new std::vector<CTYPE >(count, value);
|
||||||
}
|
}
|
||||||
void Reverse() {
|
void Reverse() {
|
||||||
std::reverse(self->begin(), self->end());
|
std::reverse($self->begin(), $self->end());
|
||||||
}
|
}
|
||||||
void Reverse(int index, int count) throw (std::out_of_range, std::invalid_argument) {
|
void Reverse(int index, int count) throw (std::out_of_range, std::invalid_argument) {
|
||||||
if (index < 0)
|
if (index < 0)
|
||||||
throw std::out_of_range("index");
|
throw std::out_of_range("index");
|
||||||
if (count < 0)
|
if (count < 0)
|
||||||
throw std::out_of_range("count");
|
throw std::out_of_range("count");
|
||||||
if (index >= (int)self->size()+1 || index+count > (int)self->size())
|
if (index >= (int)$self->size()+1 || index+count > (int)$self->size())
|
||||||
throw std::invalid_argument("invalid range");
|
throw std::invalid_argument("invalid range");
|
||||||
std::reverse(self->begin()+index, self->begin()+index+count);
|
std::reverse($self->begin()+index, $self->begin()+index+count);
|
||||||
}
|
}
|
||||||
// Takes a deep copy of the elements unlike ArrayList.SetRange
|
// Takes a deep copy of the elements unlike ArrayList.SetRange
|
||||||
void SetRange(int index, const std::vector<CTYPE >& values) throw (std::out_of_range) {
|
void SetRange(int index, const std::vector<CTYPE >& values) throw (std::out_of_range) {
|
||||||
if (index < 0)
|
if (index < 0)
|
||||||
throw std::out_of_range("index");
|
throw std::out_of_range("index");
|
||||||
if (index+values.size() > self->size())
|
if (index+values.size() > $self->size())
|
||||||
throw std::out_of_range("index");
|
throw std::out_of_range("index");
|
||||||
std::copy(values.begin(), values.end(), self->begin()+index);
|
std::copy(values.begin(), values.end(), $self->begin()+index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
%enddef
|
%enddef
|
||||||
|
|
@ -335,26 +335,26 @@ SWIG_STD_VECTOR_MINIMUM_INTERNAL(IEnumerable, const value_type&, CSTYPE, CTYPE)
|
||||||
%define SWIG_STD_VECTOR_EXTRA_OP_EQUALS_EQUALS(CSTYPE, CTYPE...)
|
%define SWIG_STD_VECTOR_EXTRA_OP_EQUALS_EQUALS(CSTYPE, CTYPE...)
|
||||||
%extend {
|
%extend {
|
||||||
bool Contains(const value_type& value) {
|
bool Contains(const value_type& value) {
|
||||||
return std::find(self->begin(), self->end(), value) != self->end();
|
return std::find($self->begin(), $self->end(), value) != $self->end();
|
||||||
}
|
}
|
||||||
int IndexOf(const value_type& value) {
|
int IndexOf(const value_type& value) {
|
||||||
int index = -1;
|
int index = -1;
|
||||||
std::vector<CTYPE >::iterator it = std::find(self->begin(), self->end(), value);
|
std::vector<CTYPE >::iterator it = std::find($self->begin(), $self->end(), value);
|
||||||
if (it != self->end())
|
if (it != $self->end())
|
||||||
index = (int)(it - self->begin());
|
index = (int)(it - $self->begin());
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
int LastIndexOf(const value_type& value) {
|
int LastIndexOf(const value_type& value) {
|
||||||
int index = -1;
|
int index = -1;
|
||||||
std::vector<CTYPE >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value);
|
std::vector<CTYPE >::reverse_iterator rit = std::find($self->rbegin(), $self->rend(), value);
|
||||||
if (rit != self->rend())
|
if (rit != $self->rend())
|
||||||
index = (int)(self->rend() - 1 - rit);
|
index = (int)($self->rend() - 1 - rit);
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
bool Remove(const value_type& value) {
|
bool Remove(const value_type& value) {
|
||||||
std::vector<CTYPE >::iterator it = std::find(self->begin(), self->end(), value);
|
std::vector<CTYPE >::iterator it = std::find($self->begin(), $self->end(), value);
|
||||||
if (it != self->end()) {
|
if (it != $self->end()) {
|
||||||
self->erase(it);
|
$self->erase(it);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue