// ---------------------------------------------------------------------------- // 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 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 &what): std::runtime_error(what) { } inline ptree_error::~ptree_error() throw() { } /////////////////////////////////////////////////////////////////////////// // ptree_bad_data template inline ptree_bad_data::ptree_bad_data(const std::string &what, const D &data): ptree_error(what), m_data(data) { } inline ptree_bad_data::~ptree_bad_data() throw() { } template inline D ptree_bad_data::data() { return boost::any_cast(m_data); } /////////////////////////////////////////////////////////////////////////// // ptree_bad_path template inline ptree_bad_path::ptree_bad_path(const std::string &what, const P &path): ptree_error(detail::prepare_bad_path_what(what, path)), m_path(path) { } inline ptree_bad_path::~ptree_bad_path() throw() { } template inline P ptree_bad_path::path() { return boost::any_cast

(m_path); } }} #endif