ATLAS Offline Software
Loading...
Searching...
No Matches
std Namespace Reference

STL namespace. More...

Namespaces

namespace  pmr

Classes

class  allocator
 STL class.
class  array
 STL class.
class  atomic
 STL class.
class  atomic_ref
 STL class.
class  auto_ptr
 STL class.
class  bad_alloc
 STL class.
class  bad_cast
 STL class.
class  bad_exception
 STL class.
class  bad_typeid
 STL class.
class  basic_fstream
 STL class.
class  basic_ifstream
 STL class.
class  basic_ios
 STL class.
class  basic_iostream
 STL class.
class  basic_istream
 STL class.
class  basic_istringstream
 STL class.
class  basic_ofstream
 STL class.
class  basic_ostream
 STL class.
class  basic_ostringstream
 STL class.
class  basic_string
 STL class.
class  basic_string_view
 STL class.
class  basic_stringstream
 STL class.
class  bitset
 STL class.
class  complex
 STL class.
struct  default_delete< CxxUtils::CRCTable >
class  deque
 STL class.
class  domain_error
 STL class.
class  error_category
 STL class.
class  error_code
 STL class.
class  error_condition
 STL class.
class  exception
 STL class.
struct  formatter< Guid::string >
struct  formatter< ISkipEventIdxSvc::EvtId >
class  forward_list
 STL class.
class  fstream
 STL class.
struct  hash< CP::SystematicSet >
 Specialization of std::hash for std::unordered_map. More...
struct  hash< FlavorTagInference::GNNOptions >
struct  hash< Guid >
struct  hash< HWIdentifier >
struct  hash< Identifier >
struct  hash< IdentifierHash >
struct  hash< ITkPixelOnlineId >
struct  hash< NswAsBuilt::pcbIdentifier_t >
struct  hash< NswAsBuilt::quadrupletIdentifier_t >
struct  hash< NswAsBuilt::stripIdentifier_t >
struct  hash< Trig::Combination >
 Hash function to support associative containers. More...
class  ifstream
 STL class.
class  invalid_argument
 STL class.
class  ios
 STL class.
class  ios_base
 STL class.
class  istream
 STL class.
class  istringstream
 STL class.
class  iterator_traits< TrigConf::ConstIter< V, T > >
class  jthread
 STL class.
class  length_error
 STL class.
class  list
 STL class.
class  lock_guard
 STL class.
class  logic_error
 STL class.
class  map
 STL class.
class  multimap
 STL class.
class  multiset
 STL class.
class  mutex
 STL class.
class  ofstream
 STL class.
class  ostream
 STL class.
class  ostringstream
 STL class.
class  out_of_range
 STL class.
class  overflow_error
 STL class.
class  pair
 STL class.
 Specialization for a pair containing an ElementLink, allowing for faster initialization. More...
class  priority_queue
 STL class.
class  queue
 STL class.
class  range_error
 STL class.
class  recursive_mutex
 STL class.
class  recursive_timed_mutex
 STL class.
class  runtime_error
 STL class.
class  set
 STL class.
class  shared_lock
 STL class.
class  shared_mutex
 STL class.
class  shared_ptr
 STL class.
class  shared_timed_mutex
 STL class.
class  smart_ptr
 STL class.
class  span
 STL class.
class  stack
 STL class.
class  string
 STL class.
class  string_view
 STL class.
class  stringstream
 STL class.
class  system_error
 STL class.
class  thread
 STL class.
class  timed_mutex
 STL class.
class  u16string
 STL class.
class  u16string_view
 STL class.
class  u32string
 STL class.
class  u32string_view
 STL class.
class  u8string
 STL class.
class  u8string_view
 STL class.
class  underflow_error
 STL class.
class  unique_lock
 STL class.
class  unique_ptr
 STL class.
class  unordered_map
 STL class.
class  unordered_multimap
 STL class.
class  unordered_multiset
 STL class.
class  unordered_set
 STL class.
class  valarray
 STL class.
class  vector
 STL class.
class  weak_ptr
 STL class.
class  wfstream
 STL class.
class  wifstream
 STL class.
class  wios
 STL class.
class  wistream
 STL class.
class  wistringstream
 STL class.
class  wofstream
 STL class.
class  wostream
 STL class.
class  wostringstream
 STL class.
class  wstring
 STL class.
class  wstring_view
 STL class.
class  wstringstream
 STL class.

Functions

template<class DVL, class T>
DataModel_detail::iterator< DVL > remove (typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, const T &value)
 Specialization of remove for DataVector/List.
template<class DVL, class Predicate>
DataModel_detail::iterator< DVL > remove_if (typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, Predicate pred)
 Specialization of remove_if for DataVector/List.
template<class DVL, class T>
std::reverse_iterator< DataModel_detail::iterator< DVL > > remove (typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const T &value)
 Specialization of remove for DataVector/List.
template<class DVL, class Predicate>
std::reverse_iterator< DataModel_detail::iterator< DVL > > remove_if (typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, Predicate pred)
 Specialization of remove_if for DataVector/List.
template<class DVL>
DataModel_detail::iterator< DVL > unique (typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
 Specialization of unique for DataVector/List.
template<class DVL, class BinaryPredicate>
DataModel_detail::iterator< DVL > unique (typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, BinaryPredicate pred)
 Specialization of unique for DataVector/List.
template<class DVL>
std::reverse_iterator< DataModel_detail::iterator< DVL > > unique (typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end)
 Specialization of unique for DataVector/List.
template<class DVL, class BinaryPredicate>
std::reverse_iterator< DataModel_detail::iterator< DVL > > unique (typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, BinaryPredicate pred)
 Specialization of unique for DataVector/List.
template<class DVL>
void rotate (typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > mid, typename DataModel_detail::iterator< DVL > end)
 Specialization of rotate for DataVector/List.
template<class DVL>
void rotate (typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > mid, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end)
 Specialization of rotate for DataVector/List.
template<class DVL>
void reverse (typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
 Specialization of reverse for DataVector/List.
template<class DVL>
void reverse (typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end)
 Specialization of reverse for DataVector/List.
template<class DVL, class Predicate>
DataModel_detail::iterator< DVL > partition (typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, Predicate pred)
 Specialization of partition for DataVector/List.
template<class DVL, class Predicate>
std::reverse_iterator< DataModel_detail::iterator< DVL > > partition (typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, Predicate pred)
 Specialization of partition for DataVector/List.
template<class DVL, class Predicate>
DataModel_detail::iterator< DVL > stable_partition (typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, Predicate pred)
 Specialization of stable_partition for DataVector/List.
template<class DVL, class Predicate>
std::reverse_iterator< DataModel_detail::iterator< DVL > > stable_partition (typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, Predicate pred)
 Specialization of stable_partition for DataVector/List.
template<class DVL>
void inplace_merge (typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > mid, typename DataModel_detail::iterator< DVL > end)
 Specialization of inplace_merge for DataVector/List.
template<class DVL, class Compare>
void inplace_merge (typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > mid, typename DataModel_detail::iterator< DVL > end, Compare comp)
 Specialization of inplace_merge for DataVector/List.
template<class DVL>
void inplace_merge (typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > mid, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end)
 Specialization of inplace_merge for DataVector/List.
template<class DVL, class Compare>
void inplace_merge (typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > mid, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, Compare comp)
 Specialization of inplace_merge for DataVector/List.
template<class DVL>
void sort (typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
 Specialization of sort for DataVector/List.
template<class DVL, class Compare>
void sort (typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, Compare comp)
 Specialization of sort for DataVector/List.
template<class DVL>
void sort (typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end)
 Specialization of sort for DataVector/List.
template<class DVL, class Compare>
void sort (typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
 Specialization of sort for DataVector/List.
template<class DVL>
void stable_sort (DataModel_detail::iterator< DVL > beg, DataModel_detail::iterator< DVL > end)
 Specialization of stable_sort for DataVector/List.
template<class DVL, class Compare>
void stable_sort (DataModel_detail::iterator< DVL > beg, DataModel_detail::iterator< DVL > end, Compare comp)
 Specialization of stable_sort for DataVector/List.
template<class DVL>
void stable_sort (std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, std::reverse_iterator< DataModel_detail::iterator< DVL > > end)
 Specialization of stable_sort for DataVector/List.
template<class DVL, class Compare>
void stable_sort (std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, std::reverse_iterator< DataModel_detail::iterator< DVL > > end, Compare comp)
 Specialization of stable_sort for DataVector/List.
template<class DVL>
void partial_sort (DataModel_detail::iterator< DVL > beg, DataModel_detail::iterator< DVL > mid, DataModel_detail::iterator< DVL > end)
 Specialization of partial_sort for DataVector/List.
template<class DVL, class Compare>
void partial_sort (DataModel_detail::iterator< DVL > beg, DataModel_detail::iterator< DVL > mid, DataModel_detail::iterator< DVL > end, Compare comp)
 Specialization of partial_sort for DataVector/List.
template<class DVL>
void partial_sort (std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, std::reverse_iterator< DataModel_detail::iterator< DVL > > mid, std::reverse_iterator< DataModel_detail::iterator< DVL > > end)
 Specialization of partial_sort for DataVector/List.
template<class DVL, class Compare>
void partial_sort (std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, std::reverse_iterator< DataModel_detail::iterator< DVL > > mid, std::reverse_iterator< DataModel_detail::iterator< DVL > > end, Compare comp)
 Specialization of partial_sort for DataVector/List.
template<class DVL, class UniformRandom>
void shuffle (typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, UniformRandom &g)
 Specialization of shuffle for DataVector/List.
template<class DVL, class UniformRandom>
void shuffle (typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, UniformRandom &g)
 Specialization of shuffle for DataVector/List.
template<class DV>
void iter_swap (typename DataModel_detail::iterator< DV > a, typename DataModel_detail::iterator< DV > b)
 Specialization of iter_swap for DataVector/DataList.
template<class DV>
void iter_swap (typename std::reverse_iterator< DataModel_detail::iterator< DV > > a, typename std::reverse_iterator< DataModel_detail::iterator< DV > > b)
 Specialization of iter_swap for DataVector/DataList.
template<class DV>
DataModel_detail::iterator< DV > swap_ranges (DataModel_detail::iterator< DV > first1, DataModel_detail::iterator< DV > last1, DataModel_detail::iterator< DV > first2)
 Specialization of swap_ranges for DataVector/DataList.
template<class DV>
std::reverse_iterator< DataModel_detail::iterator< DV > > swap_ranges (std::reverse_iterator< DataModel_detail::iterator< DV > > first1, std::reverse_iterator< DataModel_detail::iterator< DV > > last1, std::reverse_iterator< DataModel_detail::iterator< DV > > first2)
 Specialization of swap_ranges for DataVector/DataList.
template<typename DOBJ>
void swap (ElementLinkVector< DOBJ > &lhs, ElementLinkVector< DOBJ > &rhs)
ostreamoperator<< (ostream &s, const SG::VarHandleKey &m)
void __throw_bad_array_new_length ()
ostreamoperator<< (ostream &s, const SG::VarHandleKeyArray &m)
template<class T_container, class T_Func>
std::size_t erase_if (T_container &container, T_Func pred)
template<typename T>
std::ostream & operator<< (std::ostream &os, const std::set< T > &s)
ostreamoperator<< (ostream &s, const Gaudi::Parsers::VecDict_t &vecDict)

Detailed Description

STL namespace.

Iterator traits for the above iterator.

Define a hash functional.

Set a delete policy for unique_ptr<CRCTable>.

This allows us to use an incomplete declaration here, and define the class only in the cxx file.

note that the std::iterator will be deprecated in C++17

Function Documentation

◆ __throw_bad_array_new_length()

void std::__throw_bad_array_new_length ( )

Definition at line 30 of file excabort.cxx.

31{
32 std::abort();
33}

◆ erase_if()

template<class T_container, class T_Func>
std::size_t std::erase_if ( T_container & container,
T_Func pred )
inline

Definition at line 29 of file TruthParticleHitCountAlg.cxx.

29 {
30 std::size_t orig_size = container->size();
31 for ( typename T_container::iterator iter = container.begin();
32 iter != container.end();
33 /* increment only if nothing was erased! */ ) {
34 if (pred(*iter)) {
35 iter = erase(iter);
36 }
37 else {
38 ++iter;
39 }
40 }
41 return orig_size - container->size();
42 }

◆ inplace_merge() [1/4]

template<class DVL>
void std::inplace_merge ( typename DataModel_detail::iterator< DVL > beg,
typename DataModel_detail::iterator< DVL > mid,
typename DataModel_detail::iterator< DVL > end )

Specialization of inplace_merge for DataVector/List.

Parameters
begThe start iterator for the merge operation.
midDivider between the two sequences to be merged.
endThe end iterator for the merge operation.

beg, mid, and end should both be iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 442 of file DVL_algorithms.h.

445{
446 std::inplace_merge (beg.base(), mid.base(), end.base());
447 DataModel_detail::resortAux (beg, end);
448}
void inplace_merge(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > mid, typename DataModel_detail::iterator< DVL > end)
Specialization of inplace_merge for DataVector/List.

◆ inplace_merge() [2/4]

template<class DVL, class Compare>
void std::inplace_merge ( typename DataModel_detail::iterator< DVL > beg,
typename DataModel_detail::iterator< DVL > mid,
typename DataModel_detail::iterator< DVL > end,
Compare comp )

Specialization of inplace_merge for DataVector/List.

Parameters
begThe start iterator for the merge operation.
midDivider between the two sequences to be merged.
endThe end iterator for the merge operation.
compThe comparison object.

beg, mid, and end should both be iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 466 of file DVL_algorithms.h.

470{
471 std::inplace_merge (beg.base(), mid.base(), end.base(),
472 typename DataModel_detail::Compwrapper<DVL, Compare>(comp));
473 DataModel_detail::resortAux (beg, end);
474}

◆ inplace_merge() [3/4]

template<class DVL>
void std::inplace_merge ( typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > mid,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end )

Specialization of inplace_merge for DataVector/List.

Parameters
begThe start iterator for the merge operation.
midDivider between the two sequences to be merged.
endThe end iterator for the merge operation.

beg, mid, and end should both be iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 491 of file DVL_algorithms.h.

494{
495 typedef typename DVL::BaseContainer::reverse_iterator ri;
496 std::inplace_merge (ri (beg.base().base()),
497 ri (mid.base().base()),
498 ri (end.base().base()));
499 DataModel_detail::resortAux (beg, end);
500}

◆ inplace_merge() [4/4]

template<class DVL, class Compare>
void std::inplace_merge ( typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > mid,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end,
Compare comp )

Specialization of inplace_merge for DataVector/List.

Parameters
begThe start iterator for the merge operation.
midDivider between the two sequences to be merged.
endThe end iterator for the merge operation.
compThe comparison object.

beg, mid, and end should both be iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 518 of file DVL_algorithms.h.

522{
523 typedef typename DVL::BaseContainer::reverse_iterator ri;
524 std::inplace_merge (ri (beg.base().base()),
525 ri (mid.base().base()),
526 ri (end.base().base()),
527 typename DataModel_detail::Compwrapper<DVL, Compare>(comp));
528 DataModel_detail::resortAux (beg, end);
529}

◆ iter_swap() [1/2]

template<class DV>
void std::iter_swap ( typename DataModel_detail::iterator< DV > a,
typename DataModel_detail::iterator< DV > b )

Specialization of iter_swap for DataVector/DataList.

Parameters
aFirst iterator for the swap.
bSecond iterator for the swap.

Swaps *a with *b, respecting the DataVector/List ownership rules.

Definition at line 36 of file DVL_iter_swap.h.

38{
39 DV::iter_swap (a, b);
40}
TList * a

◆ iter_swap() [2/2]

template<class DV>
void std::iter_swap ( typename std::reverse_iterator< DataModel_detail::iterator< DV > > a,
typename std::reverse_iterator< DataModel_detail::iterator< DV > > b )

Specialization of iter_swap for DataVector/DataList.

Parameters
aFirst reverse_iterator for the swap.
bSecond reverse_iterator for the swap.

Swaps *a with *b, respecting the DataVector/List ownership rules.

Definition at line 52 of file DVL_iter_swap.h.

54{
57 --ai;
58 --bi;
59 DV::iter_swap (ai, bi);
60}
(Non-const) Iterator class for DataVector/DataList.

◆ operator<<() [1/4]

ostream & std::operator<< ( ostream & s,
const Gaudi::Parsers::VecDict_t & vecDict )

Definition at line 790 of file TrigEgammaMonitorBaseAlgorithm.cxx.

791 {
792 s << '{';
793 for ( const auto& dict : vecDict ) {
794 Gaudi::Utils::toStream( dict, s );
795 }
796 s << '}';
797 return s;
798 }
std::ostream & toStream(const SG::VarHandleKeyArray &v, std::ostream &o)
Gaudi function used to convert a property to a string.

◆ operator<<() [2/4]

ostream & std::operator<< ( ostream & s,
const SG::VarHandleKey & m )

Definition at line 158 of file AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx.

158 {
159 // s << "'" << m.objKey() << "'";
160 s << "'" << m.key() << "'";
161 return s;
162 }

◆ operator<<() [3/4]

ostream & std::operator<< ( ostream & s,
const SG::VarHandleKeyArray & m )

Definition at line 60 of file StoreGate/src/VarHandleKeyArray.cxx.

60 {
61 s << "[" << m.toString() << "]";
62 return s;
63 }

◆ operator<<() [4/4]

template<typename T>
std::ostream & std::operator<< ( std::ostream & os,
const std::set< T > & s )

Definition at line 44 of file NavigationTesterAlg.cxx.

45 {
46 os << "{";
47 for (auto itr = s.begin(); itr != s.end(); ++itr)
48 {
49 if (itr != s.begin())
50 os << ", ";
51 os << *itr;
52 }
53 return os << "}";
54 }

◆ partial_sort() [1/4]

template<class DVL>
void std::partial_sort ( DataModel_detail::iterator< DVL > beg,
DataModel_detail::iterator< DVL > mid,
DataModel_detail::iterator< DVL > end )

Specialization of partial_sort for DataVector/List.

Parameters
begThe start iterator for the sort.
midThe middle iterator for the sort.
endThe end iterator for the sort.

beg, mid, and end should both be iterators from the same DataVector/List. This performs the sort in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 734 of file DVL_algorithms.h.

737{
738 // Wrap the default comparison object,
739 // in case someone's overridden operator< for pointers.
740 typedef std::less<typename DVL::BaseContainer::value_type> less;
741 std::partial_sort (beg.base(), mid.base(), end.base(),
742 DataModel_detail::Compwrapper<DVL, less> (less()));
743 DataModel_detail::resortAux (beg, end);
744}
void partial_sort(DataModel_detail::iterator< DVL > beg, DataModel_detail::iterator< DVL > mid, DataModel_detail::iterator< DVL > end)
Specialization of partial_sort for DataVector/List.

◆ partial_sort() [2/4]

template<class DVL, class Compare>
void std::partial_sort ( DataModel_detail::iterator< DVL > beg,
DataModel_detail::iterator< DVL > mid,
DataModel_detail::iterator< DVL > end,
Compare comp )

Specialization of partial_sort for DataVector/List.

Parameters
begThe start iterator for the sort.
midThe middle iterator for the sort.
endThe end iterator for the sort.

beg, mid, and end should both be iterators from the same DataVector/List. This performs the sort in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 759 of file DVL_algorithms.h.

763{
764 std::partial_sort (beg.base(), mid.base(), end.base(),
765 DataModel_detail::Compwrapper<DVL, Compare> (comp));
766 DataModel_detail::resortAux (beg, end);
767}

◆ partial_sort() [3/4]

template<class DVL>
void std::partial_sort ( std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
std::reverse_iterator< DataModel_detail::iterator< DVL > > mid,
std::reverse_iterator< DataModel_detail::iterator< DVL > > end )

Specialization of partial_sort for DataVector/List.

Parameters
begThe start reverse_iterator for the sort.
midThe middle reverse_iterator for the sort.
endThe end reverse_iterator for the sort.

beg, mid, and end should both be reverse_iterators from the same DataVector/List. This performs the sort in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 782 of file DVL_algorithms.h.

785{
786 typedef typename DVL::BaseContainer::reverse_iterator ri;
787 // Wrap the default comparison object,
788 // in case someone's overridden operator< for pointers.
789 typedef std::less<typename DVL::BaseContainer::value_type> less;
790 std::partial_sort (ri (beg.base().base()),
791 ri (mid.base().base()),
792 ri (end.base().base()),
793 typename DataModel_detail::Compwrapper<DVL, less>
794 (less()));
795 DataModel_detail::resortAux (beg, end);
796}

◆ partial_sort() [4/4]

template<class DVL, class Compare>
void std::partial_sort ( std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
std::reverse_iterator< DataModel_detail::iterator< DVL > > mid,
std::reverse_iterator< DataModel_detail::iterator< DVL > > end,
Compare comp )

Specialization of partial_sort for DataVector/List.

Parameters
begThe start reverse_iterator for the sort.
midThe middle reverse_iterator for the sort.
endThe end reverse_iterator for the sort.

beg, mid, and end should both be reverse_iterators from the same DataVector/List. This performs the sort in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 811 of file DVL_algorithms.h.

815{
816 typedef typename DVL::BaseContainer::reverse_iterator ri;
817 std::partial_sort (ri (beg.base().base()),
818 ri (mid.base().base()),
819 ri (end.base().base()),
820 typename DataModel_detail::Compwrapper<DVL, Compare>
821 (comp));
822 DataModel_detail::resortAux (beg, end);
823}

◆ partition() [1/2]

template<class DVL, class Predicate>
DataModel_detail::iterator< DVL > std::partition ( typename DataModel_detail::iterator< DVL > beg,
typename DataModel_detail::iterator< DVL > end,
Predicate pred )

Specialization of partition for DataVector/List.

Parameters
begThe start iterator for the partition operation.
endThe end iterator for the partition operation.
predThe predicate for the partition.

beg and end should both be iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 324 of file DVL_algorithms.h.

327{
329 (std::partition (beg.base(), end.base(),
330 DataModel_detail::Predwrapper<DVL, Predicate> (pred)),
331 beg.container());
332 DataModel_detail::resortAux (beg, end);
333 return ret;
334}
DataModel_detail::iterator< DVL > partition(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, Predicate pred)
Specialization of partition for DataVector/List.

◆ partition() [2/2]

template<class DVL, class Predicate>
std::reverse_iterator< DataModel_detail::iterator< DVL > > std::partition ( typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end,
Predicate pred )

Specialization of partition for DataVector/List.

Parameters
begThe start reverse_iterator for the partition operation.
endThe end reverse_iterator for the partition operation.
predThe predicate for the partition.

beg and end should both be reverse_iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 351 of file DVL_algorithms.h.

354{
356 typedef typename DVL::BaseContainer::reverse_iterator ri;
357 typedef typename DataModel_detail::Predwrapper<DVL, Predicate> pwrap_t;
358 std::reverse_iterator<Iterator> ret
359 (Iterator (std::partition (ri(beg.base().base()),
360 ri(end.base().base()),
361 pwrap_t (pred)).base(),
362 beg.base().container()));
363 DataModel_detail::resortAux (beg, end);
364 return ret;
365}
std::string base
Definition hcg.cxx:81

◆ remove() [1/2]

template<class DVL, class T>
DataModel_detail::iterator< DVL > std::remove ( typename DataModel_detail::iterator< DVL > beg,
typename DataModel_detail::iterator< DVL > end,
const T & value )

Specialization of remove for DataVector/List.

Parameters
begThe start iterator for the remove.
endThe end iterator for the remove.
valueThe value to remove.

beg and end should both be iterators from the same DataVector/List. This performs the remove in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 49 of file DVL_algorithms.h.

52{
53 // Implemented with iter_swap, no extra index manipulation needed.
54 return DataModel_detail::dvl_remove (beg, end, value);
55}

◆ remove() [2/2]

template<class DVL, class T>
std::reverse_iterator< DataModel_detail::iterator< DVL > > std::remove ( typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end,
const T & value )

Specialization of remove for DataVector/List.

Parameters
begThe start reverse_iterator for the remove.
endThe end reverse_iterator for the remove.
valueThe value to remove.

beg and end should both be reverseIterators from the same DataVector/List. This performs the remove in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 92 of file DVL_algorithms.h.

95{
96 // Implemented with iter_swap, no extra index manipulation needed.
97 return DataModel_detail::dvl_remove (beg, end, value);
98}

◆ remove_if() [1/2]

template<class DVL, class Predicate>
DataModel_detail::iterator< DVL > std::remove_if ( typename DataModel_detail::iterator< DVL > beg,
typename DataModel_detail::iterator< DVL > end,
Predicate pred )

Specialization of remove_if for DataVector/List.

Parameters
begThe start iterator for the remove.
endThe end iterator for the remove.
predThe predicate for the removal.

beg and end should both be iterators from the same DataVector/List. This performs the remove in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 70 of file DVL_algorithms.h.

73{
74 // Implemented with iter_swap, no extra index manipulation needed.
75 return DataModel_detail::dvl_remove_if (beg, end, pred);
76}

◆ remove_if() [2/2]

template<class DVL, class Predicate>
std::reverse_iterator< DataModel_detail::iterator< DVL > > std::remove_if ( typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end,
Predicate pred )

Specialization of remove_if for DataVector/List.

Parameters
begThe start reverse_iterator for the remove.
endThe end reverse_iterator for the remove.
predThe predicate for the removal.

beg and end should both be reverse_iterators from the same DataVector/List. This performs the remove in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 114 of file DVL_algorithms.h.

117{
118 // Implemented with iter_swap, no extra index manipulation needed.
119 return DataModel_detail::dvl_remove_if (beg, end, pred);
120}

◆ reverse() [1/2]

template<class DVL>
void std::reverse ( typename DataModel_detail::iterator< DVL > beg,
typename DataModel_detail::iterator< DVL > end )

Specialization of reverse for DataVector/List.

Parameters
begThe start iterator for the reverse operation.
endThe end iterator for the reverse operation.

beg and end should both be iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 280 of file DVL_algorithms.h.

282{
283 std::reverse (beg.base(), end.base());
284 DataModel_detail::resortAux (beg, end);
285}
void reverse(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of reverse for DataVector/List.

◆ reverse() [2/2]

template<class DVL>
void std::reverse ( typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end )

Specialization of reverse for DataVector/List.

Parameters
begThe start reverse_iterator for the reverse operation.
endThe end reverse_iterator for the reverse operation.

beg and end should both be reverse_iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 301 of file DVL_algorithms.h.

303{
304 typedef typename DVL::BaseContainer::reverse_iterator ri;
305 std::reverse (ri(beg.base().base()), ri(end.base().base()));
306 DataModel_detail::resortAux (beg, end);
307}

◆ rotate() [1/2]

template<class DVL>
void std::rotate ( typename DataModel_detail::iterator< DVL > beg,
typename DataModel_detail::iterator< DVL > mid,
typename DataModel_detail::iterator< DVL > end )

Specialization of rotate for DataVector/List.

Parameters
begThe start iterator for the rotate operation.
midThe middle iterator for the rotate operation.
endThe end iterator for the rotate operation.

beg and end should both be iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 221 of file DVL_algorithms.h.

224{
225 std::rotate (beg.base(), mid.base(), end.base());
226 DataModel_detail::resortAux (beg, end);
227}
void rotate(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > mid, typename DataModel_detail::iterator< DVL > end)
Specialization of rotate for DataVector/List.

◆ rotate() [2/2]

template<class DVL>
void std::rotate ( typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > mid,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end )

Specialization of rotate for DataVector/List.

Parameters
begThe start reverse_iterator for the rotate operation.
midThe middle reverse_iterator for the rotate operation.
endThe end reverse_iterator for the rotate operation.

beg and end should both be reverse_iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 244 of file DVL_algorithms.h.

247{
248 typedef typename DVL::BaseContainer::reverse_iterator ri;
249 std::rotate (ri(beg.base().base()),
250 ri(mid.base().base()),
251 ri(end.base().base()));
252 DataModel_detail::resortAux (beg, end);
253}

◆ shuffle() [1/2]

template<class DVL, class UniformRandom>
void std::shuffle ( typename DataModel_detail::iterator< DVL > beg,
typename DataModel_detail::iterator< DVL > end,
UniformRandom & g )

Specialization of shuffle for DataVector/List.

Parameters
begThe start iterator for the shuffle operation.
endThe end iterator for the shuffle operation.
gThe uniform random number generator.

beg and end should both be iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 839 of file DVL_algorithms.h.

842{
843 std::shuffle (beg.base(), end.base(), g);
844 DataModel_detail::resortAux (beg, end);
845}
void shuffle(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, UniformRandom &g)
Specialization of shuffle for DataVector/List.

◆ shuffle() [2/2]

template<class DVL, class UniformRandom>
void std::shuffle ( typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end,
UniformRandom & g )

Specialization of shuffle for DataVector/List.

Parameters
begThe start reverse_iterator for the shuffle operation.
endThe end reverse_iterator for the shuffle operation.
gThe uniform random number generator.

beg and end should both be reverse_iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 862 of file DVL_algorithms.h.

866{
867 typedef typename DVL::BaseContainer::reverse_iterator ri;
868 std::shuffle (ri(beg.base().base()),
869 ri(end.base().base()),
870 g);
871 DataModel_detail::resortAux (beg, end);
872}

◆ sort() [1/4]

template<class DVL>
void std::sort ( typename DataModel_detail::iterator< DVL > beg,
typename DataModel_detail::iterator< DVL > end )

Specialization of sort for DataVector/List.

Parameters
begThe start iterator for the sort.
endThe end iterator for the sort.

beg and end should both be iterators from the same DataVector/List. This performs the sort in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 554 of file DVL_algorithms.h.

556{
557 // Wrap the default comparison object,
558 // in case someone's overridden operator< for pointers.
559 typedef std::less<typename DVL::BaseContainer::value_type> less;
560 std::sort (beg.base(), end.base(),
561 typename DataModel_detail::Compwrapper<DVL, less> (less()));
562 DataModel_detail::resortAux (beg, end);
563}
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.

◆ sort() [2/4]

template<class DVL, class Compare>
void std::sort ( typename DataModel_detail::iterator< DVL > beg,
typename DataModel_detail::iterator< DVL > end,
Compare comp )

Specialization of sort for DataVector/List.

Parameters
begThe start iterator for the sort.
endThe end iterator for the sort.
compThe comparison functional object.

beg and end should both be iterators from the same DataVector/List. This performs the sort in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 577 of file DVL_algorithms.h.

580{
581 std::sort (beg.base(), end.base(),
582 typename DataModel_detail::Compwrapper<DVL, Compare> (comp));
583 DataModel_detail::resortAux (beg, end);
584}

◆ sort() [3/4]

template<class DVL>
void std::sort ( typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end )

Specialization of sort for DataVector/List.

Parameters
begThe start reverse_iterator for the sort.
endThe end reverse_iterator for the sort.

beg and end should both be reverse iterators from the same DataVector/List. This performs the sort in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 598 of file DVL_algorithms.h.

600{
601 typedef typename DVL::BaseContainer::reverse_iterator ri;
602 // Wrap the default comparison object,
603 // in case someone's overridden operator< for pointers.
604 typedef std::less<typename DVL::BaseContainer::value_type> less;
605 std::sort (ri (beg.base().base()), ri (end.base().base()),
606 typename DataModel_detail::Compwrapper<DVL, less> (less()));
607 DataModel_detail::resortAux (beg, end);
608}

◆ sort() [4/4]

template<class DVL, class Compare>
void std::sort ( typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end,
const Compare & comp )

Specialization of sort for DataVector/List.

Parameters
begThe start reverse_iterator for the sort.
endThe end reverse_iterator for the sort.
compThe comparison functional object.

beg and end should both be reverse iterators from the same DataVector/List. This performs the sort in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 623 of file DVL_algorithms.h.

626{
627 typedef typename DVL::BaseContainer::reverse_iterator ri;
628 std::sort (ri (beg.base().base()), ri (end.base().base()),
629 typename DataModel_detail::Compwrapper<DVL, Compare> (comp));
630 DataModel_detail::resortAux (beg, end);
631}

◆ stable_partition() [1/2]

template<class DVL, class Predicate>
DataModel_detail::iterator< DVL > std::stable_partition ( typename DataModel_detail::iterator< DVL > beg,
typename DataModel_detail::iterator< DVL > end,
Predicate pred )

Specialization of stable_partition for DataVector/List.

Parameters
begThe start iterator for the partition operation.
endThe end iterator for the partition operation.
predThe predicate for the partition.

beg and end should both be iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 382 of file DVL_algorithms.h.

385{
387 (std::stable_partition (beg.base(), end.base(),
388 DataModel_detail::Predwrapper<DVL, Predicate>
389 (pred)),
390 beg.container());
391 DataModel_detail::resortAux (beg, end);
392 return ret;
393}
DataModel_detail::iterator< DVL > stable_partition(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, Predicate pred)
Specialization of stable_partition for DataVector/List.

◆ stable_partition() [2/2]

template<class DVL, class Predicate>
std::reverse_iterator< DataModel_detail::iterator< DVL > > std::stable_partition ( typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end,
Predicate pred )

Specialization of stable_partition for DataVector/List.

Parameters
begThe start reverse_iterator for the partition operation.
endThe end reverse_iterator for the partition operation.
predThe predicate for the partition.

beg and end should both be reverse_iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 410 of file DVL_algorithms.h.

414{
416 typedef typename DVL::BaseContainer::reverse_iterator ri;
417 typedef typename DataModel_detail::Predwrapper<DVL, Predicate> pwrap_t;
418 std::reverse_iterator<Iterator> ret
419 (Iterator (std::stable_partition (ri(beg.base().base()),
420 ri(end.base().base()),
421 pwrap_t (pred)).base(),
422 beg.base().container()));
423 DataModel_detail::resortAux (beg, end);
424 return ret;
425}

◆ stable_sort() [1/4]

template<class DVL>
void std::stable_sort ( DataModel_detail::iterator< DVL > beg,
DataModel_detail::iterator< DVL > end )

Specialization of stable_sort for DataVector/List.

Parameters
begThe start iterator for the sort.
endThe end iterator for the sort.

beg and end should both be iterators from the same DataVector/List. This performs the sort in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 644 of file DVL_algorithms.h.

646{
647 // Wrap the default comparison object,
648 // in case someone's overridden operator< for pointers.
649 typedef std::less<typename DVL::BaseContainer::value_type> less;
650 std::stable_sort (beg.base(), end.base(),
651 DataModel_detail::Compwrapper<DVL, less> (less()));
652 DataModel_detail::resortAux (beg, end);
653}
void stable_sort(DataModel_detail::iterator< DVL > beg, DataModel_detail::iterator< DVL > end)
Specialization of stable_sort for DataVector/List.

◆ stable_sort() [2/4]

template<class DVL, class Compare>
void std::stable_sort ( DataModel_detail::iterator< DVL > beg,
DataModel_detail::iterator< DVL > end,
Compare comp )

Specialization of stable_sort for DataVector/List.

Parameters
begThe start iterator for the sort.
endThe end iterator for the sort.

beg and end should both be iterators from the same DataVector/List. This performs the sort in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 666 of file DVL_algorithms.h.

669{
670 std::stable_sort (beg.base(), end.base(),
671 DataModel_detail::Compwrapper<DVL, Compare> (comp));
672 DataModel_detail::resortAux (beg, end);
673}

◆ stable_sort() [3/4]

template<class DVL>
void std::stable_sort ( std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
std::reverse_iterator< DataModel_detail::iterator< DVL > > end )

Specialization of stable_sort for DataVector/List.

Parameters
begThe start reverse_iterator for the sort.
endThe end reverse_iterator for the sort.

beg and end should both be reverse_iterators from the same DataVector/List. This performs the sort in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 687 of file DVL_algorithms.h.

689{
690 typedef typename DVL::BaseContainer::reverse_iterator ri;
691 // Wrap the default comparison object,
692 // in case someone's overridden operator< for pointers.
693 typedef std::less<typename DVL::BaseContainer::value_type> less;
694 std::stable_sort (ri (beg.base().base()), ri (end.base().base()),
695 typename DataModel_detail::Compwrapper<DVL, less> (less()));
696 DataModel_detail::resortAux (beg, end);
697}

◆ stable_sort() [4/4]

template<class DVL, class Compare>
void std::stable_sort ( std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
std::reverse_iterator< DataModel_detail::iterator< DVL > > end,
Compare comp )

Specialization of stable_sort for DataVector/List.

Parameters
begThe start reverse_iterator for the sort.
endThe end reverse_iterator for the sort.

beg and end should both be reverse_iterators from the same DataVector/List. This performs the sort in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 711 of file DVL_algorithms.h.

714{
715 typedef typename DVL::BaseContainer::reverse_iterator ri;
716 std::stable_sort (ri (beg.base().base()), ri (end.base().base()),
717 typename DataModel_detail::Compwrapper<DVL, Compare>(comp));
718 DataModel_detail::resortAux (beg, end);
719}

◆ swap()

template<typename DOBJ>
void std::swap ( ElementLinkVector< DOBJ > & lhs,
ElementLinkVector< DOBJ > & rhs )

Definition at line 485 of file AthLinks/ElementLinkVector.h.

486 {
487#ifdef __ELVDEBUG
488 std::cout << "std::swap called for lhs " << std::hex << &lhs
489 << " rhs " << &rhs << std::dec << std::endl;
490#endif
491 lhs.swap(rhs);
492}
void swap(ElemLinkVec &vec)

◆ swap_ranges() [1/2]

template<class DV>
DataModel_detail::iterator< DV > std::swap_ranges ( DataModel_detail::iterator< DV > first1,
DataModel_detail::iterator< DV > last1,
DataModel_detail::iterator< DV > first2 )

Specialization of swap_ranges for DataVector/DataList.

Parameters
first1Start of the first range.
lastEnd of the first range.
first2Start of the second range.

Swap, element-by-element, the two ranges [first1, last) and [first2, first2+(last-first1)).

Definition at line 74 of file DVL_iter_swap.h.

77{
78
79 for (; first1 != last1; ++first1, ++first2)
80 std::iter_swap(first1, first2);
81 return first2;
82}
void iter_swap(typename DataModel_detail::iterator< DV > a, typename DataModel_detail::iterator< DV > b)
Specialization of iter_swap for DataVector/DataList.

◆ swap_ranges() [2/2]

template<class DV>
std::reverse_iterator< DataModel_detail::iterator< DV > > std::swap_ranges ( std::reverse_iterator< DataModel_detail::iterator< DV > > first1,
std::reverse_iterator< DataModel_detail::iterator< DV > > last1,
std::reverse_iterator< DataModel_detail::iterator< DV > > first2 )

Specialization of swap_ranges for DataVector/DataList.

Parameters
first1Start of the first range.
lastEnd of the first range.
first2Start of the second range.

Swap, element-by-element, the two ranges [first1, last) and [first2, first2+(last-first1)).

Definition at line 96 of file DVL_iter_swap.h.

99{
100
101 for (; first1 != last1; ++first1, ++first2)
102 std::iter_swap(first1, first2);
103 return first2;
104}

◆ unique() [1/4]

template<class DVL>
DataModel_detail::iterator< DVL > std::unique ( typename DataModel_detail::iterator< DVL > beg,
typename DataModel_detail::iterator< DVL > end )

Specialization of unique for DataVector/List.

Parameters
begThe start iterator for the unique operation.
endThe end iterator for the unique operation.
valueThe value to remove.

beg and end should both be iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 135 of file DVL_algorithms.h.

137{
138 // Implemented with iter_swap, no extra index manipulation needed.
139 return DataModel_detail::dvl_unique (beg, end);
140}

◆ unique() [2/4]

template<class DVL, class BinaryPredicate>
DataModel_detail::iterator< DVL > std::unique ( typename DataModel_detail::iterator< DVL > beg,
typename DataModel_detail::iterator< DVL > end,
BinaryPredicate pred )

Specialization of unique for DataVector/List.

Parameters
begThe start iterator for the unique operation.
endThe end iterator for the unique operation.
predThe predicate for the operation.

beg and end should both be iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 155 of file DVL_algorithms.h.

158{
159 // Implemented with iter_swap, no extra index manipulation needed.
160 return DataModel_detail::dvl_unique (beg, end, pred);
161}

◆ unique() [3/4]

template<class DVL>
std::reverse_iterator< DataModel_detail::iterator< DVL > > std::unique ( typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end )

Specialization of unique for DataVector/List.

Parameters
begThe start reverse_iterator for the unique operation.
endThe end reverse_iterator for the unique operation.
valueThe value to remove.

beg and end should both be reverse_iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 177 of file DVL_algorithms.h.

179{
180 // Implemented with iter_swap, no extra index manipulation needed.
181 return DataModel_detail::dvl_unique (beg, end);
182}

◆ unique() [4/4]

template<class DVL, class BinaryPredicate>
std::reverse_iterator< DataModel_detail::iterator< DVL > > std::unique ( typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg,
typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end,
BinaryPredicate pred )

Specialization of unique for DataVector/List.

Parameters
begThe start reverse_iterator for the unique operation.
endThe end reverse_iterator for the unique operation.
predThe predicate for the operation.

beg and end should both be reverse_iterators from the same DataVector/List. This performs the operation in a way that doesn't run afoul of DataVector/List's object ownership rules.

Definition at line 199 of file DVL_algorithms.h.

202{
203 // Implemented with iter_swap, no extra index manipulation needed.
204 return DataModel_detail::dvl_unique (beg, end, pred);
205}