annotate DEPENDENCIES/generic/include/boost/system/system_error.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents 2665513ce2d3
children
rev   line source
Chris@16 1 // Boost system_error.hpp --------------------------------------------------//
Chris@16 2
Chris@16 3 // Copyright Beman Dawes 2006
Chris@16 4
Chris@16 5 // Distributed under the Boost Software License, Version 1.0. (See accompanying
Chris@16 6 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 7
Chris@16 8 #ifndef BOOST_SYSTEM_ERROR_HPP
Chris@16 9 #define BOOST_SYSTEM_ERROR_HPP
Chris@16 10
Chris@16 11 #include <string>
Chris@16 12 #include <stdexcept>
Chris@16 13 #include <cassert>
Chris@16 14 #include <boost/system/error_code.hpp>
Chris@16 15
Chris@16 16 namespace boost
Chris@16 17 {
Chris@16 18 namespace system
Chris@16 19 {
Chris@16 20 // class system_error ------------------------------------------------------------//
Chris@16 21
Chris@16 22 class BOOST_SYMBOL_VISIBLE system_error : public std::runtime_error
Chris@16 23 // BOOST_SYMBOL_VISIBLE is needed by GCC to ensure system_error thrown from a shared
Chris@16 24 // library can be caught. See svn.boost.org/trac/boost/ticket/3697
Chris@16 25 {
Chris@16 26 public:
Chris@16 27 system_error( error_code ec )
Chris@16 28 : std::runtime_error(""), m_error_code(ec) {}
Chris@16 29
Chris@16 30 system_error( error_code ec, const std::string & what_arg )
Chris@16 31 : std::runtime_error(what_arg), m_error_code(ec) {}
Chris@16 32
Chris@16 33 system_error( error_code ec, const char* what_arg )
Chris@16 34 : std::runtime_error(what_arg), m_error_code(ec) {}
Chris@16 35
Chris@16 36 system_error( int ev, const error_category & ecat )
Chris@16 37 : std::runtime_error(""), m_error_code(ev,ecat) {}
Chris@16 38
Chris@16 39 system_error( int ev, const error_category & ecat,
Chris@16 40 const std::string & what_arg )
Chris@16 41 : std::runtime_error(what_arg), m_error_code(ev,ecat) {}
Chris@16 42
Chris@16 43 system_error( int ev, const error_category & ecat,
Chris@16 44 const char * what_arg )
Chris@16 45 : std::runtime_error(what_arg), m_error_code(ev,ecat) {}
Chris@16 46
Chris@16 47 virtual ~system_error() throw() {}
Chris@16 48
Chris@16 49 const error_code & code() const throw() { return m_error_code; }
Chris@16 50 const char * what() const throw();
Chris@16 51
Chris@16 52 private:
Chris@16 53 error_code m_error_code;
Chris@16 54 mutable std::string m_what;
Chris@16 55 };
Chris@16 56
Chris@16 57 // implementation ------------------------------------------------------//
Chris@16 58
Chris@16 59 inline const char * system_error::what() const throw()
Chris@16 60 // see http://www.boost.org/more/error_handling.html for lazy build rationale
Chris@16 61 {
Chris@16 62 if ( m_what.empty() )
Chris@16 63 {
Chris@16 64 #ifndef BOOST_NO_EXCEPTIONS
Chris@16 65 try
Chris@16 66 #endif
Chris@16 67 {
Chris@16 68 m_what = this->std::runtime_error::what();
Chris@16 69 if ( !m_what.empty() ) m_what += ": ";
Chris@16 70 m_what += m_error_code.message();
Chris@16 71 }
Chris@16 72 #ifndef BOOST_NO_EXCEPTIONS
Chris@16 73 catch (...) { return std::runtime_error::what(); }
Chris@16 74 #endif
Chris@16 75 }
Chris@16 76 return m_what.c_str();
Chris@16 77 }
Chris@16 78
Chris@16 79 } // namespace system
Chris@16 80 } // namespace boost
Chris@16 81
Chris@16 82 #endif // BOOST_SYSTEM_ERROR_HPP
Chris@16 83
Chris@16 84