25 #ifndef LSST_AFW_TYPEHANDLING_STORABLE_H
26 #define LSST_AFW_TYPEHANDLING_STORABLE_H
38 namespace typehandling {
58 class
Storable : public table::io::Persistable {
77 virtual
std::shared_ptr<
Storable> cloneStorable() const;
87 virtual
std::
string toString() const;
122 virtual
bool equals(
Storable const& other) const noexcept;
151 static
bool singleClassEquals(T const& lhs,
Storable const& rhs) {
152 auto typedRhs =
dynamic_cast<T const*
>(&rhs);
153 if (typedRhs !=
nullptr) {
154 return lhs == *typedRhs;
#define LSST_EXCEPTION_TYPE(t, b, c)
Interface supporting iteration over heterogenous containers.
virtual std::string toString() const
Create a string representation of this object (optional operation).
virtual std::size_t hash_value() const
Return a hash of this object (optional operation).
virtual ~Storable() noexcept=0
std::ostream & operator<<(std::ostream &os, Storable const &storable)
Output operator for Storable.
Exception thrown by Storable operations for unimplemented operations.
std::size_t hash_value() const noexcept
Return a hash of this object.
A base class for image defects.
size_t operator()(argument_type const &obj) const