104 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| // ----------------------------------------------------------------------------
 | |
| // boost/format/exceptions.hpp 
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| //  Copyright Samuel Krempp 2003.
 | |
| //
 | |
| // Distributed under the Boost Software License, Version 1.0.
 | |
| //    (See accompanying file LICENSE_1_0.txt or copy at
 | |
| //          http://www.boost.org/LICENSE_1_0.txt)
 | |
| //
 | |
| //
 | |
| //  See http://www.boost.org/libs/format/ for library home page
 | |
| 
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| #ifndef BOOST_FORMAT_EXCEPTIONS_HPP
 | |
| #define BOOST_FORMAT_EXCEPTIONS_HPP
 | |
| 
 | |
| 
 | |
| #include <stdexcept>
 | |
| 
 | |
| 
 | |
| namespace boost {
 | |
| 
 | |
|     namespace io {
 | |
| 
 | |
| // **** exceptions -----------------------------------------------
 | |
| 
 | |
|         class format_error : public std::exception
 | |
|         {
 | |
|         public:
 | |
|             format_error()  {}
 | |
|             virtual const char *what() const throw() {
 | |
|                 return "boost::format_error: "
 | |
|                     "format generic failure";
 | |
|             }
 | |
|         };
 | |
| 
 | |
|         class bad_format_string : public format_error
 | |
|         {
 | |
|             std::size_t pos_, next_;
 | |
|         public:
 | |
|             bad_format_string(std::size_t pos, std::size_t size) 
 | |
|                 : pos_(pos), next_(size) {}
 | |
|             std::size_t get_pos() const { return pos_; }
 | |
|             std::size_t get_next() const { return next_; }
 | |
|             virtual const char *what() const throw() {
 | |
|                 return "boost::bad_format_string: format-string is ill-formed";
 | |
|             }
 | |
|         };
 | |
| 
 | |
|         class too_few_args : public format_error
 | |
|         {
 | |
|             std::size_t cur_, expected_;
 | |
|         public:
 | |
|             too_few_args(std::size_t cur, std::size_t expected) 
 | |
|                 : cur_(cur), expected_(expected) {}
 | |
|             std::size_t get_cur() const { return cur_; }
 | |
|             std::size_t get_expected() const { return expected_; }
 | |
|             virtual const char *what() const throw() {
 | |
|                 return "boost::too_few_args: "
 | |
|                     "format-string referred to more arguments than were passed";
 | |
|             }
 | |
|         };
 | |
| 
 | |
|         class too_many_args : public format_error
 | |
|         {
 | |
|             std::size_t cur_, expected_;
 | |
|         public:
 | |
|             too_many_args(std::size_t cur, std::size_t expected) 
 | |
|                 : cur_(cur), expected_(expected) {}
 | |
|             std::size_t get_cur() const { return cur_; }
 | |
|             std::size_t get_expected() const { return expected_; }
 | |
|             virtual const char *what() const throw() {
 | |
|                 return "boost::too_many_args: "
 | |
|                     "format-string referred to fewer arguments than were passed";
 | |
|             }
 | |
|         };
 | |
| 
 | |
| 
 | |
|         class  out_of_range : public format_error
 | |
|         {
 | |
|             int index_, beg_, end_;    // range is [ beg, end [
 | |
|         public:
 | |
|             out_of_range(int index, int beg, int end) 
 | |
|                 : index_(index), beg_(beg), end_(end) {}
 | |
|             int get_index() const { return index_; }
 | |
|             int get_beg() const { return beg_; }
 | |
|             int get_end() const { return end_; }
 | |
|             virtual const char *what() const throw() {
 | |
|                 return "boost::out_of_range: "
 | |
|                     "tried to refer to an argument (or item) number which"
 | |
|                     " is out of range, according to the format string";
 | |
|             }
 | |
|         };
 | |
| 
 | |
| 
 | |
|     } // namespace io
 | |
| 
 | |
| } // namespace boost
 | |
| 
 | |
| 
 | |
| #endif // BOOST_FORMAT_EXCEPTIONS_HPP
 | 
