12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #ifndef BOOST_OUTCOME_BAD_ACCESS_HPP
- #define BOOST_OUTCOME_BAD_ACCESS_HPP
- #include "config.hpp"
- #include <stdexcept>
- BOOST_OUTCOME_V2_NAMESPACE_EXPORT_BEGIN
- class BOOST_OUTCOME_SYMBOL_VISIBLE bad_result_access : public std::logic_error
- {
- public:
- explicit bad_result_access(const char *what)
- : std::logic_error(what)
- {
- }
- };
- template <class S> class BOOST_OUTCOME_SYMBOL_VISIBLE bad_result_access_with : public bad_result_access
- {
- S _error;
- public:
- explicit bad_result_access_with(S v)
- : bad_result_access("no value")
- , _error(std::move(v))
- {
- }
-
- const S &error() const & { return _error; }
-
- S &error() & { return _error; }
-
- const S &&error() const && { return _error; }
-
- S &&error() && { return _error; }
- };
- class BOOST_OUTCOME_SYMBOL_VISIBLE bad_outcome_access : public std::logic_error
- {
- public:
- explicit bad_outcome_access(const char *what)
- : std::logic_error(what)
- {
- }
- };
- BOOST_OUTCOME_V2_NAMESPACE_END
- #endif
|