lsst.afw  v23.0.x-g89e8071bfa+60ce4897b0
Namespaces | Classes | Functions
lsst::afw::typehandling Namespace Reference

Namespaces

 _GenericMap
 
 _SimpleGenericMap
 
 detail
 
 test
 
 testUtils
 

Classes

class  GenericMap
 Interface for a heterogeneous map. More...
 
class  MutableGenericMap
 Interface for a GenericMap that allows element addition and removal. More...
 
class  Key
 Key for type-safe lookup in a GenericMap. More...
 
class  PolymorphicValue
 Container that passes Storable objects by value while preserving type. More...
 
class  StorableHelper
 "Trampoline" for Storable to let it be used as a base class in Python. More...
 
class  SimpleGenericMap
 A GenericMap that allows insertion and deletion of arbitrary values. More...
 
class  UnsupportedOperationException
 Exception thrown by Storable operations for unimplemented operations. More...
 
class  Storable
 Interface supporting iteration over heterogenous containers. More...
 

Functions

template<typename V , typename K >
constexpr Key< K, V > makeKey (K const &id)
 Factory function for Key, to enable type parameter inference. More...
 
template<typename K , typename V >
std::ostreamoperator<< (std::ostream &os, Key< K, V > const &key)
 Output operator for Key. More...
 
void swap (PolymorphicValue &lhs, PolymorphicValue &rhs) noexcept
 Swap specialization for PolymorphicValue. More...
 
std::string declareGenericMapRestrictions (std::string const &className, std::string const &keyName)
 
std::ostreamoperator<< (std::ostream &os, Storable const &storable)
 Output operator for Storable. More...
 

Function Documentation

◆ declareGenericMapRestrictions()

std::string lsst::afw::typehandling::declareGenericMapRestrictions ( std::string const &  className,
std::string const &  keyName 
)

Definition at line 32 of file python.cc.

◆ makeKey()

template<typename V , typename K >
constexpr Key< K, V > makeKey ( K const &  id)
constexpr

Factory function for Key, to enable type parameter inference.

Parameters
idthe key ID to create.
Returns
a key of the desired type
Exception Safety
Provides the same exception safety as the copy-constructor of K.

Calling this function prevents you from having to explicitly name the key type:

auto key = makeKey<int>("foo");

Definition at line 173 of file Key.h.

◆ operator<<() [1/2]

template<typename K , typename V >
std::ostream & operator<< ( std::ostream os,
Key< K, V > const &  key 
)

Output operator for Key.

The output will use C++ template notation for the key; for example, a key "foo" pointing to an int may print as "foo<int>".

Parameters
osthe desired output stream
keythe key to print
Returns
a reference to os
Exception Safety
Provides basic exception safety if the output operator of K is exception-safe.
Warning
the type name is compiler-specific and may be mangled or unintuitive; for example, some compilers say "i" instead of "int"

Definition at line 196 of file Key.h.

◆ operator<<() [2/2]

std::ostream & operator<< ( std::ostream os,
Storable const &  storable 
)
inline

Output operator for Storable.

Parameters
osthe desired output stream
storablethe object to print
Returns
a reference to os
Exceptions
UnsupportedOperationExceptionThrown if storable does not have an implementation of Storable::toString.

Definition at line 174 of file Storable.h.

◆ swap()

void swap ( PolymorphicValue lhs,
PolymorphicValue rhs 
)
inlinenoexcept

Swap specialization for PolymorphicValue.

Definition at line 152 of file PolymorphicValue.h.