Added proper each(), printing and other methods to map
and multimap. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9733 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
aa3c28e230
commit
c0a7c7e081
5 changed files with 104 additions and 50 deletions
|
|
@ -656,7 +656,23 @@ namespace swig
|
|||
swig::yield< Sequence::value_type >() );
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
Sequence* each()
|
||||
{
|
||||
if ( !rb_block_given_p() )
|
||||
rb_raise( rb_eArgError, "no block given");
|
||||
|
||||
VALUE r;
|
||||
Sequence::iterator i = self->begin();
|
||||
Sequence::iterator e = self->end();
|
||||
for ( ; i != e; ++i )
|
||||
{
|
||||
r = swig::from<Sequence::value_type>(*i);
|
||||
rb_yield(r);
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
%rename("reject!") reject_bang;
|
||||
%alias reject_bang "delete_if";
|
||||
|
|
@ -692,41 +708,6 @@ namespace swig
|
|||
return r;
|
||||
}
|
||||
|
||||
Sequence* each_with_index()
|
||||
{
|
||||
if ( !rb_block_given_p() )
|
||||
rb_raise( rb_eArgError, "no block given");
|
||||
|
||||
VALUE r, idx;
|
||||
Sequence::iterator i = self->begin();
|
||||
Sequence::iterator e = self->end();
|
||||
unsigned c = 0;
|
||||
for ( ; i != e; ++i, ++c )
|
||||
{
|
||||
r = swig::from<Sequence::value_type>(*i);
|
||||
idx = UINT2NUM( c );
|
||||
rb_yield_values(2, r, idx);
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
Sequence* each()
|
||||
{
|
||||
if ( !rb_block_given_p() )
|
||||
rb_raise( rb_eArgError, "no block given");
|
||||
|
||||
VALUE r;
|
||||
Sequence::iterator i = self->begin();
|
||||
Sequence::iterator e = self->end();
|
||||
for ( ; i != e; ++i )
|
||||
{
|
||||
r = swig::from<Sequence::value_type>(*i);
|
||||
rb_yield(r);
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
}
|
||||
%enddef
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue