84 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			84 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | // ---------------------------------------------------------------------------- | ||
|  | // Copyright (C) 2002-2006 Marcin Kalicinski | ||
|  | // Copyright (C) 2009 Sebastian Redl | ||
|  | // | ||
|  | // 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) | ||
|  | // | ||
|  | // For more information, see www.boost.org | ||
|  | // ---------------------------------------------------------------------------- | ||
|  | #ifndef BOOST_PROPERTY_TREE_DETAIL_EXCEPTIONS_IMPLEMENTATION_HPP_INCLUDED | ||
|  | #define BOOST_PROPERTY_TREE_DETAIL_EXCEPTIONS_IMPLEMENTATION_HPP_INCLUDED | ||
|  | 
 | ||
|  | namespace boost { namespace property_tree | ||
|  | { | ||
|  | 
 | ||
|  |     namespace detail | ||
|  |     { | ||
|  | 
 | ||
|  |         // Helper for preparing what string in ptree_bad_path exception | ||
|  |         template<class P> inline | ||
|  |         std::string prepare_bad_path_what(const std::string &what, | ||
|  |                                           const P &path) | ||
|  |         { | ||
|  |             return what + " (" + path.dump() + ")"; | ||
|  |         } | ||
|  | 
 | ||
|  |     } | ||
|  | 
 | ||
|  |     /////////////////////////////////////////////////////////////////////////// | ||
|  |     // ptree_error | ||
|  | 
 | ||
|  |     inline ptree_error::ptree_error(const std::string &w):  | ||
|  |         std::runtime_error(w)  | ||
|  |     { | ||
|  |     } | ||
|  | 
 | ||
|  |     inline ptree_error::~ptree_error() throw() | ||
|  |     { | ||
|  |     } | ||
|  | 
 | ||
|  |     /////////////////////////////////////////////////////////////////////////// | ||
|  |     // ptree_bad_data | ||
|  | 
 | ||
|  |     template<class D> inline | ||
|  |     ptree_bad_data::ptree_bad_data(const std::string &w, const D &d): | ||
|  |         ptree_error(w), m_data(d) | ||
|  |     { | ||
|  |     } | ||
|  | 
 | ||
|  |     inline ptree_bad_data::~ptree_bad_data() throw() | ||
|  |     { | ||
|  |     } | ||
|  | 
 | ||
|  |     template<class D> inline | ||
|  |     D ptree_bad_data::data() const | ||
|  |     { | ||
|  |         return boost::any_cast<D>(m_data); | ||
|  |     } | ||
|  | 
 | ||
|  |     /////////////////////////////////////////////////////////////////////////// | ||
|  |     // ptree_bad_path | ||
|  | 
 | ||
|  |     template<class P> inline | ||
|  |     ptree_bad_path::ptree_bad_path(const std::string &w, const P &p): | ||
|  |         ptree_error(detail::prepare_bad_path_what(w, p)), m_path(p) | ||
|  |     { | ||
|  | 
 | ||
|  |     } | ||
|  | 
 | ||
|  |     inline ptree_bad_path::~ptree_bad_path() throw() | ||
|  |     { | ||
|  |     } | ||
|  | 
 | ||
|  |     template<class P> inline | ||
|  |     P ptree_bad_path::path() const | ||
|  |     { | ||
|  |         return boost::any_cast<P>(m_path); | ||
|  |     } | ||
|  | 
 | ||
|  | }} | ||
|  | 
 | ||
|  | #endif |