Add support for slicing steps to Python STL wrappers (positive step only atm - these work the same as other Python sequences such as list)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12898 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
459e083b3d
commit
1b47ddf8f0
4 changed files with 178 additions and 47 deletions
|
|
@ -5,6 +5,45 @@ See the RELEASENOTES file for a summary of changes in each release.
|
|||
Version 2.0.5 (in progress)
|
||||
===========================
|
||||
|
||||
2012-01-20: wsfulton
|
||||
[Python] Add Python stepped slicing support to the STL wrappers (std::vector, std::list).
|
||||
Assigning to a slice, reading a slice and deleting a slice with steps now work.
|
||||
Positive steps only at the moment. For example:
|
||||
|
||||
%template(vector_i) std::vector<int>
|
||||
|
||||
vi = vector_i(range(10))
|
||||
print list(vi)
|
||||
vi[1:4:2] = [111, 333]
|
||||
print list(vi)
|
||||
del vi[3:10:3]
|
||||
print list(vi)
|
||||
|
||||
gives (same behaviour as native Python sequences such as list):
|
||||
|
||||
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
[0, 111, 2, 333, 4, 5, 6, 7, 8, 9]
|
||||
[0, 111, 2, 4, 5, 7, 8]
|
||||
|
||||
|
||||
2012-01-20: wsfulton
|
||||
[Python] Fix some indexing bugs in Python STL wrappers when the index is negative, eg:
|
||||
|
||||
%template(vector_i) std::vector<int>
|
||||
|
||||
iv=vector_i([0,1,2,3,4,5])
|
||||
iv[-7:]
|
||||
|
||||
now returns [0, 1, 2, 3, 4, 5] instead of [5].
|
||||
|
||||
vv[7:9] = [22,33]
|
||||
|
||||
now returns [0, 1, 2, 3, 4, 5, 22, 33] instead of "index out range" error.
|
||||
|
||||
Also fix some segfaults when replacing ranges, eg when il is a std::list wrapper:
|
||||
|
||||
il[0:2] = [11]
|
||||
|
||||
2012-01-17: wsfulton
|
||||
[Go] Fix forward class declaration within a class when used as a base.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue