// ---------------------------------------------------------------------------- // 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 &w): std::runtime_error(w) { } inline ptree_error::~ptree_error() throw() { } /////////////////////////////////////////////////////////////////////////// // ptree_bad_data template 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 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 &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 inline P ptree_bad_path::path() { return boost::any_cast

(m_path); } }} #endif