Opened 12 years ago
Closed 12 years ago
#4621 closed Patches (fixed)
Feature Request: add some version of "type erasure" range/iterator
Reported by: | Owned by: | Neil Groves | |
---|---|---|---|
Milestone: | To Be Determined | Component: | range |
Version: | Boost 1.44.0 | Severity: | Not Applicable |
Keywords: | Cc: | muravev@… |
Description
Hi!
I successfully use B.Lambda/B.Function for closure functionality in my code and would like to do the same with complex iterators/ranges . I've successfully implemented such "any" iterator range on top of any_iterator ( thanks to http://thbecker.net/free_software_utilities/type_erasure_for_cpp_iterators/start_page.html ), see any_range.h . The common use case is as follows (my real code, select.cpp):
fe::range<Comp::MediaObj*> SelectedMediaObjs(MenuRegion& mn_rgn, const int_array& sel_arr) { return fe::make_any( sel_arr | fe::transformed(ToMOTransform(mn_rgn)) ); } fe::range<Comp::MediaObj*> SelectedMediaObjs(MEditorArea& edt_area) { return SelectedMediaObjs(edt_area.CurMenuRegion(), edt_area.SelArr()); } ... // somewhere else ... BOOST_FOREACH( Comp::MediaObj* obj, SelectedMediaObjs(edt_area) ) { res_mi = obj->MediaItem(); break; }
Attachments (1)
Change History (2)
by , 12 years ago
Attachment: | any_range.h added |
---|
comment:1 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
Implementation added to the trunk.