enable_error_info.cpp
来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 36 行
CPP
36 行
//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.//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)//This example shows how to throw exception objects that support//transporting of arbitrary data to the catch site, even for types//that do not derive from boost::exception.#include <boost/exception.hpp>#include <stdexcept>typedef boost::error_info<struct tag_std_range_min,size_t> std_range_min;typedef boost::error_info<struct tag_std_range_max,size_t> std_range_max;typedef boost::error_info<struct tag_std_range_index,size_t> std_range_index;template <class T>classmy_container { public: size_t size() const; T const & operator[]( size_t i ) const { if( i > size() ) throw boost::enable_error_info(std::range_error("Index out of range")) << std_range_min(0) << std_range_max(size()) << std_range_index(i); //.... } };
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?