validation.hpp
来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 83 行
HPP
83 行
// (C) Copyright Gennadiy Rozental 2005-2008.// 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/test for the library home page.//// File : $RCSfile$//// Version : $Revision: 49312 $//// Description : defines exceptions and validation tools// ***************************************************************************#ifndef BOOST_RT_VALIDATION_HPP_062604GER#define BOOST_RT_VALIDATION_HPP_062604GER// Boost.Runtime.Parameter#include <boost/test/utils/runtime/config.hpp>// Boost.Test#include <boost/test/utils/class_properties.hpp>// Boost#include <boost/shared_ptr.hpp>// STL#ifdef BOOST_RT_PARAM_EXCEPTION_INHERIT_STD#include <stdexcept>#endifnamespace boost {namespace BOOST_RT_PARAM_NAMESPACE {// ************************************************************************** //// ************** runtime::logic_error ************** //// ************************************************************************** //class logic_error #ifdef BOOST_RT_PARAM_EXCEPTION_INHERIT_STD: public std::exception#endif{ typedef shared_ptr<dstring> dstring_ptr;public: // Constructor // !! could we eliminate shared_ptr explicit logic_error( cstring msg ) : m_msg( new dstring( msg.begin(), msg.size() ) ) {} ~logic_error() throw() {} dstring const& msg() const { return *m_msg; } virtual char_type const* what() const throw() { return m_msg->c_str(); }private: dstring_ptr m_msg;};// ************************************************************************** //// ************** runtime::report_logic_error ************** //// ************************************************************************** //inline voidreport_logic_error( format_stream& msg ){ throw BOOST_RT_PARAM_NAMESPACE::logic_error( msg.str() );}//____________________________________________________________________________//#define BOOST_RT_PARAM_REPORT_LOGIC_ERROR( msg ) \ boost::BOOST_RT_PARAM_NAMESPACE::report_logic_error( format_stream().ref() << msg )#define BOOST_RT_PARAM_VALIDATE_LOGIC( b, msg ) \ if( b ) {} else BOOST_RT_PARAM_REPORT_LOGIC_ERROR( msg )//____________________________________________________________________________//} // namespace BOOST_RT_PARAM_NAMESPACE} // namespace boost#endif // BOOST_RT_VALIDATION_HPP_062604GER
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?