CGEM BOSS 6.6.5.i
BESIII Offline Software System
Loading...
Searching...
No Matches
bes::Collection Namespace Reference

Classes

struct  DeleteArray
 
struct  DeleteObject
 
struct  PtrLess
 

Functions

template<class C , class T >
C::difference_type findIndex (const C &container, const T &value)
 

Function Documentation

◆ findIndex()

template<class C , class T >
C::difference_type bes::Collection::findIndex ( const C & container,
const T & value )

Determines the offset of the first occurrence of a specified value in a container. This is not an STL-ish way to work; the use of std::find() and iterators instead of offsets is strongly preferred, even for vectors.

This function is supplied only as a migration aid for previous users of the Rogue Wave vector classes.

It is valid for any container type C for whose iterators operator- is defined. When a restriction in the STL supplied by RW for Sun is removed in the future (see below), it could be rewritten to work for all containers.

Definition at line 75 of file BesCollectionUtils.h.

75 {
76 typename C::const_iterator found
77 = std::find( container.begin(), container.end(), value );
78
79 // Were std::distance available, one would write: FIXME
80 //// return std::distance( container.begin(), found );
81
82 // Meanwhile, this should only compile for iterators for which it is efficient:
83 return found - container.begin();
84 }