25#ifndef LSST_AFW_TYPEHANDLING_POLYMORPHICVALUE_H
26#define LSST_AFW_TYPEHANDLING_POLYMORPHICVALUE_H
35namespace typehandling {
104 bool empty() const noexcept;
130 bool operator!=(
PolymorphicValue const& other) const noexcept {
return !(*
this == other); }
167struct hash<
lsst::afw::typehandling::PolymorphicValue> {
Container that passes Storable objects by value while preserving type.
void swap(PolymorphicValue &lhs, PolymorphicValue &rhs) noexcept
Swap specialization for PolymorphicValue.
~PolymorphicValue() noexcept
Storable & get()
Return a reference to the internal Storable, if one exists.
bool empty() const noexcept
Check whether this object contains a Storable.
PolymorphicValue(Storable const &value)
Create a new object containing a copy of a Storable.
std::size_t hash_value() const
Return a hash of this object (optional operation).
Interface supporting iteration over heterogenous containers.
size_t operator()(argument_type const &obj) const