You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
83 lines
2.1 KiB
83 lines
2.1 KiB
// ---------------------------------------------------------------------------- |
|
// 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() |
|
{ |
|
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() |
|
{ |
|
return boost::any_cast<P>(m_path); |
|
} |
|
|
|
}} |
|
|
|
#endif
|
|
|