CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes
edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper > Class Template Reference

#include <AssociationVector.h>

Inheritance diagram for edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >:
pat::PATTauDiscriminator reco::JetFlavourInfoMatchingCollection reco::JetFlavourMatchingCollection reco::JetMatchedPartonsCollection reco::JetPiZeroAssociation reco::PFJetChargedHadronAssociation reco::PFTauDiscriminator reco::PFTauDiscriminatorByIsolation

Public Types

typedef KeyRefProd::product_type CKey
 
typedef transient_vector_type::const_iterator const_iterator
 
typedef value_type const & const_reference
 
typedef KeyRef::value_type key_type
 
typedef KeyRefProd refprod_type
 
typedef SizeType size_type
 
typedef std::vector< value_typetransient_vector_type
 
typedef std::pair< KeyRef, typename CVal::value_type > value_type
 

Public Member Functions

 AssociationVector ()
 
 AssociationVector (KeyRefProd const &ref, CKey const *=nullptr)
 
 AssociationVector (AssociationVector const &)
 
const_iterator begin () const
 
void clear ()
 
bool empty () const
 
const_iterator end () const
 
void fillView (ProductID const &id, std::vector< void const *> &pointers, FillViewHelperVector &helpers) const
 
KeyRef key (size_type i) const
 
KeyRefProd const & keyProduct () const
 
selfoperator= (self const &)
 
const_reference operator[] (size_type n) const
 
CVal::const_reference operator[] (KeyRef const &k) const
 
CVal::reference operator[] (KeyRef const &k)
 
template<typename K >
CVal::const_reference operator[] (edm::Ptr< K > const &k) const
 
template<typename K >
CVal::const_reference operator[] (edm::RefToBase< K > const &k) const
 
void setValue (size_type i, typename CVal::value_type const &val)
 
size_type size () const
 
void swap (self &other)
 
CVal::value_type const value (size_type i) const
 
 ~AssociationVector ()
 

Static Public Member Functions

static short Class_Version ()
 

Private Types

enum  CacheState { kUnset, kFilling, kSet }
 
typedef AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper > self
 

Private Member Functions

void fixup () const
 
transient_vector_type const & transientVector () const
 

Private Attributes

CVal data_
 
KeyRefProd ref_
 
std::atomic< transient_vector_type * > transientVector_
 

Detailed Description

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
class edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >

Definition at line 67 of file AssociationVector.h.

Member Typedef Documentation

◆ CKey

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
typedef KeyRefProd::product_type edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::CKey

Definition at line 74 of file AssociationVector.h.

◆ const_iterator

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
typedef transient_vector_type::const_iterator edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::const_iterator

Definition at line 106 of file AssociationVector.h.

◆ const_reference

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
typedef value_type const& edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::const_reference

Definition at line 79 of file AssociationVector.h.

◆ key_type

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
typedef KeyRef::value_type edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::key_type

Definition at line 76 of file AssociationVector.h.

◆ refprod_type

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
typedef KeyRefProd edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::refprod_type

Definition at line 73 of file AssociationVector.h.

◆ self

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
typedef AssociationVector<KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper> edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::self
private

Definition at line 69 of file AssociationVector.h.

◆ size_type

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
typedef SizeType edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::size_type

Definition at line 75 of file AssociationVector.h.

◆ transient_vector_type

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
typedef std::vector<value_type> edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::transient_vector_type

Definition at line 78 of file AssociationVector.h.

◆ value_type

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
typedef std::pair<KeyRef, typename CVal::value_type> edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::value_type

Definition at line 77 of file AssociationVector.h.

Member Enumeration Documentation

◆ CacheState

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
enum edm::AssociationVector::CacheState
private

Constructor & Destructor Documentation

◆ AssociationVector() [1/3]

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::AssociationVector ( )
inline

Definition at line 133 of file AssociationVector.h.

134  : data_(), ref_(), transientVector_(nullptr) {}
std::atomic< transient_vector_type * > transientVector_

◆ AssociationVector() [2/3]

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::AssociationVector ( KeyRefProd const &  ref,
CKey const *  coll = nullptr 
)
inline

Definition at line 137 of file AssociationVector.h.

139  : data_(coll == nullptr ? ref->size() : coll->size()),
140  ref_(ref),
141  transientVector_(new transient_vector_type(coll == nullptr ? ref->size() : coll->size())) {}
std::vector< value_type > transient_vector_type
std::atomic< transient_vector_type * > transientVector_

◆ AssociationVector() [3/3]

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::AssociationVector ( AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper > const &  o)
inline

Definition at line 144 of file AssociationVector.h.

References EcalTangentSkim_cfg::o, submitPVValidationJobs::t, and edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::transientVector_.

146  : data_(o.data_), ref_(o.ref_), transientVector_() {
147  auto t = o.transientVector_.load(std::memory_order_acquire);
148  if (t) {
149  transientVector_.store(new transient_vector_type(*t), std::memory_order_release);
150  }
151  }
std::vector< value_type > transient_vector_type
std::atomic< transient_vector_type * > transientVector_

◆ ~AssociationVector()

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::~AssociationVector ( )
inline

Definition at line 154 of file AssociationVector.h.

154  {
155  delete transientVector_.load(std::memory_order_acquire);
156  }
std::atomic< transient_vector_type * > transientVector_

Member Function Documentation

◆ begin()

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
const_iterator edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::begin ( void  ) const
inline

◆ Class_Version()

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
static short edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::Class_Version ( )
inlinestatic

◆ clear()

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
void edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::clear ( void  )
inline

Definition at line 237 of file AssociationVector.h.

References submitPVValidationJobs::t.

237  {
238  data_.clear();
239  auto t = transientVector_.load(std::memory_order_acquire);
240  if (t)
241  t->clear();
242  ref_ = KeyRefProd();
243  }
std::atomic< transient_vector_type * > transientVector_

◆ empty()

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
bool edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::empty ( ) const
inline

Definition at line 232 of file AssociationVector.h.

Referenced by ConeIsolation::produce(), and reco::modules::JetFlavourIdentifier::produce().

232  {
233  return data_.empty();
234  }

◆ end()

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
const_iterator edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::end ( void  ) const
inline

◆ fillView()

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
void edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::fillView ( ProductID const &  id,
std::vector< void const *> &  pointers,
FillViewHelperVector helpers 
) const

Definition at line 269 of file AssociationVector.h.

References edm::detail::reallyFillView().

270  {
271  detail::reallyFillView(*this, id, pointers, helpers);
272  // pointers.reserve(this->size());
273  // for(typename CVal::const_iterator i=data_.begin(), e=data_.end(); i!=e; ++i)
274  // pointers.push_back(&(*i));
275  // // helpers is not yet filled in.
276  // //Exception::throwThis(errors::UnimplementedFeature, "AssociationVector<T>::fillView(...)");
277  }
void reallyFillView(COLLECTION const &coll, ProductID const &id, std::vector< void const *> &ptrs, FillViewHelperVector &helpers)
Definition: FillView.h:25

◆ fixup()

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
void edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::fixup ( ) const
inlineprivate

Definition at line 255 of file AssociationVector.h.

References mps_fire::i.

255  {
256  if (nullptr == transientVector_.load(std::memory_order_acquire)) {
257  std::unique_ptr<transient_vector_type> newT{new transient_vector_type(size())};
258  for (size_type i = 0; i != size(); ++i) {
259  (*newT)[i] = std::make_pair(KeyRef(ref_, i), data_[i]);
260  }
261  transient_vector_type* expected = nullptr;
262  if (transientVector_.compare_exchange_strong(expected, newT.get())) {
263  newT.release();
264  }
265  }
266  }
size_type size() const
std::vector< value_type > transient_vector_type
std::atomic< transient_vector_type * > transientVector_

◆ key()

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
KeyRef edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::key ( size_type  i) const
inline

◆ keyProduct()

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
KeyRefProd const& edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::keyProduct ( ) const
inline

◆ operator=()

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper > & edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::operator= ( self const &  o)
inline

Definition at line 204 of file AssociationVector.h.

References EcalTangentSkim_cfg::o, and submitPVValidationJobs::t.

204  {
205  if (this == &o) {
206  return *this;
207  }
208  data_ = o.data_;
209  ref_ = o.ref_;
210  auto t = transientVector_.exchange(nullptr, std::memory_order_acq_rel);
211  delete t;
212  return *this;
213  }
std::atomic< transient_vector_type * > transientVector_

◆ operator[]() [1/5]

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::const_reference edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::operator[] ( size_type  n) const
inline

Definition at line 160 of file AssociationVector.h.

References dqmiodumpmetadata::n.

160  {
161  return transientVector()[n];
162  }
transient_vector_type const & transientVector() const

◆ operator[]() [2/5]

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
CVal::const_reference edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::operator[] ( KeyRef const &  k) const
inline

Definition at line 166 of file AssociationVector.h.

References edm::checkForWrongProduct(), get, and dqmdumpme::k.

166  {
167  KeyRef keyRef = KeyReferenceHelper::get(k, ref_.id());
168  checkForWrongProduct(keyRef.id(), ref_.id());
169  return data_[keyRef.key()];
170  }
void checkForWrongProduct(ProductID const &keyID, ProductID const &refID)
#define get

◆ operator[]() [3/5]

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
CVal::reference edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::operator[] ( KeyRef const &  k)
inline

Definition at line 193 of file AssociationVector.h.

References edm::checkForWrongProduct(), get, dqmdumpme::k, and submitPVValidationJobs::t.

194  {
195  KeyRef keyRef = KeyReferenceHelper::get(k, ref_.id());
196  auto t = transientVector_.exchange(nullptr, std::memory_order_acq_rel);
197  delete t;
198  checkForWrongProduct(keyRef.id(), ref_.id());
199  return data_[keyRef.key()];
200  }
void checkForWrongProduct(ProductID const &keyID, ProductID const &refID)
std::atomic< transient_vector_type * > transientVector_
#define get

◆ operator[]() [4/5]

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
template<typename K >
CVal::const_reference edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::operator[] ( edm::Ptr< K > const &  k) const
inline

Definition at line 175 of file AssociationVector.h.

References edm::checkForWrongProduct(), dqmdumpme::k, and relativeConstraints::value.

175  {
177  "edm::Ptr's key type is not a base class of AssociationVector's item type");
178  checkForWrongProduct(k.id(), ref_.id());
179  return data_[k.key()];
180  }
void checkForWrongProduct(ProductID const &keyID, ProductID const &refID)

◆ operator[]() [5/5]

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
template<typename K >
CVal::const_reference edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::operator[] ( edm::RefToBase< K > const &  k) const

Definition at line 184 of file AssociationVector.h.

References edm::checkForWrongProduct(), dqmdumpme::k, and relativeConstraints::value.

185  {
187  "edm::RefToBase's key type is not a base class of AssociationVector's item type");
188  checkForWrongProduct(k.id(), ref_.id());
189  return data_[k.key()];
190  }
void checkForWrongProduct(ProductID const &keyID, ProductID const &refID)

◆ setValue()

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
void edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::setValue ( size_type  i,
typename CVal::value_type const &  val 
)
inline

Definition at line 216 of file AssociationVector.h.

References mps_fire::i, submitPVValidationJobs::t, and heppy_batch::val.

Referenced by Types._ProxyParameter::__init__().

217  {
218  data_[i] = val;
219  KeyRef ref(ref_, i);
220  auto t = transientVector_.load(std::memory_order_acquire);
221  (*t)[i].first = ref;
222  (*t)[i].second = data_[i];
223  }
std::atomic< transient_vector_type * > transientVector_

◆ size()

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::size_type edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::size ( void  ) const
inline

◆ swap()

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
void edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::swap ( self other)
inline

Definition at line 246 of file AssociationVector.h.

References trackingPlots::other.

246  {
247  data_.swap(other.data_);
248  other.transientVector_.store(
249  transientVector_.exchange(other.transientVector_.load(std::memory_order_acquire), std::memory_order_acq_rel),
250  std::memory_order_release);
251  ref_.swap(other.ref_);
252  }
std::atomic< transient_vector_type * > transientVector_

◆ transientVector()

template<typename KeyRefProd , typename CVal , typename KeyRef , typename SizeType , typename KeyReferenceHelper >
AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::transient_vector_type const & edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::transientVector ( ) const
inlineprivate

Definition at line 127 of file AssociationVector.h.

Referenced by edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::begin(), and edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::end().

127  {
128  fixup();
129  return *(transientVector_.load(std::memory_order_acquire));
130  }
std::atomic< transient_vector_type * > transientVector_

◆ value()

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
CVal::value_type const edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::value ( size_type  i) const
inline

Member Data Documentation

◆ data_

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
CVal edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::data_
private

◆ ref_

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
KeyRefProd edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::ref_
private

◆ transientVector_

template<typename KeyRefProd, typename CVal, typename KeyRef = typename helper::RefFromRefProdTrait<KeyRefProd>::ref_type, typename SizeType = unsigned int, typename KeyReferenceHelper = typename helper::AssociationKeyReferenceTrait<KeyRef>::type>
std::atomic<transient_vector_type*> edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::transientVector_
mutableprivate