31 namespace typehandling {
40 : _value(other._value ? other._value->cloneStorable() : nullptr) {}
45 _value = other._value->cloneStorable();
64 PolymorphicValue::operator
Storable&() {
return get(); }
65 PolymorphicValue::operator
Storable const&()
const {
return get(); }
80 return get().equals(
other.get());
83 return _value ==
other._value;
PolymorphicValue & operator=(PolymorphicValue const &other)
Try to assign a PolymorphicValue.
Container that passes Storable objects by value while preserving type.
PolymorphicValue(Storable const &value)
Create a new object containing a copy of a Storable.
Interface supporting iteration over heterogenous containers.
A base class for image defects.
~PolymorphicValue() noexcept
Reports errors in the logical structure of the program.
std::size_t hash_value() const
Return a hash of this object (optional operation).
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
bool empty() const noexcept
Check whether this object contains a Storable.
void swap(PolymorphicValue &other) noexcept
Exchange the contents of this container and another.
ItemVariant const * other
Storable & get()
Return a reference to the internal Storable, if one exists.
bool operator==(PolymorphicValue const &other) const noexcept
Test whether the contained Storables are equal.