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 |