LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Member Functions | Friends | List of all members
lsst::afw::table::CatalogIterator< BaseT > Class Template Reference

Iterator class for CatalogT. More...

#include <Catalog.h>

Inheritance diagram for lsst::afw::table::CatalogIterator< BaseT >:

Public Member Functions

 CatalogIterator ()
template<typename OtherBaseT >
 CatalogIterator (CatalogIterator< OtherBaseT > const &other)
 CatalogIterator (BaseT const &base)
template<typename RecordT >
 operator std::shared_ptr< RecordT > () const
template<typename RecordT >
CatalogIteratoroperator= (std::shared_ptr< RecordT > const &other) const


class boost::iterator_core_access

Detailed Description

template<typename BaseT>
class lsst::afw::table::CatalogIterator< BaseT >

Iterator class for CatalogT.

Iterators dereference to record references or const references, even though the CatalogT container is based on a vector of shared_ptr internally. This is usually very convenient (and is one of the reasons for having a custom container class in the first place).

Sometimes, however, we'd like to get a shared_ptr from an iterator (especially because records are noncopyable). With that in mind, CatalogIterator is implicitly convertible to the shared_ptr type it holds internally, and can also be assigned a shared_ptr to set the pointer in the underlying container. This conversion makes sense from the perspective that both iterators and smart pointers mimic the interface of pointers and provide the same interface to get at the underlying record.

Definition at line 39 of file Catalog.h.

Constructor & Destructor Documentation

◆ CatalogIterator() [1/3]

template<typename BaseT >
lsst::afw::table::CatalogIterator< BaseT >::CatalogIterator ( )

Definition at line 42 of file Catalog.h.

42 {}

◆ CatalogIterator() [2/3]

template<typename BaseT >
template<typename OtherBaseT >
lsst::afw::table::CatalogIterator< BaseT >::CatalogIterator ( CatalogIterator< OtherBaseT > const &  other)

Definition at line 45 of file Catalog.h.

46  : CatalogIterator::iterator_adaptor_(other.base()) {}

◆ CatalogIterator() [3/3]

template<typename BaseT >
lsst::afw::table::CatalogIterator< BaseT >::CatalogIterator ( BaseT const &  base)

Definition at line 48 of file Catalog.h.

48 : CatalogIterator::iterator_adaptor_(base) {}

Member Function Documentation

◆ operator std::shared_ptr< RecordT >()

template<typename BaseT >
template<typename RecordT >
lsst::afw::table::CatalogIterator< BaseT >::operator std::shared_ptr< RecordT > ( ) const

Definition at line 51 of file Catalog.h.

51  {
52  return *this->base();
53  }

◆ operator=()

template<typename BaseT >
template<typename RecordT >
CatalogIterator& lsst::afw::table::CatalogIterator< BaseT >::operator= ( std::shared_ptr< RecordT > const &  other) const

Definition at line 56 of file Catalog.h.

56  {
57  *this->base() = other;
58  return *this;
59  }

Friends And Related Function Documentation

◆ boost::iterator_core_access

template<typename BaseT >
friend class boost::iterator_core_access

Definition at line 62 of file Catalog.h.

The documentation for this class was generated from the following file: