#ifndef SPROUT_OPTIONAL_HASH_HPP #define SPROUT_OPTIONAL_HASH_HPP #include #include #include #include namespace sprout { // // hash_value // template inline SPROUT_CONSTEXPR std::size_t hash_value(sprout::optional const& v) { return v.is_initialized() ? sprout::to_hash(*v) : 0 ; } } // namespace sprout namespace std { // // hash // template struct hash > : public sprout::hash > {}; } // namespace std #endif // #ifndef SPROUT_OPTIONAL_HASH_HPP