ENH: improvements to labelRange const_iterator
- inherit from std::iterator to obtain the full STL typedefs, meaning that std::distance works and the following is now possible: labelRange range(100, 1500); scalarList list(range.begin(), range.end()); -- Note that this does not work (mismatched data-types): scalarList list = identity(12345); But this does, since the *iter promotes label to scalar: labelList ident = identity(12345); scalarList list(ident.begin(), ident.end()); It is however more than slightly wasteful to create a labelList just for initializing a scalarList. An alternative could be a a labelRange for the same purpose. labelRange ident = labelRange::identity(12345); scalarList list(ident.begin(), ident.end()); Or this scalarList list ( labelRange::null.begin(), labelRange::identity(12345).end() );
Showing
- applications/test/List/Test-List.C 39 additions, 1 deletionapplications/test/List/Test-List.C
- applications/test/labelRanges/Test-labelRanges.C 1 addition, 1 deletionapplications/test/labelRanges/Test-labelRanges.C
- src/OpenFOAM/primitives/ranges/labelRange/labelRange.C 2 additions, 0 deletionssrc/OpenFOAM/primitives/ranges/labelRange/labelRange.C
- src/OpenFOAM/primitives/ranges/labelRange/labelRange.H 35 additions, 10 deletionssrc/OpenFOAM/primitives/ranges/labelRange/labelRange.H
- src/OpenFOAM/primitives/ranges/labelRange/labelRangeI.H 19 additions, 6 deletionssrc/OpenFOAM/primitives/ranges/labelRange/labelRangeI.H
Please register or sign in to comment