LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
LSST Data Management Base Package
|
Key for type-safe lookup in a GenericMap. More...
#include <Key.h>
Public Types | |
using | KeyType = K |
using | ValueType = V |
Public Member Functions | |
constexpr | Key (K id) |
Construct a new key. | |
Key (Key const &)=default | |
Key (Key &&)=default | |
Key & | operator= (Key const &)=default |
Key & | operator= (Key &&)=default |
template<typename U > | |
Key (Key< K, U > other) | |
Convert a key to a different key that could retrieve the same values. | |
constexpr K const & | getId () const noexcept |
Return the identifier of this field. | |
template<typename U > | |
constexpr bool | operator< (Key< K, U > const &other) const noexcept |
Define sort order for Keys. | |
std::size_t | hash_value () const noexcept |
Return a hash of this object. | |
constexpr bool | operator== (Key< K, V > const &other) const noexcept |
Test for key equality. | |
template<typename U > | |
constexpr std::enable_if_t<!std::is_same< U, V >::value, bool > | operator== (Key< K, U > const &) const noexcept |
Test for key equality. | |
template<typename U > | |
constexpr bool | operator!= (Key< K, U > const &other) const noexcept |
Test for key equality. | |
Related Symbols | |
(Note that these are not member symbols.) | |
template<typename V , typename K > | |
constexpr Key< K, V > | makeKey (K const &id) |
Factory function for Key, to enable type parameter inference. | |
template<typename K , typename V > | |
std::ostream & | operator<< (std::ostream &os, Key< K, V > const &key) |
Output operator for Key. | |
Key for type-safe lookup in a GenericMap.
K | the logical type of the key (e.g., a string) |
V | the type of the value mapped to this key |
Key objects are equality-comparable, hashable, sortable, or printable if and only if K
is comparable, hashable, sortable, or printable, respectively. Key can be used in compile-time expressions if and only if K
can (in particular, Key<std::string, V>
cannot).
using lsst::afw::typehandling::Key< K, V >::KeyType = K |
using lsst::afw::typehandling::Key< K, V >::ValueType = V |
|
inlineexplicitconstexpr |
|
default |
|
default |
|
inline |
Convert a key to a different key that could retrieve the same values.
U | The value type being converted from. Smart pointer keys are convertible if and only if the corresponding pointers are; other keys are convertible if and only if their value references are (consistent with pointers being retrieved by value and other types by reference). |
other |
Definition at line 89 of file Key.h.
|
inlineconstexprnoexcept |
Return the identifier of this field.
The identifier serves as the "key" for the map abstraction represented by GenericMap.
Definition at line 105 of file Key.h.
|
inlinenoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
Define sort order for Keys.
This must be expressed as operator<
instead of std::less because only std::less<void> supports arguments of mixed types, and it cannot be specialized.
other | the key, possibly of a different type, to compare to |
this->getId() < other.getId()
K
does, but is not consistent with equality. In particular, keys with the same value of getId()
but different types will be equivalent but not equal. Definition at line 143 of file Key.h.
|
default |
|
default |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
related |
Factory function for Key, to enable type parameter inference.
id | the key ID to create. |
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.
|
related |
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>"
.
os | the desired output stream |
key | the key to print |
os
K
is exception-safe.Definition at line 196 of file Key.h.