Change typemap matching rules for the default type (SWIGTYPE) to follow template partial specialization type deduction. Fixes some containers of const pointers. SWIGTYPE*& typemps removed and replaced with SWIGTYPE *const&.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11958 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
b1c5940786
commit
bdb136d611
41 changed files with 477 additions and 122 deletions
|
|
@ -224,7 +224,7 @@ namespace std {
|
|||
bool empty() const;
|
||||
void clear();
|
||||
%extend {
|
||||
T& __getitem__(const K& key) throw (std::out_of_range) {
|
||||
const T& __getitem__(const K& key) throw (std::out_of_range) {
|
||||
std::map<K,T >::iterator i = self->find(key);
|
||||
if (i != self->end())
|
||||
return i->second;
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ namespace std {
|
|||
self->pop_back();
|
||||
return x;
|
||||
}
|
||||
T& ref(int i) throw (std::out_of_range) {
|
||||
const T& ref(int i) throw (std::out_of_range) {
|
||||
int size = int(self->size());
|
||||
if (i>=0 && i<size)
|
||||
return (*self)[i];
|
||||
|
|
|
|||
|
|
@ -448,4 +448,10 @@ typedef unsigned long SCM;
|
|||
$1 = SWIG_CheckState(res);
|
||||
}
|
||||
|
||||
/* Array reference typemaps */
|
||||
%apply SWIGTYPE & { SWIGTYPE ((&)[ANY]) }
|
||||
|
||||
/* const pointers */
|
||||
%apply SWIGTYPE * { SWIGTYPE *const }
|
||||
|
||||
/* typemaps.i ends here */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue