2008-06-28 18:29:40 +00:00
< !DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
< html xmlns = 'http://www.w3.org/1999/xhtml' xml:lang = 'en' lang = 'en' >
< head >
< meta http-equiv = 'Content-Type' content = 'text/html; charset=utf-8' / >
< title > error_info< / title >
< link href = 'reno.css' type = 'text/css' rel = 'stylesheet' / >
< / head >
< body >
< div class = "body-0" >
< div class = "body-1" >
< div class = "body-2" >
< div >
< div id = "boost_logo" >
2009-05-16 13:45:21 +00:00
< a href = "http://www.boost.org" > < img style = "border:0" src = "../../../boost.png" alt = "Boost" width = "277" height = "86" / > < / a >
2008-06-28 18:29:40 +00:00
< / div >
< h1 > Boost Exception< / h1 >
< / div >
2009-04-02 05:04:38 +00:00
<!-- Copyright (c) 2006 - 2009 Emil Dotchevski and Reverge Studios, Inc. -->
2008-06-28 18:29:40 +00:00
<!-- 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) -->
2008-07-09 00:39:00 +00:00
< div class = "RenoIncludeDIV" > < div class = "RenoAutoDIV" > < h3 > error_info< / h3 >
< / div >
2009-05-17 06:12:29 +00:00
< div class = "RenoIncludeDIV" > < p > < span class = "RenoEscape" > # <!-- <wiki>`#</wiki> --> < / span > include < < span class = "RenoLink" > < a href = "boost_exception_info_hpp.html" > boost/exception/info.hpp< / a > < / span > > < / p >
2008-06-28 18:29:40 +00:00
< pre > namespace
boost
{
< span class = "RenoIncludeSPAN" > template < class Tag,class T>
class
2009-04-08 20:09:47 +00:00
< span class = "RenoLink" > error_info< / span >
2008-06-28 18:29:40 +00:00
{
public:
2009-01-08 23:06:25 +00:00
< span class = "RenoIncludeSPAN" > typedef T < span class = "RenoLink" > < a href = "error_info_value_type.html" > value_type< / a > < / span > ;< / span >
2008-06-28 18:29:40 +00:00
2009-01-08 23:06:25 +00:00
< span class = "RenoIncludeSPAN" > < span class = "RenoLink" > < a href = "error_info_error_info.html" > error_info< / a > < / span > ( < span class = "RenoLink" > < a href = "error_info_value_type.html" > value_type< / a > < / span > const & v );< / span >
2009-09-29 20:38:11 +00:00
< span class = "RenoIncludeSPAN" > < span class = "RenoLink" > < a href = "error_info_value_type.html" > value_type< / a > < / span > const & < span class = "RenoLink" > < a href = "error_info_value.html" > value< / a > < / span > () const;
< span class = "RenoLink" > < a href = "error_info_value_type.html" > value_type< / a > < / span > & < span class = "RenoLink" > < a href = "error_info_value.html" > value< / a > < / span > ();< / span >
2008-06-28 18:29:40 +00:00
};< / span >
}< / pre >
< / div > < h4 > Requirements:< / h4 >
2008-07-09 00:39:00 +00:00
< p > T must have accessible copy constructor and must not be a reference (there is no requirement that T's copy constructor does not throw.)< / p >
2008-06-28 18:29:40 +00:00
< h4 > Description:< / h4 >
2009-04-08 20:09:47 +00:00
< p > This class template is used to associate a Tag type with a value type T. Objects of type < span class = "RenoLink" > error_info< / span > < Tag,T> can be passed to < span class = "RenoLink" > < a href = "exception_operator_shl.html" > operator< < < / a > < / span > to be stored in objects of type boost::< span class = "RenoLink" > < a href = "exception.html" > exception< / a > < / span > .< / p >
2009-04-01 21:30:25 +00:00
< h4 > Usage:< / h4 >
2009-05-17 06:12:29 +00:00
< p > The header < < span class = "RenoLink" > < a href = "boost_exception_error_info_hpp.html" > boost/exception/error_info.hpp< / a > < / span > > provides a declaration of the < span class = "RenoLink" > error_info< / span > template, which is sufficient for the purpose of typedefing an instance for specific Tag and T, for example:< / p >
< pre > #include < < span class = "RenoLink" > < a href = "boost_exception_error_info_hpp.html" > boost/exception/error_info.hpp< / a > < / span > >
2009-04-01 21:30:25 +00:00
struct tag_errno;
2009-04-08 20:09:47 +00:00
typedef boost::< span class = "RenoLink" > error_info< / span > < tag_errno,int> errno_info;< / pre >
2009-04-01 21:30:25 +00:00
< p > Or, the shorter equivalent:< / p >
2009-05-17 06:12:29 +00:00
< pre > #include < < span class = "RenoLink" > < a href = "boost_exception_error_info_hpp.html" > boost/exception/error_info.hpp< / a > < / span > >
2008-06-28 18:29:40 +00:00
2009-04-08 20:09:47 +00:00
typedef boost::< span class = "RenoLink" > error_info< / span > < struct tag_errno,int> errno_info;< / pre >
2009-05-17 06:12:29 +00:00
< p > This errno_info typedef can be passed to < span class = "RenoLink" > < a href = "exception_operator_shl.html" > operator< < < / a > < / span > (#include < < span class = "RenoLink" > < a href = "boost_exception_info_hpp.html" > boost/exception/info.hpp< / a > < / span > > first) to store an int named tag_errno in exceptions of types that derive from boost::< span class = "RenoLink" > < a href = "exception.html" > exception< / a > < / span > :< / p >
2009-04-01 21:30:25 +00:00
< pre > throw file_read_error() < span class = "RenoLink" > < a href = "exception_operator_shl.html" > < < < / a > < / span > errno_info(errno);< / pre >
2009-05-17 06:12:29 +00:00
< p > It can also be passed to < span class = "RenoLink" > < a href = "get_error_info.html" > get_error_info< / a > < / span > (#include < < span class = "RenoLink" > < a href = "boost_exception_get_error_info_hpp.html" > boost/exception/get_error_info.hpp< / a > < / span > > first) to retrieve the tag_errno int from a boost::< span class = "RenoLink" > < a href = "exception.html" > exception< / a > < / span > :< / p >
2009-04-01 21:30:25 +00:00
< pre > catch( boost::< span class = "RenoLink" > < a href = "exception.html" > exception< / a > < / span > & x )
{
2009-04-09 06:31:19 +00:00
if( int const * e=boost::< span class = "RenoLink" > < a href = "get_error_info.html" > get_error_info< / a > < / span > < errno_info> (x) )
2009-04-01 21:30:25 +00:00
....
}< / pre >
2009-07-22 20:55:50 +00:00
< p > For convenience and uniformity, Boost Exception defines the following commonly used < span class = "RenoLink" > error_info< / span > typedefs, ready for use with < span class = "RenoLink" > < a href = "exception_operator_shl.html" > operator< < < / a > < / span > :< / p >
2009-10-22 07:14:09 +00:00
< div class = "RenoPageList" > < a href = "errinfo_api_function.html" > errinfo_api_function< / a > < br / >
< a href = "errinfo_at_line.html" > errinfo_at_line< / a > < br / >
< a href = "errinfo_errno.html" > errinfo_errno< / a > < br / >
< a href = "errinfo_file_handle.html" > errinfo_file_handle< / a > < br / >
< a href = "errinfo_file_name.html" > errinfo_file_name< / a > < br / >
< a href = "errinfo_file_open_mode.html" > errinfo_file_open_mode< / a > < br / >
< a href = "errinfo_nested_exception.html" > errinfo_nested_exception< / a > < br / >
< a href = "errinfo_type_info_name.html" > errinfo_type_info_name< / a > < / div >
2008-07-09 00:39:00 +00:00
< / div > < div class = "RenoAutoDIV" > < div class = "RenoHR" > < hr / > < / div >
2009-10-22 07:14:09 +00:00
See also: < span class = "RenoPageList" > < a href = "boost-exception.html" > Boost Exception< / a > | < a href = "boost_exception_error_info_hpp.html" > boost/exception/error_info.hpp< / a > | < a href = "boost_exception_exception_hpp.html" > boost/exception/exception.hpp< / a > | < a href = "boost_exception_info_hpp.html" > boost/exception/info.hpp< / a > | < a href = "diagnostic_information.html" > diagnostic_information< / a > | < a href = "diagnostic_information_what.html" > diagnostic_information_what< / a > | < a href = "error_info_error_info.html" > error_info::error_info< / a > | < a href = "error_info_value.html" > error_info::value< / a > | < a href = "error_info_value_type.html" > error_info::value_type< / a > | < a href = "exception.html" > exception< / a > | < a href = "exception_operator_shl.html" > exception/operator< < < / a > | < a href = "exception_ptr.html" > exception_ptr< / a > | < a href = "frequently_asked_questions.html" > Frequently Asked Questions< / a > | < a href = "get_error_info.html" > get_error_info< / a > | < a href = "tutorial_enable_error_info.html" > Integrating Boost Exception in Existing Exception Class Hierarchies< / a > | < a href = "motivation.html" > Motivation< / a > | < a href = "original_exception_type.html" > original_exception_type< / a > | < a href = "tuple_operator_shl.html" > tuple/operator< < < / a > < / span >
2008-07-09 00:39:00 +00:00
< / div >
2009-04-02 05:04:38 +00:00
<!-- Copyright (c) 2006 - 2009 Emil Dotchevski and Reverge Studios, Inc. -->
2008-06-28 18:29:40 +00:00
<!-- 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) -->
< div id = "footer" >
< p >
2009-03-29 05:04:54 +00:00
< a class = "logo" href = "http://jigsaw.w3.org/css-validator/check/referer" > < img class = "logo_pic" src = "valid-css.png" alt = "Valid CSS" height = "31" width = "88" / > < / a >
2008-06-28 18:29:40 +00:00
< a class = "logo" href = "http://validator.w3.org/check?uri=referer" > < img class = "logo_pic" src = "valid-xhtml.png" alt = "Valid XHTML 1.0" height = "31" width = "88" / > < / a >
2009-04-02 05:04:38 +00:00
< small > Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.< br / >
2008-06-28 18:29:40 +00:00
Distributed under the < a href = "http://www.boost.org/LICENSE_1_0.txt" > Boost Software License, Version 1.0< / a > .< / small >
< / p >
< / div >
< / div >
< / div >
< / div >
< / body >
< / html >