Revision: 322 Author: alai04 Date: Fri Sep 4 04:09:20 2009 Log: 转换至1.40.0,第6批,完成以下库: assign bimap bind & mem_fn call_traits circular_buffer compatibility compressed_pair config conversion crc dynamic_bitset enable_if exception operators http://code.google.com/p/boost-doc-zh/source/detail?r=322 Added: /trunk/libs/bind/doc /trunk/libs/bind/doc/ref.xml /trunk/libs/crc/test /trunk/libs/crc/test/crc_test.cpp /trunk/libs/exception/doc/boost_exception_all_hpp.html /trunk/libs/exception/doc/boost_exception_diagnostic_information_hpp.html /trunk/libs/exception/doc/boost_exception_enable_current_exception_hpp.html /trunk/libs/exception/doc/boost_exception_enable_error_info_hpp.html /trunk/libs/exception/doc/boost_exception_errinfo_api_function_hpp.html /trunk/libs/exception/doc/boost_exception_errinfo_at_line_hpp.html /trunk/libs/exception/doc/boost_exception_errinfo_errno_hpp.html /trunk/libs/exception/doc/boost_exception_errinfo_file_handle_hpp.html /trunk/libs/exception/doc/boost_exception_errinfo_file_name_hpp.html /trunk/libs/exception/doc/boost_exception_errinfo_file_open_mode_hpp.html /trunk/libs/exception/doc/boost_exception_errinfo_type_info_name_hpp.html /trunk/libs/exception/doc/boost_exception_error_info_hpp.html /trunk/libs/exception/doc/boost_exception_exception_hpp.html /trunk/libs/exception/doc/boost_exception_get_error_info_hpp.html /trunk/libs/exception/doc/boost_exception_hpp.html /trunk/libs/exception/doc/boost_exception_info_hpp.html /trunk/libs/exception/doc/boost_exception_info_tuple_hpp.html /trunk/libs/exception/doc/boost_exception_ptr_hpp.html /trunk/libs/exception/doc/boost_throw_exception_hpp.html /trunk/libs/exception/doc/errinfo_api_function.html /trunk/libs/exception/doc/errinfo_at_line.html /trunk/libs/exception/doc/errinfo_errno.html /trunk/libs/exception/doc/errinfo_file_handle.html /trunk/libs/exception/doc/errinfo_file_name.html /trunk/libs/exception/doc/errinfo_file_open_mode.html /trunk/libs/exception/doc/errinfo_type_info_name.html Deleted: /trunk/libs/crc/crc_test.cpp /trunk/libs/exception/doc/exception_cloning_hpp.html /trunk/libs/exception/doc/exception_diagnostic_information_hpp.html /trunk/libs/exception/doc/exception_enable_current_exception_hpp.html /trunk/libs/exception/doc/exception_enable_error_info_hpp.html /trunk/libs/exception/doc/exception_error_info_group_hpp.html /trunk/libs/exception/doc/exception_error_info_hpp.html /trunk/libs/exception/doc/exception_error_info_value_hpp.html /trunk/libs/exception/doc/exception_exception_hpp.html /trunk/libs/exception/doc/exception_get_error_info_hpp.html /trunk/libs/exception/doc/exception_hpp.html Modified: /trunk/libs/circular_buffer/doc/circular_buffer.html /trunk/libs/config/doc/html/boost_config/boost_macro_reference.html /trunk/libs/config/doc/html/index.html /trunk/libs/crc/crc.html /trunk/libs/exception/doc/current_exception.html /trunk/libs/exception/doc/current_exception_diagnostic_information.html /trunk/libs/exception/doc/diagnostic_information.html /trunk/libs/exception/doc/enable_current_exception.html /trunk/libs/exception/doc/enable_error_info.html /trunk/libs/exception/doc/error_info.html /trunk/libs/exception/doc/error_info_error_info.html /trunk/libs/exception/doc/error_info_value.html /trunk/libs/exception/doc/exception.html /trunk/libs/exception/doc/exception_operator_shl.html /trunk/libs/exception/doc/exception_ptr.html /trunk/libs/exception/doc/frequently_asked_questions.html /trunk/libs/exception/doc/get_error_info.html /trunk/libs/exception/doc/headers.html /trunk/libs/exception/doc/page_idx.html /trunk/libs/exception/doc/rethrow_exception.html /trunk/libs/exception/doc/synopsis.html /trunk/libs/exception/doc/throw_exception.html /trunk/libs/exception/doc/tuple_operator_shl.html /trunk/libs/exception/doc/tutorial_diagnostic_information.html /trunk/libs/exception/doc/tutorial_enable_error_info.html /trunk/libs/exception/doc/tutorial_exception_ptr.html /trunk/libs/exception/doc/tutorial_transporting_data.html /trunk/libs/exception/doc/types.html /trunk/libs/exception/doc/unknown_exception.html /trunk/libs/utility/operators.htm ======================================= --- /dev/null +++ /trunk/libs/bind/doc/ref.xml Fri Sep 4 04:09:20 2009 @@ -0,0 +1,262 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" + "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd";>+<library name="Ref" dirname="ref" id="ref" last-revision="$Date: 2009-06-03 10:36:08 -0400 (Wed, 03 Jun 2009) $">
+ <libraryinfo> + <author> + <firstname>Jaakko</firstname> + <surname>Järvi</surname> + </author> + <author> + <firstname>Peter</firstname> + <surname>Dimov</surname> + </author> + <author> + <firstname>Douglas</firstname> + <surname>Gregor</surname> + </author> + <author> + <firstname>Dave</firstname> + <surname>Abrahams</surname> + </author> + + <copyright> + <year>1999</year> + <year>2000</year> + <holder>Jaakko Järvi</holder> + </copyright> + + <copyright> + <year>2001</year> + <year>2002</year> + <holder>Peter Dimov</holder> + </copyright> + + <copyright> + <year>2002</year> + <holder>David Abrahams</holder> + </copyright> + + <legalnotice> + <para>Subject to the Boost Software License, Version 1.0. See + accompanying file <filename>LICENSE_1_0.txt</filename> or copy at+ <ulink url="http://www.boost.org/LICENSE_1_0.txt";>http://www.boost.org/LICENSE_1_0.txt</ulink>.
+ </para> + </legalnotice> ++ <librarypurpose>A utility library for passing references to generic functions</librarypurpose>
+ <librarycategory name="category:higher-order"/> + </libraryinfo> + +<title>Boost.Ref</title> + +<section id="ref.intro"> + <title>Introduction</title> + + <using-namespace name="boost"/> + + <para>The Ref library is a small library that is useful for passing + references to function templates (algorithms) that would usually + take copies of their arguments. It defines the class template + <code><classname>boost::reference_wrapper<T></classname></code>, + two functions + <code><functionname>boost::ref</functionname></code> and + <code><functionname>boost::cref</functionname></code> that return + instances of <code>boost::reference_wrapper<T></code>, + a function <code><functionname>boost::unwrap_ref</functionname></code> + that unwraps a <code>boost::reference_wrapper<T></code> or + returns a reference to any other type of object, and the + two traits classes + <code><classname>boost::is_reference_wrapper<T></classname></code> + and+ <code><classname>boost::unwrap_reference<T></classname></code>.</para>
+ + <para>The purpose of + <code>boost::reference_wrapper<T></code> is to + contain a reference to an object of type T. It is primarily used to + "feed" references to function templates (algorithms) that take their + parameter by value.</para> + + <para>To support this usage, + <code>boost::reference_wrapper<T></code> provides an implicit + conversion to <code>T&</code>. This usually allows the function + templates to work on references unmodified.</para> + + <para><code>boost::reference_wrapper<T></code> is + both CopyConstructible and Assignable (ordinary references are not + Assignable).</para> + + <para>The expression <code>boost::ref(x)</code> + returns a + <code>boost::reference_wrapper<X>(x)</code> where X + is the type of x. Similarly, + <code>boost::cref(x)</code> returns a + <code>boost::reference_wrapper<X const>(x)</code>.</para> + + <para>The expression <code>boost::unwrap_ref(x)</code> + returns a + <code>boost::unwrap_reference<X>::type&</code> where X + is the type of x.</para> + + <para>The expression + <code>boost::is_reference_wrapper<T>::value</code> + is true if T is a <code>reference_wrapper</code>, and + false otherwise.</para> + + <para>The type-expression + <code>boost::unwrap_reference<T>::type</code> is T::type if T + is a <code>reference_wrapper</code>, T otherwise.</para> +</section> + +<library-reference> +<header name="boost/ref.hpp"> + <namespace name="boost"> + <class name="reference_wrapper"> + <template> + <template-type-parameter name="T"/> + </template> + <purpose> + Contains a reference to an object of type + <computeroutput>T</computeroutput>. + </purpose> + + <description>+ <para><computeroutput><classname>reference_wrapper</classname></computeroutput>
+ is primarily used to "feed" references to function templates + (algorithms) that take their parameter by value. It provides + an implicit conversion to + <computeroutput>T&</computeroutput>, which usually allows + the function templates to work on references + unmodified.</para> + </description> + + <typedef name="type"><type>T</type></typedef> + + <constructor specifiers="explicit"> + <parameter name="t"> + <paramtype>T&</paramtype> + </parameter> + + <effects><simpara>Constructs a+ <computeroutput><classname>reference_wrapper</classname></computeroutput>
+ object that stores a reference to + <computeroutput>t</computeroutput>.</simpara></effects> + + <throws><simpara>Does not throw.</simpara></throws> + </constructor> + + <method-group name="access"> + <method name="conversion-operator" cv="const"> + <type>T&</type> + <returns><simpara>The stored reference.</simpara></returns> + <throws><simpara>Does not throw.</simpara></throws> + </method> + + <method name="get" cv="const"> + <type>T&</type> + <returns><simpara>The stored reference.</simpara></returns> + <throws><simpara>Does not throw.</simpara></throws> + </method> + + <method name="get_pointer" cv="const"> + <type>T*</type>+ <returns><simpara>A pointer to the object referenced by the stored reference.</simpara></returns>
+ <throws><simpara>Does not throw.</simpara></throws> + </method> + </method-group> + + <free-function-group name="constructors"> + <function name="ref"> + <type>reference_wrapper<T></type> + <parameter name="t"> + <paramtype>T&</paramtype> + </parameter> ++ <returns><simpara><computeroutput><classname>reference_wrapper</classname><T>(t)</computeroutput></simpara></returns>
+ + <throws><simpara>Does not throw.</simpara></throws> + </function> + + <function name="cref"> + <type>reference_wrapper<T const></type> + <parameter name="t"> + <paramtype>T const&</paramtype> + </parameter> ++ <returns><simpara><computeroutput><classname>reference_wrapper</classname><T const>(t)</computeroutput></simpara></returns>
+ + <throws><simpara>Does not throw.</simpara></throws> + </function> + </free-function-group> + + <free-function-group name="access"> + <function name="unwrap_ref"> + <type>unwrap_reference<T>::type&</type> + <parameter name="t"> + <paramtype>T&</paramtype> + </parameter> ++ <returns><simpara><computeroutput><classname>unwrap_reference</classname><T>::type&(t)</computeroutput></simpara></returns>
+ + <throws><simpara>Does not throw.</simpara></throws> + </function> + </free-function-group> + </class> + + <class name="is_reference_wrapper"> + <template> + <template-type-parameter name="T"/> + </template> ++ <purpose>Determine if a type <computeroutput>T</computeroutput> is an instantiation of <computeroutput><classname>reference_wrapper</classname></computeroutput>.</purpose>
+ + <description> + <para>The <computeroutput>value</computeroutput> static + constant will be <computeroutput>true</computeroutput> iff the + type <computeroutput>T</computeroutput> is a specialization of+ <computeroutput><classname>reference_wrapper</classname></computeroutput>.</para>
+ </description> + + <static-constant name="value"> + <type>bool</type> + <default><emphasis>unspecified</emphasis></default> + </static-constant> + </class> + + <class name="unwrap_reference"> + <template> + <template-type-parameter name="T"/> + </template> ++ <purpose>Find the type in a <computeroutput><classname>reference_wrapper</classname></computeroutput>.</purpose>
+ + <description> + <para>The typedef <computeroutput>type</computeroutput> is + <computeroutput>T::type</computeroutput> if + <computeroutput>T</computeroutput> is a+ <computeroutput><classname>reference_wrapper</classname></computeroutput>,
+ <computeroutput>T</computeroutput> otherwise.</para> + </description> ++ <typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef>
+ </class> + </namespace> +</header> +</library-reference> + +<section id="ref.ack"> + <title>Acknowledgements</title> + + <using-namespace name="boost"/> ++ <para><functionname>ref</functionname> and <functionname>cref</functionname>
+ were originally part of the <libraryname>Tuple</libraryname> library + by Jaakko Järvi. They were "promoted to boost:: status" by + Peter Dimov because they are generally useful. Douglas Gregor and + Dave Abrahams contributed + <classname>is_reference_wrapper</classname> and + <classname>unwrap_reference</classname>. Frank Mori Hess and Ronald + Garcia contributed <functionname>boost::unwrap_ref</functionname></para> +</section> + +</library> ======================================= --- /dev/null +++ /trunk/libs/crc/test/crc_test.cpp Fri Sep 4 04:09:20 2009 @@ -0,0 +1,761 @@+// Boost CRC test program file ---------------------------------------------//
+ +// Copyright 2001, 2003, 2004 Daryle Walker. Use, modification, and+// distribution are subject to the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or a copy at +// <http://www.boost.org/LICENSE_1_0.txt>.) + +// See <http://www.boost.org/libs/crc/> for the library's home page. + +// Revision History +// 28 Aug 2004 Added CRC tests for polynominals shorter than 8 bits +// (Daryle Walker, by patch from Bert Klaps) +// 23 Aug 2003 Adjust to updated Test framework (Daryle Walker) +// 14 May 2001 Initial version (Daryle Walker) + + +#include <boost/config.hpp> // for BOOST_MSVC, etc.+#include <boost/crc.hpp> // for boost::crc_basic, etc. +#include <boost/cstdint.hpp> // for boost::uint16_t, etc.
+#include <boost/cstdlib.hpp> // for boost::exit_success +#include <boost/integer.hpp> // for boost::uint_t +#include <boost/random/linear_congruential.hpp> // for boost::minstd_rand +#include <boost/test/minimal.hpp> // for main, etc. +#include <boost/timer.hpp> // for boost::timer + +#include <algorithm> // for std::for_each, std::generate_n, std::count +#include <climits> // for CHAR_BIT +#include <cstddef> // for std::size_t+#include <iostream> // for std::cout (std::ostream and std::endl indirectly)
+ + +#if CHAR_BIT != 8 +#error The expected results assume an eight-bit byte. +#endif ++#if !(defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) || (defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)))
+#define CRC_PARM_TYPE typename boost::uint_t<Bits>::fast +#else +#define CRC_PARM_TYPE unsigned long +#endif + +#if !defined(BOOST_MSVC) && !defined(__GNUC__) +#define PRIVATE_DECLARE_BOOST( TypeName ) using boost:: TypeName +#else+#define PRIVATE_DECLARE_BOOST( TypeName ) typedef boost:: TypeName TypeName
+#endif + + +// Types +template < std::size_t Bits, CRC_PARM_TYPE TrPo, CRC_PARM_TYPE InRe, + CRC_PARM_TYPE FiXo, bool ReIn, bool ReRe > +class crc_tester +{ +public: + // All the following were separate function templates, but they have + // been moved to class-static member functions of a class template + // because MS VC++ 6 can't handle function templates that can't + // deduce all their template arguments from their function arguments. + + typedef typename boost::uint_t<Bits>::fast value_type; ++ static void master_test( char const *test_name, value_type expected );
+ +private: + typedef boost::crc_optimal<Bits, TrPo, InRe, FiXo, ReIn, ReRe> + optimal_crc_type; + typedef boost::crc_basic<Bits> basic_crc_type; + + static void compute_test( value_type expected ); + static void interrupt_test( value_type expected ); + static void error_test(); + +}; // crc_tester + +// Global data+unsigned char const std_data[] = { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+ 0x38, 0x39 };+std::size_t const std_data_len = sizeof( std_data ) / sizeof( std_data[0] );
+ +boost::uint16_t const std_crc_ccitt_result = 0x29B1; +boost::uint16_t const std_crc_16_result = 0xBB3D; +boost::uint32_t const std_crc_32_result = 0xCBF43926; + +// Function prototypes +void timing_test(); +boost::uint32_t basic_crc32( void const *buffer, std::size_t byte_count );+boost::uint32_t optimal_crc32( void const *buffer, std::size_t byte_count );
+boost::uint32_t quick_crc32( void const *buffer, std::size_t byte_count ); +boost::uint32_t quick_reflect( boost::uint32_t value, std::size_t bits ); +double time_trial( char const *name, + boost::uint32_t (*crc_func)(void const *, std::size_t), + boost::uint32_t expected, void const *data, std::size_t length ); + +void augmented_tests(); +boost::uint32_t native_to_big( boost::uint32_t x ); +boost::uint32_t big_to_native( boost::uint32_t x ); + +void small_crc_test1(); +void small_crc_test2(); + + +// Macro to compact code +#define PRIVATE_TESTER_NAME crc_tester<Bits, TrPo, InRe, FiXo, ReIn, ReRe> + +// Run a test on slow and fast CRC computers and function +template < std::size_t Bits, CRC_PARM_TYPE TrPo, CRC_PARM_TYPE InRe, + CRC_PARM_TYPE FiXo, bool ReIn, bool ReRe > +void +PRIVATE_TESTER_NAME::compute_test +( + typename PRIVATE_TESTER_NAME::value_type expected +) +{ + std::cout << "\tDoing computation tests." << std::endl; + + optimal_crc_type fast_crc; + basic_crc_type slow_crc( TrPo, InRe, FiXo, ReIn, ReRe );+ value_type const func_result = boost::crc<Bits, TrPo, InRe, FiXo, ReIn,
+ ReRe>( std_data, std_data_len ); + + fast_crc.process_bytes( std_data, std_data_len ); + slow_crc.process_bytes( std_data, std_data_len ); + BOOST_CHECK( fast_crc.checksum() == expected ); + BOOST_CHECK( slow_crc.checksum() == expected ); + BOOST_CHECK( func_result == expected ); +} + +// Run a test in two runs, and check all the inspectors +template < std::size_t Bits, CRC_PARM_TYPE TrPo, CRC_PARM_TYPE InRe, + CRC_PARM_TYPE FiXo, bool ReIn, bool ReRe > +void +PRIVATE_TESTER_NAME::interrupt_test +( + typename PRIVATE_TESTER_NAME::value_type expected +) +{ + std::cout << "\tDoing interrupt tests." << std::endl; + + // Process the first half of the data (also test accessors) + optimal_crc_type fast_crc1; + basic_crc_type slow_crc1( fast_crc1.get_truncated_polynominal(), + fast_crc1.get_initial_remainder(), fast_crc1.get_final_xor_value(), + fast_crc1.get_reflect_input(), fast_crc1.get_reflect_remainder() ); + + BOOST_CHECK( fast_crc1.get_interim_remainder() == + slow_crc1.get_initial_remainder() ); + + std::size_t const mid_way = std_data_len / 2; + unsigned char const * const std_data_end = std_data + std_data_len; + + fast_crc1.process_bytes( std_data, mid_way ); + slow_crc1.process_bytes( std_data, mid_way ); + BOOST_CHECK( fast_crc1.checksum() == slow_crc1.checksum() ); + + // Process the second half of the data (also test accessors) + boost::crc_optimal<optimal_crc_type::bit_count,+ optimal_crc_type::truncated_polynominal, optimal_crc_type::initial_remainder,
+ optimal_crc_type::final_xor_value, optimal_crc_type::reflect_input, + optimal_crc_type::reflect_remainder> + fast_crc2( fast_crc1.get_interim_remainder() ); + boost::crc_basic<basic_crc_type::bit_count> slow_crc2(+ slow_crc1.get_truncated_polynominal(), slow_crc1.get_interim_remainder(),
+ slow_crc1.get_final_xor_value(), slow_crc1.get_reflect_input(), + slow_crc1.get_reflect_remainder() ); + + fast_crc2.process_block( std_data + mid_way, std_data_end ); + slow_crc2.process_block( std_data + mid_way, std_data_end ); + BOOST_CHECK( fast_crc2.checksum() == slow_crc2.checksum() ); + BOOST_CHECK( fast_crc2.checksum() == expected ); + BOOST_CHECK( slow_crc2.checksum() == expected ); +} + +// Run a test to see if a single-bit error is detected +template < std::size_t Bits, CRC_PARM_TYPE TrPo, CRC_PARM_TYPE InRe, + CRC_PARM_TYPE FiXo, bool ReIn, bool ReRe > +void +PRIVATE_TESTER_NAME::error_test +( +) +{ + PRIVATE_DECLARE_BOOST( uint32_t ); + + // A single-bit error is ensured to be detected if the polynominal + // has at least two bits set. The highest bit is what is removed + // to give the truncated polynominal, and it is always set. This + // means that the truncated polynominal needs at least one of its + // bits set, which implies that it cannot be zero. + if ( !(TrPo & boost::detail::mask_uint_t<Bits>::sig_bits_fast) ) + { + BOOST_FAIL( "truncated CRC polymonial is zero" ); + } + + std::cout << "\tDoing error tests." << std::endl; + + // Create a random block of data + uint32_t ran_data[ 256 ]; + std::size_t const ran_length = sizeof(ran_data) / sizeof(ran_data[0]); + + std::generate_n( ran_data, ran_length, boost::minstd_rand() ); + + // Create computers and compute the checksum of the data + optimal_crc_type fast_tester; + basic_crc_type slow_tester( TrPo, InRe, FiXo, ReIn, ReRe ); + + fast_tester.process_bytes( ran_data, sizeof(ran_data) ); + slow_tester.process_bytes( ran_data, sizeof(ran_data) ); + + uint32_t const fast_checksum = fast_tester.checksum(); + uint32_t const slow_checksum = slow_tester.checksum(); + + BOOST_CHECK( fast_checksum == slow_checksum ); + + // Do the checksum again (and test resetting ability) + fast_tester.reset(); + slow_tester.reset( InRe ); + fast_tester.process_bytes( ran_data, sizeof(ran_data) ); + slow_tester.process_bytes( ran_data, sizeof(ran_data) ); + BOOST_CHECK( fast_tester.checksum() == slow_tester.checksum() ); + BOOST_CHECK( fast_tester.checksum() == fast_checksum ); + BOOST_CHECK( slow_tester.checksum() == slow_checksum ); + + // Produce a single-bit error + ran_data[ ran_data[0] % ran_length ] ^= ( 1 << (ran_data[1] % 32) ); + + // Compute the checksum of the errorenous data + // (and continue testing resetting ability) + fast_tester.reset( InRe ); + slow_tester.reset(); + fast_tester.process_bytes( ran_data, sizeof(ran_data) ); + slow_tester.process_bytes( ran_data, sizeof(ran_data) ); + BOOST_CHECK( fast_tester.checksum() == slow_tester.checksum() ); + BOOST_CHECK( fast_tester.checksum() != fast_checksum ); + BOOST_CHECK( slow_tester.checksum() != slow_checksum ); +} + +// Run the other CRC object tests +template < std::size_t Bits, CRC_PARM_TYPE TrPo, CRC_PARM_TYPE InRe, + CRC_PARM_TYPE FiXo, bool ReIn, bool ReRe > +void +PRIVATE_TESTER_NAME::master_test +( + char const * test_name, + typename PRIVATE_TESTER_NAME::value_type expected +) +{ + std::cout << "Doing test suite for " << test_name << '.' << std::endl; + compute_test( expected ); + interrupt_test( expected ); + error_test(); +} + +// Undo limited macros +#undef PRIVATE_TESTER_NAME + + +// A CRC-32 computer based on crc_basic, for timing +boost::uint32_t +basic_crc32 +( + void const * buffer, + std::size_t byte_count +) +{+ static boost::crc_basic<32> computer( 0x04C11DB7, 0xFFFFFFFF, 0xFFFFFFFF,
+ true, true ); + + computer.reset(); + computer.process_bytes( buffer, byte_count ); + return computer.checksum(); +} + +// A CRC-32 computer based on crc_optimal, for timing +inline +boost::uint32_t +optimal_crc32 +( + void const * buffer, + std::size_t byte_count +) +{ + static boost::crc_32_type computer; + + computer.reset(); + computer.process_bytes( buffer, byte_count ); + return computer.checksum(); +} + +// Reflect the lower "bits" bits of a "value" +boost::uint32_t +quick_reflect +( + boost::uint32_t value, + std::size_t bits +) +{ + boost::uint32_t reflection = 0; + for ( std::size_t i = 0 ; i < bits ; ++i ) + { + if ( value & (1u << i) ) + { + reflection |= 1 << ( bits - 1 - i ); + } + } + + return reflection; +} + +// A customized CRC-32 computer, for timing +boost::uint32_t +quick_crc32 +( + void const * buffer, + std::size_t byte_count +) +{ + PRIVATE_DECLARE_BOOST( uint32_t ); + typedef unsigned char byte_type; + + // Compute the CRC table (first run only) + static bool did_init = false; + static uint32_t crc_table[ 1ul << CHAR_BIT ]; + if ( !did_init ) + { + uint32_t const value_high_bit = static_cast<uint32_t>(1) << 31u; + + byte_type dividend = 0; + do + { + uint32_t remainder = 0;+ for ( byte_type mask = 1u << (CHAR_BIT - 1u) ; mask ; mask >>= 1 )
+ { + if ( dividend & mask ) + { + remainder ^= value_high_bit; + } + + if ( remainder & value_high_bit ) + { + remainder <<= 1; + remainder ^= 0x04C11DB7u; + } + else + { + remainder <<= 1; + } + } + + crc_table[ quick_reflect(dividend, CHAR_BIT) ] + = quick_reflect( remainder, 32 ); + } + while ( ++dividend ); + + did_init = true; + } + + // Compute the CRC of the data + uint32_t rem = 0xFFFFFFFF; ++ byte_type const * const b_begin = static_cast<byte_type const *>( buffer );
+ byte_type const * const b_end = b_begin + byte_count; + for ( byte_type const *p = b_begin ; p < b_end ; ++p ) + { + byte_type const byte_index = *p ^ rem; + rem >>= CHAR_BIT; + rem ^= crc_table[ byte_index ]; + } + + return ~rem; +} + +// Run an individual timing trial +double +time_trial +( + char const * name, + boost::uint32_t (*crc_func)(void const *, std::size_t), + boost::uint32_t expected, + void const * data, + std::size_t length +) +{ + PRIVATE_DECLARE_BOOST( uint32_t ); + using std::cout; + + // Limits of a trial + static uint32_t const max_count = 1L << 16; // ~square-root of max + static double const max_time = 3.14159; // easy as pi(e) + + // Mark the trial + cout << '\t' << name << " CRC-32: "; + + // Trial loop + uint32_t trial_count = 0, wrong_count = 0; + double elapsed_time = 0.0; + boost::timer t; + + do + { + uint32_t const scratch = (*crc_func)( data, length ); + + if ( scratch != expected ) + { + ++wrong_count; + } + elapsed_time = t.elapsed(); + ++trial_count; + } while ( (trial_count < max_count) && (elapsed_time < max_time) ); + + if ( wrong_count ) + { + BOOST_ERROR( "at least one time trial didn't match expected" ); + } + + // Report results + double const rate = trial_count / elapsed_time; + + cout << trial_count << " runs, " << elapsed_time << " s, " << rate + << " run/s" << std::endl; + return rate; +} + +// Time runs of Boost CRCs vs. a customized CRC function +void +timing_test +( +) +{ + PRIVATE_DECLARE_BOOST( uint32_t ); + using std::cout; + using std::endl; + + cout << "Doing timing tests." << endl; + + // Create a random block of data + boost::int32_t ran_data[ 256 ]; + std::size_t const ran_length = sizeof(ran_data) / sizeof(ran_data[0]); + + std::generate_n( ran_data, ran_length, boost::minstd_rand() ); + + // Use the first runs as a check. This gives a chance for first- + // time static initialization to not interfere in the timings.+ uint32_t const basic_result = basic_crc32( ran_data, sizeof(ran_data) ); + uint32_t const optimal_result = optimal_crc32( ran_data, sizeof(ran_data) ); + uint32_t const quick_result = quick_crc32( ran_data, sizeof(ran_data) );
+ + BOOST_CHECK( basic_result == optimal_result ); + BOOST_CHECK( optimal_result == quick_result ); + BOOST_CHECK( quick_result == basic_result ); + + // Run trials + double const basic_rate = time_trial( "Boost-Basic", basic_crc32, + basic_result, ran_data, sizeof(ran_data) );+ double const optimal_rate = time_trial( "Boost-Optimal", optimal_crc32,
+ optimal_result, ran_data, sizeof(ran_data) ); + double const quick_rate = time_trial( "Reference", quick_crc32, + quick_result, ran_data, sizeof(ran_data) ); + + // Report results+ cout << "\tThe optimal Boost version is " << (quick_rate - optimal_rate)
+ / quick_rate * 100.0 << "% slower than the reference version.\n"; + cout << "\tThe basic Boost version is " << (quick_rate - basic_rate) + / quick_rate * 100.0 << "% slower than the reference version.\n"; + cout << "\tThe basic Boost version is " << (optimal_rate - basic_rate) + / optimal_rate * 100.0 << "% slower than the optimal Boost version." + << endl; +} + + +// Reformat an integer to the big-endian storage format +boost::uint32_t +native_to_big +( + boost::uint32_t x +) +{ + boost::uint32_t temp; + unsigned char * tp = reinterpret_cast<unsigned char *>( &temp ); + + for ( std::size_t i = sizeof(x) ; i > 0 ; --i ) + { + tp[ i - 1 ] = static_cast<unsigned char>( x ); + x >>= CHAR_BIT; + } + + return temp; +} + +// Restore an integer from the big-endian storage format +boost::uint32_t +big_to_native +( + boost::uint32_t x +) +{ + boost::uint32_t temp = 0; + unsigned char * xp = reinterpret_cast<unsigned char *>( &x ); + + for ( std::size_t i = 0 ; i < sizeof(x) ; ++i ) + { + temp <<= CHAR_BIT; + temp |= xp[ i ]; + } + + return temp; +} + +// Run tests on using CRCs on augmented messages +void +augmented_tests +( +) +{ + #define PRIVATE_ACRC_FUNC boost::augmented_crc<32, 0x04C11DB7> + + using std::size_t; + PRIVATE_DECLARE_BOOST( uint32_t ); + + std::cout << "Doing CRC-augmented message tests." << std::endl; + + // Create a random block of data, with space for a CRC. + uint32_t ran_data[ 257 ]; + size_t const ran_length = sizeof(ran_data) / sizeof(ran_data[0]); + size_t const data_length = ran_length - 1; + + std::generate_n( ran_data, data_length, boost::minstd_rand() ); + + // When creating a CRC for an augmented message, use + // zeros in the appended CRC spot for the first run. + uint32_t & ran_crc = ran_data[ data_length ]; + + ran_crc = 0; + + // Compute the CRC with augmented-CRC computing function + typedef boost::uint_t<32>::fast return_type; + + ran_crc = PRIVATE_ACRC_FUNC( ran_data, sizeof(ran_data) ); ++ // With the appended CRC set, running the checksum again should get zero.
+ // NOTE: CRC algorithm assumes numbers are in big-endian format + ran_crc = native_to_big( ran_crc ); ++ uint32_t ran_crc_check = PRIVATE_ACRC_FUNC( ran_data, sizeof(ran_data) );
+ + BOOST_CHECK( 0 == ran_crc_check ); + + // Compare that result with other CRC computing functions + // and classes, which don't accept augmented messages. + typedef boost::crc_optimal<32, 0x04C11DB7> fast_crc_type; + typedef boost::crc_basic<32> slow_crc_type; + + fast_crc_type fast_tester; + slow_crc_type slow_tester( 0x04C11DB7 ); + size_t const data_size = data_length * sizeof(ran_data[0]); + uint32_t const func_tester = boost::crc<32, 0x04C11DB7, 0, 0, false, + false>( ran_data, data_size ); + + fast_tester.process_bytes( ran_data, data_size ); + slow_tester.process_bytes( ran_data, data_size ); + BOOST_CHECK( fast_tester.checksum() == slow_tester.checksum() ); + ran_crc = big_to_native( ran_crc ); + BOOST_CHECK( fast_tester.checksum() == ran_crc ); + BOOST_CHECK( func_tester == ran_crc ); + + // Do a single-bit error test + ran_crc = native_to_big( ran_crc ); + ran_data[ ran_data[0] % ran_length ] ^= ( 1 << (ran_data[1] % 32) ); + ran_crc_check = PRIVATE_ACRC_FUNC( ran_data, sizeof(ran_data) ); + BOOST_CHECK( 0 != ran_crc_check ); + + // Run a version of these tests with a nonzero initial remainder. + uint32_t const init_rem = ran_data[ ran_data[2] % ran_length ]; + + ran_crc = 0; + ran_crc = PRIVATE_ACRC_FUNC( ran_data, sizeof(ran_data), init_rem ); + + // Have some fun by processing data in two steps. + size_t const mid_index = ran_length / 2; + + ran_crc = native_to_big( ran_crc ); + ran_crc_check = PRIVATE_ACRC_FUNC( ran_data, mid_index + * sizeof(ran_data[0]), init_rem );+ ran_crc_check = PRIVATE_ACRC_FUNC( &ran_data[mid_index], sizeof(ran_data)
+ - mid_index * sizeof(ran_data[0]), ran_crc_check ); + BOOST_CHECK( 0 == ran_crc_check ); + + // This substep translates an augmented-CRC initial + // remainder to an unaugmented-CRC initial remainder. + uint32_t const zero = 0; + uint32_t const new_init_rem = PRIVATE_ACRC_FUNC( &zero, sizeof(zero), + init_rem ); + slow_crc_type slow_tester2( 0x04C11DB7, new_init_rem ); + + slow_tester2.process_bytes( ran_data, data_size ); + ran_crc = big_to_native( ran_crc ); + BOOST_CHECK( slow_tester2.checksum() == ran_crc ); + + // Redo single-bit error test + ran_data[ ran_data[3] % ran_length ] ^= ( 1 << (ran_data[4] % 32) );+ ran_crc_check = PRIVATE_ACRC_FUNC( ran_data, sizeof(ran_data), init_rem );
+ BOOST_CHECK( 0 != ran_crc_check ); + + #undef PRIVATE_ACRC_FUNC +} + + +// Run tests on CRCs below a byte in size (here, 3 bits) +void +small_crc_test1 +( +) +{ + std::cout << "Doing short-CRC (3-bit augmented) message tests." + << std::endl; ++ // The CRC standard is a SDH/SONET Low Order LCAS control word with CRC-3
+ // taken from ITU-T G.707 (12/03) XIII.2. + + // Four samples, each four bytes; should all have a CRC of zero + unsigned char const samples[4][4] + = { + { 0x3A, 0xC4, 0x08, 0x06 }, + { 0x42, 0xC5, 0x0A, 0x41 }, + { 0x4A, 0xC5, 0x08, 0x22 }, + { 0x52, 0xC4, 0x08, 0x05 } + }; + + // Basic computer + boost::crc_basic<3> tester1( 0x03 ); + + tester1.process_bytes( samples[0], 4 ); + BOOST_CHECK( tester1.checksum() == 0 ); + + tester1.reset(); + tester1.process_bytes( samples[1], 4 ); + BOOST_CHECK( tester1.checksum() == 0 ); + + tester1.reset(); + tester1.process_bytes( samples[2], 4 ); + BOOST_CHECK( tester1.checksum() == 0 ); + + tester1.reset(); + tester1.process_bytes( samples[3], 4 ); + BOOST_CHECK( tester1.checksum() == 0 ); + + // Optimal computer + #define PRIVATE_CRC_FUNC boost::crc<3, 0x03, 0, 0, false, false> + #define PRIVATE_ACRC_FUNC boost::augmented_crc<3, 0x03> + + BOOST_CHECK( 0 == PRIVATE_CRC_FUNC(samples[0], 4) ); + BOOST_CHECK( 0 == PRIVATE_CRC_FUNC(samples[1], 4) ); + BOOST_CHECK( 0 == PRIVATE_CRC_FUNC(samples[2], 4) ); + BOOST_CHECK( 0 == PRIVATE_CRC_FUNC(samples[3], 4) ); ++ // maybe the fix to CRC functions needs to be applied to augmented CRCs?
+ + #undef PRIVATE_ACRC_FUNC + #undef PRIVATE_CRC_FUNC +} + +// Run tests on CRCs below a byte in size (here, 7 bits) +void +small_crc_test2 +( +) +{ + std::cout << "Doing short-CRC (7-bit augmented) message tests." + << std::endl; ++ // The CRC standard is a SDH/SONET J0/J1/J2/N1/N2/TR TTI (trace message)
+ // with CRC-7, o.a. ITU-T G.707 Annex B, G.832 Annex A. + + // Two samples, each sixteen bytes + // Sample 1 is '\x80' + ASCII("123456789ABCDEF") + // Sample 2 is '\x80' + ASCII("TTI UNAVAILABLE") + unsigned char const samples[2][16] + = {+ { 0x80, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41,
+ 0x42, 0x43, 0x44, 0x45, 0x46 },+ { 0x80, 0x54, 0x54, 0x49, 0x20, 0x55, 0x4E, 0x41, 0x56, 0x41, 0x49,
+ 0x4C, 0x41, 0x42, 0x4C, 0x45 } + }; + unsigned const results[2] = { 0x62, 0x23 }; + + // Basic computer + boost::crc_basic<7> tester1( 0x09 ); + + tester1.process_bytes( samples[0], 16 ); + BOOST_CHECK( tester1.checksum() == results[0] ); + + tester1.reset(); + tester1.process_bytes( samples[1], 16 ); + BOOST_CHECK( tester1.checksum() == results[1] ); + + // Optimal computer + #define PRIVATE_CRC_FUNC boost::crc<7, 0x09, 0, 0, false, false> + #define PRIVATE_ACRC_FUNC boost::augmented_crc<7, 0x09> + + BOOST_CHECK( results[0] == PRIVATE_CRC_FUNC(samples[0], 16) ); + BOOST_CHECK( results[1] == PRIVATE_CRC_FUNC(samples[1], 16) ); ++ // maybe the fix to CRC functions needs to be applied to augmented CRCs?
+ + #undef PRIVATE_ACRC_FUNC + #undef PRIVATE_CRC_FUNC +} + + +#ifndef BOOST_MSVC +// Explicit template instantiations +// (needed to fix a link error in Metrowerks CodeWarrior Pro 5.3) +template class crc_tester<16, 0x1021, 0xFFFF, 0, false, false>; +template class crc_tester<16, 0x8005, 0, 0, true, true>;+template class crc_tester<32, 0x04C11DB7, 0xFFFFFFFF, 0xFFFFFFFF, true, true>;
+#endif + +// Main testing function +int +test_main +( + int , // "argc" is unused + char * [] // "argv" is unused +) +{ + using std::cout; + using std::endl; + + // Run simulations on some CRC types+ typedef crc_tester<16, 0x1021, 0xFFFF, 0, false, false> crc_ccitt_tester;
+ typedef crc_tester<16, 0x8005, 0, 0, true, true> crc_16_tester; + typedef crc_tester<32, 0x04C11DB7, 0xFFFFFFFF, 0xFFFFFFFF, true, true> + crc_32_tester; + + crc_ccitt_tester::master_test( "CRC-CCITT", std_crc_ccitt_result ); + crc_16_tester::master_test( "CRC-16", std_crc_16_result ); + crc_32_tester::master_test( "CRC-32", std_crc_32_result ); + + // Run a timing comparison test + timing_test(); + + // Test using augmented messages + augmented_tests(); + + // Test with CRC types smaller than a byte + small_crc_test1(); + small_crc_test2(); + + // Try a CRC based on the (x + 1) polynominal, which is a factor in + // many real-life polynominals and doesn't fit evenly in a byte. + cout << "Doing one-bit polynominal CRC test." << endl; + boost::crc_basic<1> crc_1( 1 ); + crc_1.process_bytes( std_data, std_data_len ); + BOOST_CHECK( crc_1.checksum() == 1 ); + + // Test the function object interface + cout << "Doing functional object interface test." << endl; + boost::crc_optimal<16, 0x8005, 0, 0, true, true> crc_16; + crc_16 = std::for_each( std_data, std_data + std_data_len, crc_16 ); + BOOST_CHECK( crc_16() == std_crc_16_result ); + + return boost::exit_success; +} ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_all_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,64 @@ +<!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>boost/exception/all.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/all.hpp</h2>
+</div> +<h3>Synopsis</h3>+<div class="RenoIncludeDIV"><pre><span class="RenoIncludeSPAN">#include <<span class="RenoLink"><a href="boost_exception_diagnostic_information_hpp.html">boost/exception/diagnostic_information.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_exception_hpp.html">boost/exception/exception.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_get_error_info_hpp.html">boost/exception/get_error_info.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_info_hpp.html">boost/exception/info.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_info_tuple_hpp.html">boost/exception/info_tuple.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_ptr_hpp.html">boost/exception_ptr.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_api_function_hpp.html">boost/exception/errinfo_api_function.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_at_line_hpp.html">boost/exception/errinfo_at_line.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_errno_hpp.html">boost/exception/errinfo_errno.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_handle_hpp.html">boost/exception/errinfo_file_handle.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_name_hpp.html">boost/exception/errinfo_file_name.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_open_mode_hpp.html">boost/exception/errinfo_file_open_mode.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_type_info_name_hpp.html">boost/exception/errinfo_type_info_name.hpp</a></span>></span></pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_hpp.html">boost/exception.hpp<br/> +</a><a href="tutorial_diagnostic_information.html">Diagnostic Information<br/> +</a><a href="tutorial_enable_error_info.html">Integrating Boost Exception in Existing Exception Class Hierarchies<br/>
+</a><a href="synopsis.html">Synopsis<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_diagnostic_information_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,64 @@ +<!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>boost/exception/diagnostic_information.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/diagnostic_information.hpp</h2>
+</div> +<h3>Synopsis</h3> +<div class="RenoIncludeDIV"><pre>#include <string> + +namespace +boost + {+<span class="RenoIncludeSPAN"> class <span class="RenoLink"><a href="exception.html">exception</a></span>;</span>
++<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class E> + std::string <span class="RenoLink"><a href="diagnostic_information.html">diagnostic_information</a></span>( E const & e );
++ std::string <span class="RenoLink"><a href="diagnostic_information.html">diagnostic_information</a></span>( <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span> const & p );</span>
++ <span class="RenoIncludeSPAN">std::string <span class="RenoLink"><a href="current_exception_diagnostic_information.html">current_exception_diagnostic_information</a></span>();</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_all_hpp.html">boost/exception/all.hpp<br/> +</a><a href="current_exception_diagnostic_information.html">current_exception_diagnostic_information<br/>
+</a><a href="diagnostic_information.html">diagnostic_information<br/> +</a><a href="synopsis.html">Synopsis<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_enable_current_exception_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,56 @@ +<!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>boost/exception/enable_current_exception.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/exception/enable_current_exception.hpp</h3>
+</div> +<h3>Synopsis</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_exception_hpp.html">boost/exception/exception.hpp</a></span>>
+ +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T> + ---unspecified--- <span class="RenoLink"><a href="enable_current_exception.html">enable_current_exception</a></span>( T const & e );</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="enable_current_exception.html">enable_current_exception<br/>
+</a><a href="synopsis.html">Synopsis<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_enable_error_info_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,56 @@ +<!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>boost/exception/enable_error_info.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/exception/enable_error_info.hpp</h3>
+</div> +<h3>Synopsis</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_exception_hpp.html">boost/exception/exception.hpp</a></span>>
+ +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T> + ---unspecified--- <span class="RenoLink"><a href="enable_error_info.html">enable_error_info</a></span>( T const & x );</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="enable_error_info.html">enable_error_info<br/>
+</a><a href="synopsis.html">Synopsis<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_errinfo_api_function_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,55 @@ +<!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>boost/exception/errinfo_api_function.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/errinfo_api_function.hpp</h2>
+</div> +<h3>Synopsis</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>>
+ +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_api_function_,int> <span class="RenoLink"><a href="errinfo_api_function.html">errinfo_api_function</a></span>;</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_all_hpp.html">boost/exception/all.hpp<br/>
+</a><a href="synopsis.html">Synopsis<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_errinfo_at_line_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,55 @@ +<!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>boost/exception/errinfo_at_line.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/errinfo_at_line.hpp</h2>
+</div> +<h3>Synopsis</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>>
+ +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_at_line_,int> <span class="RenoLink"><a href="errinfo_at_line.html">errinfo_at_line</a></span>;</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_all_hpp.html">boost/exception/all.hpp<br/>
+</a><a href="synopsis.html">Synopsis<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_errinfo_errno_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,56 @@ +<!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>boost/exception/errinfo_errno.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/errinfo_errno.hpp</h2>
+</div> +<h3>Synopsis</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>>
+#include <errno.h> + +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_errno_,int> <span class="RenoLink"><a href="errinfo_errno.html">errinfo_errno</a></span>;</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_all_hpp.html">boost/exception/all.hpp<br/>
+</a><a href="synopsis.html">Synopsis<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_errinfo_file_handle_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,56 @@ +<!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>boost/exception/errinfo_file_handle.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/errinfo_file_handle.hpp</h2>
+</div> +<h3>Synopsis</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>>
+ +namespace +boost + { + template <class> class weak_ptr;+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_file_handle_,weak_ptr<FILE> > <span class="RenoLink"><a href="errinfo_file_handle.html">errinfo_file_handle</a></span>;</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_all_hpp.html">boost/exception/all.hpp<br/>
+</a><a href="synopsis.html">Synopsis<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_errinfo_file_name_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,56 @@ +<!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>boost/exception/errinfo_file_name.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/errinfo_file_name.hpp</h2>
+</div> +<h3>Synopsis</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>>
+#include <string> + +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_file_name_,std::string> <span class="RenoLink"><a href="errinfo_file_name.html">errinfo_file_name</a></span>;</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_all_hpp.html">boost/exception/all.hpp<br/>
+</a><a href="synopsis.html">Synopsis<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_errinfo_file_open_mode_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,56 @@ +<!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>boost/exception/errinfo_file_open_mode.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/errinfo_file_open_mode.hpp</h2>
+</div> +<h3>Synopsis</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>>
+#include <string> + +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_file_open_mode_,std::string> <span class="RenoLink"><a href="errinfo_file_open_mode.html">errinfo_file_open_mode</a></span>;</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_all_hpp.html">boost/exception/all.hpp<br/>
+</a><a href="synopsis.html">Synopsis<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_errinfo_type_info_name_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,56 @@ +<!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>boost/exception/errinfo_type_info_name.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/errinfo_type_info_name.hpp</h2>
+</div> +<h3>Synopsis</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>>
+#include <string> + +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_type_info_name_,std::string> <span class="RenoLink"><a href="errinfo_type_info_name.html">errinfo_type_info_name</a></span>;</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_all_hpp.html">boost/exception/all.hpp<br/>
+</a><a href="synopsis.html">Synopsis<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_error_info_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,62 @@ +<!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>boost/exception/error_info.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/error_info.hpp</h2>
+</div> +<h3>Synopsis</h3> +<div class="RenoIncludeDIV"><pre>namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class Tag,class T> + class <span class="RenoLink"><a href="error_info.html">error_info</a></span>;</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_all_hpp.html">boost/exception/all.hpp<br/> +</a><a href="boost_exception_errinfo_api_function_hpp.html">boost/exception/errinfo_api_function.hpp<br/> +</a><a href="boost_exception_errinfo_at_line_hpp.html">boost/exception/errinfo_at_line.hpp<br/> +</a><a href="boost_exception_errinfo_errno_hpp.html">boost/exception/errinfo_errno.hpp<br/> +</a><a href="boost_exception_errinfo_file_handle_hpp.html">boost/exception/errinfo_file_handle.hpp<br/> +</a><a href="boost_exception_errinfo_file_name_hpp.html">boost/exception/errinfo_file_name.hpp<br/> +</a><a href="boost_exception_errinfo_file_open_mode_hpp.html">boost/exception/errinfo_file_open_mode.hpp<br/> +</a><a href="boost_exception_errinfo_type_info_name_hpp.html">boost/exception/errinfo_type_info_name.hpp<br/>
+</a><a href="error_info.html">error_info<br/> +</a><a href="synopsis.html">Synopsis<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_exception_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,74 @@ +<!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>boost/exception/exception.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/exception.hpp</h2>
+</div> +<h3>Synopsis</h3> +<div class="RenoIncludeDIV"><pre>namespace +boost + { +<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">class + <span class="RenoLink"><a href="exception.html">exception</a></span> + { + protected: ++ <span class="RenoIncludeSPAN"> <span class="RenoLink"><a href="exception_constructors.html">exception</a></span>(); + <span class="RenoLink"><a href="exception_constructors.html">exception</a></span>( <span class="RenoLink"><a href="exception.html">exception</a></span> const & x );</span> + <span class="RenoIncludeSPAN"> <span class="RenoLink"><a href="exception_destructor.html">~exception</a></span>();</span>
+ };</span> + + <span class="RenoIncludeSPAN">template <class Tag,class T>+ class <span class="RenoLink"><a href="error_info.html">error_info</a></span>;</span>
++ typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct throw_function_,char const *> throw_function; + typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct throw_file_,char const *> throw_file; + typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct throw_line_,int> throw_line;</span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION<br/>
+</a><a href="boost_exception_all_hpp.html">boost/exception/all.hpp<br/>+</a><a href="boost_exception_enable_current_exception_hpp.html">boost/exception/enable_current_exception.hpp<br/> +</a><a href="boost_exception_enable_error_info_hpp.html">boost/exception/enable_error_info.hpp<br/>
+</a><a href="boost_exception_info_hpp.html">boost/exception/info.hpp<br/> +</a><a href="boost_exception_ptr_hpp.html">boost/exception_ptr.hpp<br/> +</a><a href="exception.html">exception<br/> +</a><a href="synopsis.html">Synopsis<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_get_error_info_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,56 @@ +<!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>boost/exception/get_error_info.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/get_error_info.hpp</h2>
+</div> +<h3>Synopsis</h3> +<div class="RenoIncludeDIV"><pre>#include <boost/shared_ptr.hpp> + +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class ErrorInfo,class E> + typename ErrorInfo::<span class="RenoLink"><a href="error_info_value_type.html">value_type</a></span> const * <span class="RenoLink"><a href="get_error_info.html">get_error_info</a></span>( E const & x );</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_all_hpp.html">boost/exception/all.hpp<br/>
+</a><a href="error_info.html">error_info<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,44 @@ +<!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>boost/exception.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception.hpp</h2>
+</div> +<p>This header has been deprecated.</p>+<p>Please #include <<span class="RenoLink"><a href="boost_exception_all_hpp.html">boost/exception/all.hpp</a></span>> instead.</p>
+</div><div class="RenoAutoDIV"></div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_info_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,74 @@ +<!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>boost/exception/info.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/info.hpp</h2>
+</div> +<h3>Synopsis</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_exception_hpp.html">boost/exception/exception.hpp</a></span>>
+ +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class Tag,class T>
+ class + <span class="RenoLink"><a href="error_info.html">error_info</a></span> + { + public: ++ <span class="RenoIncludeSPAN"> typedef T <span class="RenoLink"><a href="error_info_value_type.html">value_type</a></span>;</span>
++ <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> + <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>
+ };</span> ++ <span class="RenoIncludeSPAN">template <class E, class Tag, class T> + E const & <span class="RenoLink"><a href="exception_operator_shl.html">operator<<</a></span>( E const & x, <span class="RenoLink"><a href="error_info.html">error_info</a></span><Tag,T> const & v );</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_all_hpp.html">boost/exception/all.hpp<br/> +</a><a href="boost_exception_info_tuple_hpp.html">boost/exception/info_tuple.hpp<br/>
+</a><a href="error_info.html">error_info<br/> +</a><a href="error_info_error_info.html">error_info::error_info<br/> +</a><a href="error_info_value.html">error_info::value<br/> +</a><a href="error_info_value_type.html">error_info::value_type<br/> +</a><a href="exception_operator_shl.html">exception/operator<<<br/> +</a><a href="synopsis.html">Synopsis<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_info_tuple_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,62 @@ +<!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>boost/exception/info_tuple.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/info_tuple.hpp</h2>
+</div> +<h3>Synopsis</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_info_hpp.html">boost/exception/info.hpp</a></span>>
+#include <boost/tuple/tuple.hpp> + +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class E, class Tag1, class T1, ..., class TagN, class TN> + E const & <span class="RenoLink"><a href="tuple_operator_shl.html">operator<<</a></span>( E const & x, + <span class="RenoLink"><a href="http://www.boost.org/libs/tuple/doc/tuple_users_guide.html";>tuple</a></span>< + <span class="RenoLink"><a href="error_info.html">error_info</a></span><Tag1,T1>,
+ ...,+ <span class="RenoLink"><a href="error_info.html">error_info</a></span><TagN,TN> > const & v );</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_all_hpp.html">boost/exception/all.hpp<br/>
+</a><a href="synopsis.html">Synopsis<br/> +</a><a href="tuple_operator_shl.html">tuple/operator<<<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_ptr_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,78 @@ +<!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>boost/exception_ptr.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception_ptr.hpp</h2>
+</div> +<h3>Synopsis</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_exception_hpp.html">boost/exception/exception.hpp</a></span>>
+ +namespace +boost + { +<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">class+ <span class="RenoLink"><a href="unknown_exception.html">unknown_exception</a></span>:
+ public std::exception+ public boost::<span class="RenoLink"><a href="exception.html">exception</a></span>
+ { + ---unspecified--- + };</span> ++ <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct tag_original_exception_type,std::type_info const *> <span class="RenoLink"><a href="original_exception_type.html">original_exception_type</a></span>;</span>
++ <span class="RenoIncludeSPAN">typedef ---unspecified--- <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span>;</span>
+ + <span class="RenoIncludeSPAN">template <class T>+ <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span> <span class="RenoLink"><a href="copy_exception.html">copy_exception</a></span>( T const & e );</span>
++ <span class="RenoIncludeSPAN"><span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span> <span class="RenoLink"><a href="current_exception.html">current_exception</a></span>();</span>
++ <span class="RenoIncludeSPAN">void <span class="RenoLink"><a href="rethrow_exception.html">rethrow_exception</a></span>( <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span> const & ep );</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_all_hpp.html">boost/exception/all.hpp<br/>
+</a><a href="copy_exception.html">copy_exception<br/> +</a><a href="current_exception.html">current_exception<br/> +</a><a href="exception_ptr.html">exception_ptr<br/> +</a><a href="original_exception_type.html">original_exception_type<br/> +</a><a href="rethrow_exception.html">rethrow_exception<br/> +</a><a href="synopsis.html">Synopsis<br/> +</a><a href="unknown_exception.html">unknown_exception<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_throw_exception_hpp.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,72 @@ +<!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>boost/throw_exception.hpp</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/throw_exception.hpp</h2>
+</div> +<h3>Synopsis</h3>+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre><span class="RenoIncludeSPAN">#if !defined( BOOST_EXCEPTION_DISABLE ) + #include <<span class="RenoLink"><a href="boost_exception_exception_hpp.html">boost/exception/exception.hpp</a></span>>
+ #include <boost/current_function.hpp>+ #define <span class="RenoLink"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span>(x)\ + ::boost::<span class="RenoLink"><a href="throw_exception.html">throw_exception</a></span>( ::boost::<span class="RenoLink"><a href="enable_error_info.html">enable_error_info</a></span>(x) <<\ + ::boost::<span class="RenoLink"><a href="boost_exception_exception_hpp.html">throw_function</a></span>(BOOST_CURRENT_FUNCTION) <<\ + ::boost::<span class="RenoLink"><a href="boost_exception_exception_hpp.html">throw_file</a></span>(__FILE__) <<\ + ::boost::<span class="RenoLink"><a href="boost_exception_exception_hpp.html">throw_line</a></span>((int)__LINE__) )
+#else+ #define <span class="RenoLink"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span>(x) ::boost::<span class="RenoLink"><a href="throw_exception.html">throw_exception</a></span>(x)
+#endif</span> + +namespace +boost + { +<span class="RenoIncludeSPAN">#ifdef BOOST_NO_EXCEPTIONS+ void <span class="RenoLink"><a href="throw_exception.html">throw_exception</a></span>( std::exception const & e ); // user defined
+#else + template <class E>+ void <span class="RenoLink"><a href="throw_exception.html">throw_exception</a></span>( E const & e );
+#endif</span> + }</pre> +</div></div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION<br/>
+</a><a href="configuration_macros.html">Configuration Macros<br/> +</a><a href="synopsis.html">Synopsis<br/> +</a><a href="throw_exception.html">throw_exception<br/> +</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/errinfo_api_function.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,102 @@ +<!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>errinfo_api_function</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>errinfo_api_function</h3>
+</div>+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_exception_errinfo_api_function_hpp.html">boost/exception/errinfo_api_function.hpp</a></span>></p> +<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>>
+ +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_api_function_,int> <span class="RenoLink">errinfo_api_function</span>;</span></span>
+ }</pre>+</div></div><p>This type is designed to be used as a standard <span class="RenoLink"><a href="error_info.html">error_info</a></span> instance for transporting the name of a relevant API function (which does not use exceptions to report errors) in exceptions deriving from boost::<span class="RenoLink"><a href="exception.html">exception</a></span>.</p>
+<h3>Example:</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_errinfo_api_function_hpp.html">boost/exception/errinfo_api_function.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_at_line_hpp.html">boost/exception/errinfo_at_line.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_errno_hpp.html">boost/exception/errinfo_errno.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_handle_hpp.html">boost/exception/errinfo_file_handle.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_name_hpp.html">boost/exception/errinfo_file_name.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_open_mode_hpp.html">boost/exception/errinfo_file_open_mode.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_info_hpp.html">boost/exception/info.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_throw_exception_hpp.html">boost/throw_exception.hpp</a></span>>
+#include <boost/shared_ptr.hpp> +#include <boost/weak_ptr.hpp> +#include <stdio.h> +#include <errno.h> +#include <exception> ++struct error : virtual std::exception, virtual boost::<span class="RenoLink"><a href="exception.html">exception</a></span> { };
+struct file_error : virtual error { }; +struct file_open_error: virtual file_error { }; +struct file_read_error: virtual file_error { }; + +boost::shared_ptr<FILE> +open_file( char const * file, char const * mode ) + { + if( FILE * f=fopen(file,mode) ) + return boost::shared_ptr<FILE>(f,fclose); + else+ <span class="RenoLink"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span>(
+ file_open_error() <<+ boost::<span class="RenoLink">errinfo_api_function</span>("fopen") << + boost::<span class="RenoLink"><a href="errinfo_errno.html">errinfo_errno</a></span>(errno) << + boost::<span class="RenoLink"><a href="errinfo_file_name.html">errinfo_file_name</a></span>(file) << + boost::<span class="RenoLink"><a href="errinfo_file_open_mode.html">errinfo_file_open_mode</a></span>(mode) );
+ } + +size_t+read_file( boost::shared_ptr<FILE> const & f, void * buf, size_t size )
+ { + size_t nr=fread(buf,1,size,f.get()); + if( ferror(f.get()) )+ <span class="RenoLink"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span>(
+ file_read_error() <<+ boost::<span class="RenoLink">errinfo_api_function</span>("fread") << + boost::<span class="RenoLink"><a href="errinfo_errno.html">errinfo_errno</a></span>(errno) << + boost::<span class="RenoLink"><a href="errinfo_file_handle.html">errinfo_file_handle</a></span>(f) );
+ return nr; + }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_errinfo_api_function_hpp.html">boost/exception/errinfo_api_function.hpp<br/> +</a><a href="frequently_asked_questions.html">Frequently Asked Questions<br/>
+</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null +++ /trunk/libs/exception/doc/errinfo_at_line.html Fri Sep 4 04:09:20 2009 @@ -0,0 +1,101 @@ +<!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>errinfo_at_line</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>errinfo_at_line</h3>
+</div>+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_exception_errinfo_at_line_hpp.html">boost/exception/errinfo_at_line.hpp</a></span>></p> +<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>>
+ +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_at_line_,int> <span class="RenoLink">errinfo_at_line</span>;</span></span>
+ }</pre>+</div></div><p>This type is designed to be used as a standard <span class="RenoLink"><a href="error_info.html">error_info</a></span> instance for transporting a relevant text file line number, for example in parse error exceptions deriving from boost::<span class="RenoLink"><a href="exception.html">exception</a></span>.</p>
+<h3>Example:</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_errinfo_api_function_hpp.html">boost/exception/errinfo_api_function.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_at_line_hpp.html">boost/exception/errinfo_at_line.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_errno_hpp.html">boost/exception/errinfo_errno.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_handle_hpp.html">boost/exception/errinfo_file_handle.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_name_hpp.html">boost/exception/errinfo_file_name.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_open_mode_hpp.html">boost/exception/errinfo_file_open_mode.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_info_hpp.html">boost/exception/info.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_throw_exception_hpp.html">boost/throw_exception.hpp</a></span>>
+#include <boost/shared_ptr.hpp> +#include <boost/weak_ptr.hpp> +#include <stdio.h> +#include <errno.h> +#include <exception> ++struct error : virtual std::exception, virtual boost::<span class="RenoLink"><a href="exception.html">exception</a></span> { };
+struct file_error : virtual error { }; +struct file_open_error: virtual file_error { }; +struct file_read_error: virtual file_error { }; + +boost::shared_ptr<FILE> +open_file( char const * file, char const * mode ) + { + if( FILE * f=fopen(file,mode) ) + return boost::shared_ptr<FILE>(f,fclose); + else+ <span class="RenoLink"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span>(
+ file_open_error() <<+ boost::<span class="RenoLink"><a href="errinfo_api_function.html">errinfo_api_function</a></span>("fopen") << + boost::<span class="RenoLink"><a href="errinfo_errno.html">errinfo_errno</a></span>(errno) << + boost::<span class="RenoLink"><a href="errinfo_file_name.html">errinfo_file_name</a></span>(file) << + boost::<span class="RenoLink"><a href="errinfo_file_open_mode.html">errinfo_file_open_mode</a></span>(mode) );
+ } + +size_t+read_file( boost::shared_ptr<FILE> const & f, void * buf, size_t size )
+ { + size_t nr=fread(buf,1,size,f.get()); + if( ferror(f.get()) )+ <span class="RenoLink"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span>(
+ file_read_error() <<+ boost::<span class="RenoLink"><a href="errinfo_api_function.html">errinfo_api_function</a></span>("fread") << + boost::<span class="RenoLink"><a href="errinfo_errno.html">errinfo_errno</a></span>(errno) << + boost::<span class="RenoLink"><a href="errinfo_file_handle.html">errinfo_file_handle</a></span>(f) );
+ return nr; + }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_errinfo_at_line_hpp.html">boost/exception/errinfo_at_line.hpp<br/>
+</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null +++ /trunk/libs/exception/doc/errinfo_errno.html Fri Sep 4 04:09:20 2009 @@ -0,0 +1,103 @@ +<!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>errinfo_errno</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>errinfo_errno</h3> +</div>+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_exception_errinfo_errno_hpp.html">boost/exception/errinfo_errno.hpp</a></span>></p> +<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>>
+#include <errno.h> + +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_errno_,int> <span class="RenoLink">errinfo_errno</span>;</span></span>
+ }</pre>+</div></div><p>This type is designed to be used as a standard <span class="RenoLink"><a href="error_info.html">error_info</a></span> instance for transporting a relevant errno value in exceptions deriving from boost::<span class="RenoLink"><a href="exception.html">exception</a></span>.</p>
+<h3>Example:</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_errinfo_api_function_hpp.html">boost/exception/errinfo_api_function.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_at_line_hpp.html">boost/exception/errinfo_at_line.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_errno_hpp.html">boost/exception/errinfo_errno.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_handle_hpp.html">boost/exception/errinfo_file_handle.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_name_hpp.html">boost/exception/errinfo_file_name.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_open_mode_hpp.html">boost/exception/errinfo_file_open_mode.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_info_hpp.html">boost/exception/info.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_throw_exception_hpp.html">boost/throw_exception.hpp</a></span>>
+#include <boost/shared_ptr.hpp> +#include <boost/weak_ptr.hpp> +#include <stdio.h> +#include <errno.h> +#include <exception> ++struct error : virtual std::exception, virtual boost::<span class="RenoLink"><a href="exception.html">exception</a></span> { };
+struct file_error : virtual error { }; +struct file_open_error: virtual file_error { }; +struct file_read_error: virtual file_error { }; + +boost::shared_ptr<FILE> +open_file( char const * file, char const * mode ) + { + if( FILE * f=fopen(file,mode) ) + return boost::shared_ptr<FILE>(f,fclose); + else+ <span class="RenoLink"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span>(
+ file_open_error() <<+ boost::<span class="RenoLink"><a href="errinfo_api_function.html">errinfo_api_function</a></span>("fopen") << + boost::<span class="RenoLink">errinfo_errno</span>(errno) << + boost::<span class="RenoLink"><a href="errinfo_file_name.html">errinfo_file_name</a></span>(file) << + boost::<span class="RenoLink"><a href="errinfo_file_open_mode.html">errinfo_file_open_mode</a></span>(mode) );
+ } + +size_t+read_file( boost::shared_ptr<FILE> const & f, void * buf, size_t size )
+ { + size_t nr=fread(buf,1,size,f.get()); + if( ferror(f.get()) )+ <span class="RenoLink"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span>(
+ file_read_error() <<+ boost::<span class="RenoLink"><a href="errinfo_api_function.html">errinfo_api_function</a></span>("fread") << + boost::<span class="RenoLink">errinfo_errno</span>(errno) << + boost::<span class="RenoLink"><a href="errinfo_file_handle.html">errinfo_file_handle</a></span>(f) );
+ return nr; + }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_errinfo_errno_hpp.html">boost/exception/errinfo_errno.hpp<br/> +</a><a href="frequently_asked_questions.html">Frequently Asked Questions<br/>
+</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/errinfo_file_handle.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,102 @@ +<!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>errinfo_file_handle</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>errinfo_file_handle</h3>
+</div>+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_exception_errinfo_file_handle_hpp.html">boost/exception/errinfo_file_handle.hpp</a></span>></p> +<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>>
+ +namespace +boost + { + template <class> class weak_ptr;+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_file_handle_,weak_ptr<FILE> > <span class="RenoLink">errinfo_file_handle</span>;</span></span>
+ }</pre>+</div></div><p>This type is designed to be used as a standard <span class="RenoLink"><a href="error_info.html">error_info</a></span> instance for transporting a relevant FILE pointer managed by a boost::shared_ptr<FILE> in exceptions deriving from boost::<span class="RenoLink"><a href="exception.html">exception</a></span>.</p>
+<h3>Example:</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_errinfo_api_function_hpp.html">boost/exception/errinfo_api_function.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_at_line_hpp.html">boost/exception/errinfo_at_line.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_errno_hpp.html">boost/exception/errinfo_errno.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_handle_hpp.html">boost/exception/errinfo_file_handle.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_name_hpp.html">boost/exception/errinfo_file_name.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_open_mode_hpp.html">boost/exception/errinfo_file_open_mode.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_info_hpp.html">boost/exception/info.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_throw_exception_hpp.html">boost/throw_exception.hpp</a></span>>
+#include <boost/shared_ptr.hpp> +#include <boost/weak_ptr.hpp> +#include <stdio.h> +#include <errno.h> +#include <exception> ++struct error : virtual std::exception, virtual boost::<span class="RenoLink"><a href="exception.html">exception</a></span> { };
+struct file_error : virtual error { }; +struct file_open_error: virtual file_error { }; +struct file_read_error: virtual file_error { }; + +boost::shared_ptr<FILE> +open_file( char const * file, char const * mode ) + { + if( FILE * f=fopen(file,mode) ) + return boost::shared_ptr<FILE>(f,fclose); + else+ <span class="RenoLink"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span>(
+ file_open_error() <<+ boost::<span class="RenoLink"><a href="errinfo_api_function.html">errinfo_api_function</a></span>("fopen") << + boost::<span class="RenoLink"><a href="errinfo_errno.html">errinfo_errno</a></span>(errno) << + boost::<span class="RenoLink"><a href="errinfo_file_name.html">errinfo_file_name</a></span>(file) << + boost::<span class="RenoLink"><a href="errinfo_file_open_mode.html">errinfo_file_open_mode</a></span>(mode) );
+ } + +size_t+read_file( boost::shared_ptr<FILE> const & f, void * buf, size_t size )
+ { + size_t nr=fread(buf,1,size,f.get()); + if( ferror(f.get()) )+ <span class="RenoLink"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span>(
+ file_read_error() <<+ boost::<span class="RenoLink"><a href="errinfo_api_function.html">errinfo_api_function</a></span>("fread") << + boost::<span class="RenoLink"><a href="errinfo_errno.html">errinfo_errno</a></span>(errno) <<
+ boost::<span class="RenoLink">errinfo_file_handle</span>(f) ); + return nr; + }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_errinfo_file_handle_hpp.html">boost/exception/errinfo_file_handle.hpp<br/>
+</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/errinfo_file_name.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,103 @@ +<!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>errinfo_file_name</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>errinfo_file_name</h3>
+</div>+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_exception_errinfo_file_name_hpp.html">boost/exception/errinfo_file_name.hpp</a></span>></p> +<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>>
+#include <string> + +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_file_name_,std::string> <span class="RenoLink">errinfo_file_name</span>;</span></span>
+ }</pre>+</div></div><p>This type is designed to be used as a standard <span class="RenoLink"><a href="error_info.html">error_info</a></span> instance for transporting a relevant file name in exceptions deriving from boost::<span class="RenoLink"><a href="exception.html">exception</a></span>.</p>
+<h3>Example:</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_errinfo_api_function_hpp.html">boost/exception/errinfo_api_function.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_at_line_hpp.html">boost/exception/errinfo_at_line.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_errno_hpp.html">boost/exception/errinfo_errno.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_handle_hpp.html">boost/exception/errinfo_file_handle.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_name_hpp.html">boost/exception/errinfo_file_name.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_open_mode_hpp.html">boost/exception/errinfo_file_open_mode.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_info_hpp.html">boost/exception/info.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_throw_exception_hpp.html">boost/throw_exception.hpp</a></span>>
+#include <boost/shared_ptr.hpp> +#include <boost/weak_ptr.hpp> +#include <stdio.h> +#include <errno.h> +#include <exception> ++struct error : virtual std::exception, virtual boost::<span class="RenoLink"><a href="exception.html">exception</a></span> { };
+struct file_error : virtual error { }; +struct file_open_error: virtual file_error { }; +struct file_read_error: virtual file_error { }; + +boost::shared_ptr<FILE> +open_file( char const * file, char const * mode ) + { + if( FILE * f=fopen(file,mode) ) + return boost::shared_ptr<FILE>(f,fclose); + else+ <span class="RenoLink"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span>(
+ file_open_error() <<+ boost::<span class="RenoLink"><a href="errinfo_api_function.html">errinfo_api_function</a></span>("fopen") << + boost::<span class="RenoLink"><a href="errinfo_errno.html">errinfo_errno</a></span>(errno) << + boost::<span class="RenoLink">errinfo_file_name</span>(file) << + boost::<span class="RenoLink"><a href="errinfo_file_open_mode.html">errinfo_file_open_mode</a></span>(mode) );
+ } + +size_t+read_file( boost::shared_ptr<FILE> const & f, void * buf, size_t size )
+ { + size_t nr=fread(buf,1,size,f.get()); + if( ferror(f.get()) )+ <span class="RenoLink"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span>(
+ file_read_error() <<+ boost::<span class="RenoLink"><a href="errinfo_api_function.html">errinfo_api_function</a></span>("fread") << + boost::<span class="RenoLink"><a href="errinfo_errno.html">errinfo_errno</a></span>(errno) << + boost::<span class="RenoLink"><a href="errinfo_file_handle.html">errinfo_file_handle</a></span>(f) );
+ return nr; + }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_errinfo_file_name_hpp.html">boost/exception/errinfo_file_name.hpp<br/> +</a><a href="frequently_asked_questions.html">Frequently Asked Questions<br/>
+</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/errinfo_file_open_mode.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,103 @@ +<!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>errinfo_file_open_mode</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>errinfo_file_open_mode</h3>
+</div>+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_exception_errinfo_file_open_mode_hpp.html">boost/exception/errinfo_file_open_mode.hpp</a></span>></p> +<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>>
+#include <string> + +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_file_open_mode_,std::string> <span class="RenoLink">errinfo_file_open_mode</span>;</span></span>
+ }</pre>+</div></div><p>This type is designed to be used as a standard <span class="RenoLink"><a href="error_info.html">error_info</a></span> instance for transporting the string passed as a second argument to fopen in exceptions indicating fopen failures and deriving from boost::<span class="RenoLink"><a href="exception.html">exception</a></span>.</p>
+<h3>Example:</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_errinfo_api_function_hpp.html">boost/exception/errinfo_api_function.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_at_line_hpp.html">boost/exception/errinfo_at_line.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_errno_hpp.html">boost/exception/errinfo_errno.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_handle_hpp.html">boost/exception/errinfo_file_handle.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_name_hpp.html">boost/exception/errinfo_file_name.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_errinfo_file_open_mode_hpp.html">boost/exception/errinfo_file_open_mode.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_exception_info_hpp.html">boost/exception/info.hpp</a></span>> +#include <<span class="RenoLink"><a href="boost_throw_exception_hpp.html">boost/throw_exception.hpp</a></span>>
+#include <boost/shared_ptr.hpp> +#include <boost/weak_ptr.hpp> +#include <stdio.h> +#include <errno.h> +#include <exception> ++struct error : virtual std::exception, virtual boost::<span class="RenoLink"><a href="exception.html">exception</a></span> { };
+struct file_error : virtual error { }; +struct file_open_error: virtual file_error { }; +struct file_read_error: virtual file_error { }; + +boost::shared_ptr<FILE> +open_file( char const * file, char const * mode ) + { + if( FILE * f=fopen(file,mode) ) + return boost::shared_ptr<FILE>(f,fclose); + else+ <span class="RenoLink"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span>(
+ file_open_error() <<+ boost::<span class="RenoLink"><a href="errinfo_api_function.html">errinfo_api_function</a></span>("fopen") << + boost::<span class="RenoLink"><a href="errinfo_errno.html">errinfo_errno</a></span>(errno) << + boost::<span class="RenoLink"><a href="errinfo_file_name.html">errinfo_file_name</a></span>(file) << + boost::<span class="RenoLink">errinfo_file_open_mode</span>(mode) );
+ } + +size_t+read_file( boost::shared_ptr<FILE> const & f, void * buf, size_t size )
+ { + size_t nr=fread(buf,1,size,f.get()); + if( ferror(f.get()) )+ <span class="RenoLink"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span>(
+ file_read_error() <<+ boost::<span class="RenoLink"><a href="errinfo_api_function.html">errinfo_api_function</a></span>("fread") << + boost::<span class="RenoLink"><a href="errinfo_errno.html">errinfo_errno</a></span>(errno) << + boost::<span class="RenoLink"><a href="errinfo_file_handle.html">errinfo_file_handle</a></span>(f) );
+ return nr; + }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_errinfo_file_open_mode_hpp.html">boost/exception/errinfo_file_open_mode.hpp<br/> +</a><a href="frequently_asked_questions.html">Frequently Asked Questions<br/>
+</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/errinfo_type_info_name.html Fri Sep 4 04:09:20 2009
@@ -0,0 +1,56 @@ +<!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>errinfo_type_info_name</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">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 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) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>errinfo_type_info_name</h3>
+</div>+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_exception_errinfo_type_info_name_hpp.html">boost/exception/errinfo_type_info_name.hpp</a></span>></p> +<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>>
+#include <string> + +namespace +boost + {+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_type_info_name_,std::string> <span class="RenoLink">errinfo_type_info_name</span>;</span></span>
+ }</pre>+</div></div><p>This type is designed to be used as a standard <span class="RenoLink"><a href="error_info.html">error_info</a></span> instance for transporting strings returned by std::type_info::name in exceptions deriving from boost::<span class="RenoLink"><a href="exception.html">exception</a></span> objects.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +<h3>See Also:</h3>+<div class="RenoPageList"><a href="boost_exception_errinfo_type_info_name_hpp.html">boost/exception/errinfo_type_info_name.hpp<br/>
+</a></div> +</div> +<!-- Copyright (c) 2006-2009 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) -->
+<div id="footer"> +<p> </p> +<hr/> +<p>+<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +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> ======================================= --- /trunk/libs/crc/crc_test.cpp Mon Nov 24 07:20:31 2008 +++ /dev/null @@ -1,761 +0,0 @@-// Boost CRC test program file ---------------------------------------------//
- -// Copyright 2001, 2003, 2004 Daryle Walker. Use, modification, and-// distribution are subject to the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or a copy at -// <http://www.boost.org/LICENSE_1_0.txt>.) - -// See <http://www.boost.org/libs/crc/> for the library's home page. - -// Revision History -// 28 Aug 2004 Added CRC tests for polynominals shorter than 8 bits -// (Daryle Walker, by patch from Bert Klaps) -// 23 Aug 2003 Adjust to updated Test framework (Daryle Walker) -// 14 May 2001 Initial version (Daryle Walker) - - -#include <boost/config.hpp> // for BOOST_MSVC, etc.-#include <boost/crc.hpp> // for boost::crc_basic, etc. -#include <boost/cstdint.hpp> // for boost::uint16_t, etc.
-#include <boost/cstdlib.hpp> // for boost::exit_success -#include <boost/integer.hpp> // for boost::uint_t -#include <boost/random/linear_congruential.hpp> // for boost::minstd_rand -#include <boost/test/minimal.hpp> // for main, etc. -#include <boost/timer.hpp> // for boost::timer - -#include <algorithm> // for std::for_each, std::generate_n, std::count -#include <climits> // for CHAR_BIT -#include <cstddef> // for std::size_t-#include <iostream> // for std::cout (std::ostream and std::endl indirectly)
- - -#if CHAR_BIT != 8 -#error The expected results assume an eight-bit byte. -#endif --#if !(defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) || (defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)))
-#define CRC_PARM_TYPE typename boost::uint_t<Bits>::fast -#else -#define CRC_PARM_TYPE unsigned long -#endif - -#if !defined(BOOST_MSVC) && !defined(__GNUC__) -#define PRIVATE_DECLARE_BOOST( TypeName ) using boost:: TypeName -#else-#define PRIVATE_DECLARE_BOOST( TypeName ) typedef boost:: TypeName TypeName
-#endif - - -// Types -template < std::size_t Bits, CRC_PARM_TYPE TrPo, CRC_PARM_TYPE InRe, - CRC_PARM_TYPE FiXo, bool ReIn, bool ReRe > -class crc_tester -{ -public: - // All the following were separate function templates, but they have - // been moved to class-static member functions of a class template - // because MS VC++ 6 can't handle function templates that can't - // deduce all their template arguments from their function arguments. - - typedef typename boost::uint_t<Bits>::fast value_type; -- static void master_test( char const *test_name, value_type expected );
- -private: - typedef boost::crc_optimal<Bits, TrPo, InRe, FiXo, ReIn, ReRe> - optimal_crc_type; - typedef boost::crc_basic<Bits> basic_crc_type; - - static void compute_test( value_type expected ); - static void interrupt_test( value_type expected ); - static void error_test(); - -}; // crc_tester - -// Global data-unsigned char const std_data[] = { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39 };-std::size_t const std_data_len = sizeof( std_data ) / sizeof( std_data[0] );
- -boost::uint16_t const std_crc_ccitt_result = 0x29B1; -boost::uint16_t const std_crc_16_result = 0xBB3D; -boost::uint32_t const std_crc_32_result = 0xCBF43926; - -// Function prototypes -void timing_test(); -boost::uint32_t basic_crc32( void const *buffer, std::size_t byte_count );-boost::uint32_t optimal_crc32( void const *buffer, std::size_t byte_count );
-boost::uint32_t quick_crc32( void const *buffer, std::size_t byte_count ); -boost::uint32_t quick_reflect( boost::uint32_t value, std::size_t bits ); -double time_trial( char const *name, - boost::uint32_t (*crc_func)(void const *, std::size_t), - boost::uint32_t expected, void const *data, std::size_t length ); - -void augmented_tests(); -boost::uint32_t native_to_big( boost::uint32_t x ); -boost::uint32_t big_to_native( boost::uint32_t x ); - -void small_crc_test1(); -void small_crc_test2(); - - -// Macro to compact code -#define PRIVATE_TESTER_NAME crc_tester<Bits, TrPo, InRe, FiXo, ReIn, ReRe> - -// Run a test on slow and fast CRC computers and function -template < std::size_t Bits, CRC_PARM_TYPE TrPo, CRC_PARM_TYPE InRe, - CRC_PARM_TYPE FiXo, bool ReIn, bool ReRe > -void -PRIVATE_TESTER_NAME::compute_test -( - typename PRIVATE_TESTER_NAME::value_type expected -) -{ - std::cout << "\tDoing computation tests." << std::endl; - - optimal_crc_type fast_crc; - basic_crc_type slow_crc( TrPo, InRe, FiXo, ReIn, ReRe );- value_type const func_result = boost::crc<Bits, TrPo, InRe, FiXo, ReIn,
- ReRe>( std_data, std_data_len ); - - fast_crc.process_bytes( std_data, std_data_len ); - slow_crc.process_bytes( std_data, std_data_len ); - BOOST_CHECK( fast_crc.checksum() == expected ); - BOOST_CHECK( slow_crc.checksum() == expected ); - BOOST_CHECK( func_result == expected ); -} - -// Run a test in two runs, and check all the inspectors -template < std::size_t Bits, CRC_PARM_TYPE TrPo, CRC_PARM_TYPE InRe, - CRC_PARM_TYPE FiXo, bool ReIn, bool ReRe > -void -PRIVATE_TESTER_NAME::interrupt_test -( - typename PRIVATE_TESTER_NAME::value_type expected -) -{ - std::cout << "\tDoing interrupt tests." << std::endl; - - // Process the first half of the data (also test accessors) - optimal_crc_type fast_crc1; - basic_crc_type slow_crc1( fast_crc1.get_truncated_polynominal(), - fast_crc1.get_initial_remainder(), fast_crc1.get_final_xor_value(), - fast_crc1.get_reflect_input(), fast_crc1.get_reflect_remainder() ); - - BOOST_CHECK( fast_crc1.get_interim_remainder() == - slow_crc1.get_initial_remainder() ); - - std::size_t const mid_way = std_data_len / 2; - unsigned char const * const std_data_end = std_data + std_data_len; - - fast_crc1.process_bytes( std_data, mid_way ); - slow_crc1.process_bytes( std_data, mid_way ); - BOOST_CHECK( fast_crc1.checksum() == slow_crc1.checksum() ); - - // Process the second half of the data (also test accessors) - boost::crc_optimal<optimal_crc_type::bit_count,- optimal_crc_type::truncated_polynominal, optimal_crc_type::initial_remainder,
- optimal_crc_type::final_xor_value, optimal_crc_type::reflect_input, - optimal_crc_type::reflect_remainder> - fast_crc2( fast_crc1.get_interim_remainder() ); - boost::crc_basic<basic_crc_type::bit_count> slow_crc2(- slow_crc1.get_truncated_polynominal(), slow_crc1.get_interim_remainder(),
- slow_crc1.get_final_xor_value(), slow_crc1.get_reflect_input(), - slow_crc1.get_reflect_remainder() ); - - fast_crc2.process_block( std_data + mid_way, std_data_end ); - slow_crc2.process_block( std_data + mid_way, std_data_end ); - BOOST_CHECK( fast_crc2.checksum() == slow_crc2.checksum() ); - BOOST_CHECK( fast_crc2.checksum() == expected ); - BOOST_CHECK( slow_crc2.checksum() == expected ); -} - -// Run a test to see if a single-bit error is detected -template < std::size_t Bits, CRC_PARM_TYPE TrPo, CRC_PARM_TYPE InRe, - CRC_PARM_TYPE FiXo, bool ReIn, bool ReRe > -void -PRIVATE_TESTER_NAME::error_test -( -) -{ - PRIVATE_DECLARE_BOOST( uint32_t ); - - // A single-bit error is ensured to be detected if the polynominal - // has at least two bits set. The highest bit is what is removed - // to give the truncated polynominal, and it is always set. This - // means that the truncated polynominal needs at least one of its - // bits set, which implies that it cannot be zero. - if ( !(TrPo & boost::detail::mask_uint_t<Bits>::sig_bits_fast) ) - { - BOOST_FAIL( "truncated CRC polymonial is zero" ); - } - - std::cout << "\tDoing error tests." << std::endl; - - // Create a random block of data - uint32_t ran_data[ 256 ]; - std::size_t const ran_length = sizeof(ran_data) / sizeof(ran_data[0]); - - std::generate_n( ran_data, ran_length, boost::minstd_rand() ); - - // Create computers and compute the checksum of the data - optimal_crc_type fast_tester; - basic_crc_type slow_tester( TrPo, InRe, FiXo, ReIn, ReRe ); - - fast_tester.process_bytes( ran_data, sizeof(ran_data) ); - slow_tester.process_bytes( ran_data, sizeof(ran_data) ); - - uint32_t const fast_checksum = fast_tester.checksum(); - uint32_t const slow_checksum = slow_tester.checksum(); - - BOOST_CHECK( fast_checksum == slow_checksum ); - - // Do the checksum again (and test resetting ability) - fast_tester.reset(); - slow_tester.reset( InRe ); - fast_tester.process_bytes( ran_data, sizeof(ran_data) ); - slow_tester.process_bytes( ran_data, sizeof(ran_data) ); - BOOST_CHECK( fast_tester.checksum() == slow_tester.checksum() ); - BOOST_CHECK( fast_tester.checksum() == fast_checksum ); - BOOST_CHECK( slow_tester.checksum() == slow_checksum ); - - // Produce a single-bit error - ran_data[ ran_data[0] % ran_length ] ^= ( 1 << (ran_data[1] % 32) ); - - // Compute the checksum of the errorenous data - // (and continue testing resetting ability) - fast_tester.reset( InRe ); - slow_tester.reset(); - fast_tester.process_bytes( ran_data, sizeof(ran_data) ); - slow_tester.process_bytes( ran_data, sizeof(ran_data) ); - BOOST_CHECK( fast_tester.checksum() == slow_tester.checksum() ); - BOOST_CHECK( fast_tester.checksum() != fast_checksum ); - BOOST_CHECK( slow_tester.checksum() != slow_checksum ); -} - -// Run the other CRC object tests -template < std::size_t Bits, CRC_PARM_TYPE TrPo, CRC_PARM_TYPE InRe, - CRC_PARM_TYPE FiXo, bool ReIn, bool ReRe > -void -PRIVATE_TESTER_NAME::master_test -( - char const * test_name, - typename PRIVATE_TESTER_NAME::value_type expected -) -{ - std::cout << "Doing test suite for " << test_name << '.' << std::endl; - compute_test( expected ); - interrupt_test( expected ); - error_test(); -} - -// Undo limited macros -#undef PRIVATE_TESTER_NAME - - -// A CRC-32 computer based on crc_basic, for timing -boost::uint32_t -basic_crc32 -( - void const * buffer, - std::size_t byte_count -) -{- static boost::crc_basic<32> computer( 0x04C11DB7, 0xFFFFFFFF, 0xFFFFFFFF,
- true, true ); - - computer.reset(); - computer.process_bytes( buffer, byte_count ); - return computer.checksum(); -} - -// A CRC-32 computer based on crc_optimal, for timing -inline -boost::uint32_t -optimal_crc32 -( - void const * buffer, - std::size_t byte_count -) -{ - static boost::crc_32_type computer; - - computer.reset(); - computer.process_bytes( buffer, byte_count ); - return computer.checksum(); -} - -// Reflect the lower "bits" bits of a "value" -boost::uint32_t -quick_reflect -( - boost::uint32_t value, - std::size_t bits -) -{ - boost::uint32_t reflection = 0; - for ( std::size_t i = 0 ; i < bits ; ++i ) - { - if ( value & (1u << i) ) - { - reflection |= 1 << ( bits - 1 - i ); - } - } - - return reflection; -} - -// A customized CRC-32 computer, for timing -boost::uint32_t -quick_crc32 -( - void const * buffer, - std::size_t byte_count -) -{ - PRIVATE_DECLARE_BOOST( uint32_t ); - typedef unsigned char byte_type; - - // Compute the CRC table (first run only) - static bool did_init = false; - static uint32_t crc_table[ 1ul << CHAR_BIT ]; - if ( !did_init ) - { - uint32_t const value_high_bit = static_cast<uint32_t>(1) << 31u; - - byte_type dividend = 0; - do - { - uint32_t remainder = 0;- for ( byte_type mask = 1u << (CHAR_BIT - 1u) ; mask ; mask >>= 1 )
- { - if ( dividend & mask ) - { - remainder ^= value_high_bit; - } - - if ( remainder & value_high_bit ) - { - remainder <<= 1; - remainder ^= 0x04C11DB7u; - } - else - { - remainder <<= 1; - } - } - - crc_table[ quick_reflect(dividend, CHAR_BIT) ] - = quick_reflect( remainder, 32 ); - } - while ( ++dividend ); - - did_init = true; - } - - // Compute the CRC of the data - uint32_t rem = 0xFFFFFFFF; -- byte_type const * const b_begin = static_cast<byte_type const *>( buffer );
- byte_type const * const b_end = b_begin + byte_count; - for ( byte_type const *p = b_begin ; p < b_end ; ++p ) - { - byte_type const byte_index = *p ^ rem; - rem >>= CHAR_BIT; - rem ^= crc_table[ byte_index ]; - } - - return ~rem; -} - -// Run an individual timing trial -double -time_trial -( - char const * name, - boost::uint32_t (*crc_func)(void const *, std::size_t), - boost::uint32_t expected, - void const * data, - std::size_t length -) -{ - PRIVATE_DECLARE_BOOST( uint32_t ); - using std::cout; - - // Limits of a trial - static uint32_t const max_count = 1L << 16; // ~square-root of max - static double const max_time = 3.14159; // easy as pi(e) - - // Mark the trial - cout << '\t' << name << " CRC-32: "; - - // Trial loop - uint32_t trial_count = 0, wrong_count = 0; - double elapsed_time = 0.0; - boost::timer t; - - do - { - uint32_t const scratch = (*crc_func)( data, length ); - - if ( scratch != expected ) - { - ++wrong_count; - } - elapsed_time = t.elapsed(); - ++trial_count; - } while ( (trial_count < max_count) && (elapsed_time < max_time) ); - - if ( wrong_count ) - { - BOOST_ERROR( "at least one time trial didn't match expected" ); - } - - // Report results - double const rate = trial_count / elapsed_time; - - cout << trial_count << " runs, " << elapsed_time << " s, " << rate - << " run/s" << std::endl; - return rate; -} - -// Time runs of Boost CRCs vs. a customized CRC function -void -timing_test -( -) -{ - PRIVATE_DECLARE_BOOST( uint32_t ); - using std::cout; - using std::endl; - - cout << "Doing timing tests." << endl; - - // Create a random block of data - boost::int32_t ran_data[ 256 ]; - std::size_t const ran_length = sizeof(ran_data) / sizeof(ran_data[0]); - - std::generate_n( ran_data, ran_length, boost::minstd_rand() ); - - // Use the first runs as a check. This gives a chance for first- - // time static initialization to not interfere in the timings.- uint32_t const basic_result = basic_crc32( ran_data, sizeof(ran_data) ); - uint32_t const optimal_result = optimal_crc32( ran_data, sizeof(ran_data) ); - uint32_t const quick_result = quick_crc32( ran_data, sizeof(ran_data) );
- - BOOST_CHECK( basic_result == optimal_result ); - BOOST_CHECK( optimal_result == quick_result ); - BOOST_CHECK( quick_result == basic_result ); - - // Run trials - double const basic_rate = time_trial( "Boost-Basic", basic_crc32, - basic_result, ran_data, sizeof(ran_data) );- double const optimal_rate = time_trial( "Boost-Optimal", optimal_crc32,
- optimal_result, ran_data, sizeof(ran_data) ); - double const quick_rate = time_trial( "Reference", quick_crc32, - quick_result, ran_data, sizeof(ran_data) ); - - // Report results- cout << "\tThe optimal Boost version is " << (quick_rate - optimal_rate)
- / quick_rate * 100.0 << "% slower than the reference version.\n"; - cout << "\tThe basic Boost version is " << (quick_rate - basic_rate) - / quick_rate * 100.0 << "% slower than the reference version.\n"; - cout << "\tThe basic Boost version is " << (optimal_rate - basic_rate) - / optimal_rate * 100.0 << "% slower than the optimal Boost version." - << endl; -} - - -// Reformat an integer to the big-endian storage format -boost::uint32_t -native_to_big -( - boost::uint32_t x -) -{ - boost::uint32_t temp; - unsigned char * tp = reinterpret_cast<unsigned char *>( &temp ); - - for ( std::size_t i = sizeof(x) ; i > 0 ; --i ) - { - tp[ i - 1 ] = static_cast<unsigned char>( x ); - x >>= CHAR_BIT; - } - - return temp; -} - -// Restore an integer from the big-endian storage format -boost::uint32_t -big_to_native -( - boost::uint32_t x -) -{ - boost::uint32_t temp = 0; - unsigned char * xp = reinterpret_cast<unsigned char *>( &x ); - - for ( std::size_t i = 0 ; i < sizeof(x) ; ++i ) - { - temp <<= CHAR_BIT; - temp |= xp[ i ]; - } - - return temp; -} - -// Run tests on using CRCs on augmented messages -void -augmented_tests -( -) -{ - #define PRIVATE_ACRC_FUNC boost::augmented_crc<32, 0x04C11DB7> - - using std::size_t; - PRIVATE_DECLARE_BOOST( uint32_t ); - - std::cout << "Doing CRC-augmented message tests." << std::endl; - - // Create a random block of data, with space for a CRC. - uint32_t ran_data[ 257 ]; - size_t const ran_length = sizeof(ran_data) / sizeof(ran_data[0]); - size_t const data_length = ran_length - 1; - - std::generate_n( ran_data, data_length, boost::minstd_rand() ); - - // When creating a CRC for an augmented message, use - // zeros in the appended CRC spot for the first run. - uint32_t & ran_crc = ran_data[ data_length ]; - - ran_crc = 0; - - // Compute the CRC with augmented-CRC computing function - typedef boost::uint_t<32>::fast return_type; - - ran_crc = PRIVATE_ACRC_FUNC( ran_data, sizeof(ran_data) ); -- // With the appended CRC set, running the checksum again should get zero.
- // NOTE: CRC algorithm assumes numbers are in big-endian format - ran_crc = native_to_big( ran_crc ); -- uint32_t ran_crc_check = PRIVATE_ACRC_FUNC( ran_data, sizeof(ran_data) );
- - BOOST_CHECK( 0 == ran_crc_check ); - - // Compare that result with other CRC computing functions - // and classes, which don't accept augmented messages. - typedef boost::crc_optimal<32, 0x04C11DB7> fast_crc_type; - typedef boost::crc_basic<32> slow_crc_type; - - fast_crc_type fast_tester; - slow_crc_type slow_tester( 0x04C11DB7 ); - size_t const data_size = data_length * sizeof(ran_data[0]); - uint32_t const func_tester = boost::crc<32, 0x04C11DB7, 0, 0, false, - false>( ran_data, data_size ); - - fast_tester.process_bytes( ran_data, data_size ); - slow_tester.process_bytes( ran_data, data_size ); - BOOST_CHECK( fast_tester.checksum() == slow_tester.checksum() ); - ran_crc = big_to_native( ran_crc ); - BOOST_CHECK( fast_tester.checksum() == ran_crc ); - BOOST_CHECK( func_tester == ran_crc ); - - // Do a single-bit error test - ran_crc = native_to_big( ran_crc ); - ran_data[ ran_data[0] % ran_length ] ^= ( 1 << (ran_data[1] % 32) ); - ran_crc_check = PRIVATE_ACRC_FUNC( ran_data, sizeof(ran_data) ); - BOOST_CHECK( 0 != ran_crc_check ); - - // Run a version of these tests with a nonzero initial remainder. - uint32_t const init_rem = ran_data[ ran_data[2] % ran_length ]; - - ran_crc = 0; - ran_crc = PRIVATE_ACRC_FUNC( ran_data, sizeof(ran_data), init_rem ); - - // Have some fun by processing data in two steps. - size_t const mid_index = ran_length / 2; - - ran_crc = native_to_big( ran_crc ); - ran_crc_check = PRIVATE_ACRC_FUNC( ran_data, mid_index - * sizeof(ran_data[0]), init_rem );- ran_crc_check = PRIVATE_ACRC_FUNC( &ran_data[mid_index], sizeof(ran_data)
- - mid_index * sizeof(ran_data[0]), ran_crc_check ); - BOOST_CHECK( 0 == ran_crc_check ); - - // This substep translates an augmented-CRC initial - // remainder to an unaugmented-CRC initial remainder. - uint32_t const zero = 0; - uint32_t const new_init_rem = PRIVATE_ACRC_FUNC( &zero, sizeof(zero), - init_rem ); - slow_crc_type slow_tester2( 0x04C11DB7, new_init_rem ); - - slow_tester2.process_bytes( ran_data, data_size ); - ran_crc = big_to_native( ran_crc ); - BOOST_CHECK( slow_tester2.checksum() == ran_crc ); - - // Redo single-bit error test - ran_data[ ran_data[3] % ran_length ] ^= ( 1 << (ran_data[4] % 32) );- ran_crc_check = PRIVATE_ACRC_FUNC( ran_data, sizeof(ran_data), init_rem );
- BOOST_CHECK( 0 != ran_crc_check ); - - #undef PRIVATE_ACRC_FUNC -} - - -// Run tests on CRCs below a byte in size (here, 3 bits) -void -small_crc_test1 -( -) -{ - std::cout << "Doing short-CRC (3-bit augmented) message tests." - << std::endl; -- // The CRC standard is a SDH/SONET Low Order LCAS control word with CRC-3
- // taken from ITU-T G.707 (12/03) XIII.2. - - // Four samples, each four bytes; should all have a CRC of zero - unsigned char const samples[4][4] - = { - { 0x3A, 0xC4, 0x08, 0x06 }, - { 0x42, 0xC5, 0x0A, 0x41 }, - { 0x4A, 0xC5, 0x08, 0x22 }, - { 0x52, 0xC4, 0x08, 0x05 } - }; - - // Basic computer - boost::crc_basic<3> tester1( 0x03 ); - - tester1.process_bytes( samples[0], 4 ); - BOOST_CHECK( tester1.checksum() == 0 ); - - tester1.reset(); - tester1.process_bytes( samples[1], 4 ); - BOOST_CHECK( tester1.checksum() == 0 ); - - tester1.reset(); - tester1.process_bytes( samples[2], 4 ); - BOOST_CHECK( tester1.checksum() == 0 ); - - tester1.reset(); - tester1.process_bytes( samples[3], 4 ); - BOOST_CHECK( tester1.checksum() == 0 ); - - // Optimal computer - #define PRIVATE_CRC_FUNC boost::crc<3, 0x03, 0, 0, false, false> - #define PRIVATE_ACRC_FUNC boost::augmented_crc<3, 0x03> - - BOOST_CHECK( 0 == PRIVATE_CRC_FUNC(samples[0], 4) ); - BOOST_CHECK( 0 == PRIVATE_CRC_FUNC(samples[1], 4) ); - BOOST_CHECK( 0 == PRIVATE_CRC_FUNC(samples[2], 4) ); - BOOST_CHECK( 0 == PRIVATE_CRC_FUNC(samples[3], 4) ); -- // maybe the fix to CRC functions needs to be applied to augmented CRCs?
- - #undef PRIVATE_ACRC_FUNC - #undef PRIVATE_CRC_FUNC -} - -// Run tests on CRCs below a byte in size (here, 7 bits) -void -small_crc_test2 -( -) -{ - std::cout << "Doing short-CRC (7-bit augmented) message tests." - << std::endl; -- // The CRC standard is a SDH/SONET J0/J1/J2/N1/N2/TR TTI (trace message)
- // with CRC-7, o.a. ITU-T G.707 Annex B, G.832 Annex A. - - // Two samples, each sixteen bytes - // Sample 1 is '\x80' + ASCII("123456789ABCDEF") - // Sample 2 is '\x80' + ASCII("TTI UNAVAILABLE") - unsigned char const samples[2][16] - = {- { 0x80, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41,
- 0x42, 0x43, 0x44, 0x45, 0x46 },- { 0x80, 0x54, 0x54, 0x49, 0x20, 0x55, 0x4E, 0x41, 0x56, 0x41, 0x49,
- 0x4C, 0x41, 0x42, 0x4C, 0x45 } - }; - unsigned const results[2] = { 0x62, 0x23 }; - - // Basic computer - boost::crc_basic<7> tester1( 0x09 ); - - tester1.process_bytes( samples[0], 16 ); - BOOST_CHECK( tester1.checksum() == results[0] ); - - tester1.reset(); - tester1.process_bytes( samples[1], 16 ); - BOOST_CHECK( tester1.checksum() == results[1] ); - - // Optimal computer - #define PRIVATE_CRC_FUNC boost::crc<7, 0x09, 0, 0, false, false> - #define PRIVATE_ACRC_FUNC boost::augmented_crc<7, 0x09> - - BOOST_CHECK( results[0] == PRIVATE_CRC_FUNC(samples[0], 16) ); - BOOST_CHECK( results[1] == PRIVATE_CRC_FUNC(samples[1], 16) ); -- // maybe the fix to CRC functions needs to be applied to augmented CRCs?
- - #undef PRIVATE_ACRC_FUNC - #undef PRIVATE_CRC_FUNC -} - - -#ifndef BOOST_MSVC -// Explicit template instantiations -// (needed to fix a link error in Metrowerks CodeWarrior Pro 5.3) -template class crc_tester<16, 0x1021, 0xFFFF, 0, false, false>; -template class crc_tester<16, 0x8005, 0, 0, true, true>;-template class crc_tester<32, 0x04C11DB7, 0xFFFFFFFF, 0xFFFFFFFF, true, true>;
-#endif - -// Main testing function -int -test_main -( - int , // "argc" is unused - char * [] // "argv" is unused -) -{ - using std::cout; - using std::endl; - - // Run simulations on some CRC types- typedef crc_tester<16, 0x1021, 0xFFFF, 0, false, false> crc_ccitt_tester;
- typedef crc_tester<16, 0x8005, 0, 0, true, true> crc_16_tester; - typedef crc_tester<32, 0x04C11DB7, 0xFFFFFFFF, 0xFFFFFFFF, true, true> - crc_32_tester; - - crc_ccitt_tester::master_test( "CRC-CCITT", std_crc_ccitt_result ); - crc_16_tester::master_test( "CRC-16", std_crc_16_result ); - crc_32_tester::master_test( "CRC-32", std_crc_32_result ); - - // Run a timing comparison test - timing_test(); - - // Test using augmented messages - augmented_tests(); - - // Test with CRC types smaller than a byte - small_crc_test1(); - small_crc_test2(); - - // Try a CRC based on the (x + 1) polynominal, which is a factor in - // many real-life polynominals and doesn't fit evenly in a byte. - cout << "Doing one-bit polynominal CRC test." << endl; - boost::crc_basic<1> crc_1( 1 ); - crc_1.process_bytes( std_data, std_data_len ); - BOOST_CHECK( crc_1.checksum() == 1 ); - - // Test the function object interface - cout << "Doing functional object interface test." << endl; - boost::crc_optimal<16, 0x8005, 0, 0, true, true> crc_16; - crc_16 = std::for_each( std_data, std_data + std_data_len, crc_16 ); - BOOST_CHECK( crc_16() == std_crc_16_result ); - - return boost::exit_success; -} =======================================--- /trunk/libs/exception/doc/exception_cloning_hpp.html Sun Jun 14 23:33:46 2009
+++ /dev/null @@ -1,75 +0,0 @@ -<!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>boost/exception_ptr.hpp</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">-<a href="http://www.boost.org";><img style="border:0" src="http://www.boost.org/boost.png"; alt="Boost" width="277" height="86"/></a>
-</div> -<h1>Boost Exception</h1> -</div> -<!-- Copyright (c) 2006-2009 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) --> -<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception_ptr.hpp</h2>
-</div> -<h3>摘要</h3>-<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="exception_exception_hpp.html">boost/exception/exception.hpp</a></span>>
- -namespace -boost - { -<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">class- <span class="RenoLink"><a href="unknown_exception.html">unknown_exception</a></span>:
- public std::exception- public boost::<span class="RenoLink"><a href="exception.html">exception</a></span>
- { - ---unspecified--- - };</span> -- <span class="RenoIncludeSPAN">typedef ---unspecified--- <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span>;</span>
- - <span class="RenoIncludeSPAN">template <class T>- <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span> <span class="RenoLink"><a href="copy_exception.html">copy_exception</a></span>( T const & e );</span>
-- <span class="RenoIncludeSPAN"><span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span> <span class="RenoLink"><a href="current_exception.html">current_exception</a></span>();</span>
-- <span class="RenoIncludeSPAN">void <span class="RenoLink"><a href="rethrow_exception.html">rethrow_exception</a></span>( <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span> const & ep );</span></span>
- }</pre> -</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> -<h3>参见:</h3>-<div class="RenoPageList"><a href="exception_hpp.html">boost/exception.hpp<br/>
-</a><a href="copy_exception.html">copy_exception<br/> -</a><a href="current_exception.html">current_exception<br/> -</a><a href="exception_ptr.html">exception_ptr<br/> -</a><a href="rethrow_exception.html">rethrow_exception<br/> -</a><a href="synopsis.html">Synopsis<br/> -</a><a href="unknown_exception.html">unknown_exception<br/> -</a></div> -</div> -<!-- Copyright (c) 2006-2009 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) -->
-<div id="footer"> -<p> </p> -<hr/> -<p>-<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> -<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> -<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> -Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright © 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small>
-</p> -</div> -</div> -</div> -</div> -</body> -</html> =======================================--- /trunk/libs/exception/doc/exception_diagnostic_information_hpp.html Sun Jun 14 23:33:46 2009
+++ /dev/null @@ -1,62 +0,0 @@ -<!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>boost/exception/diagnostic_information.hpp</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">-<a href="http://www.boost.org";><img style="border:0" src="http://www.boost.org/boost.png"; alt="Boost" width="277" height="86"/></a>
-</div> -<h1>Boost Exception</h1> -</div> -<!-- Copyright (c) 2006-2009 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) --> -<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/diagnostic_information.hpp</h2>
-</div> -<h3>摘要</h3> -<div class="RenoIncludeDIV"><pre>#include <string> - -namespace -boost - {-<span class="RenoIncludeSPAN"> class <span class="RenoLink"><a href="exception.html">exception</a></span>;</span>
--<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class E> - std::string <span class="RenoLink"><a href="diagnostic_information.html">diagnostic_information</a></span>( E const & e );</span>
-- <span class="RenoIncludeSPAN">std::string <span class="RenoLink"><a href="current_exception_diagnostic_information.html">current_exception_diagnostic_information</a></span>();</span></span>
- }</pre> -</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> -<h3>参见:</h3>-<div class="RenoPageList"><a href="exception_hpp.html">boost/exception.hpp<br/> -</a><a href="current_exception_diagnostic_information.html">current_exception_diagnostic_information<br/>
-</a><a href="diagnostic_information.html">diagnostic_information<br/> -</a><a href="synopsis.html">Synopsis<br/> -</a></div> -</div> -<!-- Copyright (c) 2006-2009 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) -->
-<div id="footer"> -<p> </p> -<hr/> -<p>-<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> -<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> -<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> -Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright © 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small>
-</p> -</div> -</div> -</div> -</div> -</body> -</html> =======================================--- /trunk/libs/exception/doc/exception_enable_current_exception_hpp.html Sun Jun 14 23:33:46 2009
+++ /dev/null @@ -1,56 +0,0 @@ -<!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>boost/exception/enable_current_exception.hpp</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">-<a href="http://www.boost.org";><img style="border:0" src="http://www.boost.org/boost.png"; alt="Boost" width="277" height="86"/></a>
-</div> -<h1>Boost Exception</h1> -</div> -<!-- Copyright (c) 2006-2009 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) --> -<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/exception/enable_current_exception.hpp</h3>
-</div> -<h3>摘要</h3>-<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="exception_exception_hpp.html">boost/exception/exception.hpp</a></span>>
- -namespace -boost - {-<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T> - ---unspecified--- <span class="RenoLink"><a href="enable_current_exception.html">enable_current_exception</a></span>( T const & e );</span></span>
- }</pre> -</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> -<h3>参见:</h3>-<div class="RenoPageList"><a href="enable_current_exception.html">enable_current_exception<br/>
-</a><a href="synopsis.html">Synopsis<br/> -</a></div> -</div> -<!-- Copyright (c) 2006-2009 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) -->
-<div id="footer"> -<p> </p> -<hr/> -<p>-<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> -<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> -<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> -Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright © 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small>
-</p> -</div> -</div> -</div> -</div> -</body> -</html> =======================================--- /trunk/libs/exception/doc/exception_enable_error_info_hpp.html Sun Jun 14 23:33:46 2009
+++ /dev/null @@ -1,56 +0,0 @@ -<!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>boost/exception/enable_error_info.hpp</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">-<a href="http://www.boost.org";><img style="border:0" src="http://www.boost.org/boost.png"; alt="Boost" width="277" height="86"/></a>
-</div> -<h1>Boost Exception</h1> -</div> -<!-- Copyright (c) 2006-2009 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) --> -<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/exception/enable_error_info.hpp</h3>
-</div> -<h3>摘要</h3>-<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="exception_exception_hpp.html">boost/exception/exception.hpp</a></span>>
- -namespace -boost - {-<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T> - ---unspecified--- <span class="RenoLink"><a href="enable_error_info.html">enable_error_info</a></span>( T const & x );</span></span>
- }</pre> -</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> -<h3>参见:</h3>-<div class="RenoPageList"><a href="enable_error_info.html">enable_error_info<br/>
-</a><a href="synopsis.html">Synopsis<br/> -</a></div> -</div> -<!-- Copyright (c) 2006-2009 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) -->
-<div id="footer"> -<p> </p> -<hr/> -<p>-<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> -<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> -<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> -Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright © 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small>
-</p> -</div> -</div> -</div> -</div> -</body> -</html> =======================================--- /trunk/libs/exception/doc/exception_error_info_group_hpp.html Sun Jun 14 23:33:46 2009
+++ /dev/null @@ -1,62 +0,0 @@ -<!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>boost/exception/info_tuple.hpp</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">-<a href="http://www.boost.org";><img style="border:0" src="http://www.boost.org/boost.png"; alt="Boost" width="277" height="86"/></a>
-</div> -<h1>Boost Exception</h1> -</div> -<!-- Copyright (c) 2006-2009 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) --> -<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/info_tuple.hpp</h2>
-</div> -<h3>摘要</h3>-<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="exception_error_info_hpp.html">boost/exception/info.hpp</a></span>>
-#include <boost/tuple/tuple.hpp> - -namespace -boost - {-<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class E, class Tag1, class T1, ..., class TagN, class TN> - E const & <span class="RenoLink"><a href="tuple_operator_shl.html">operator<<</a></span>( E const & x, - <span class="RenoLink"><a href="http://www.boost.org/libs/tuple/doc/tuple_users_guide.html";>tuple</a></span>< - <span class="RenoLink"><a href="error_info.html">error_info</a></span><Tag1,T1>,
- ...,- <span class="RenoLink"><a href="error_info.html">error_info</a></span><TagN,TN> > const & v );</span></span>
- }</pre> -</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> -<h3>参见:</h3>-<div class="RenoPageList"><a href="exception_hpp.html">boost/exception.hpp<br/>
-</a><a href="synopsis.html">Synopsis<br/> -</a><a href="tuple_operator_shl.html">tuple/operator<<<br/> -</a></div> -</div> -<!-- Copyright (c) 2006-2009 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) -->
-<div id="footer"> -<p> </p> -<hr/> -<p>-<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> -<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> -<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> -Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright © 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small>
-</p> -</div> -</div> -</div> -</div> -</body> -</html> =======================================--- /trunk/libs/exception/doc/exception_error_info_hpp.html Sun Jun 14 23:33:46 2009
+++ /dev/null @@ -1,74 +0,0 @@ -<!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>boost/exception/info.hpp</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">-<a href="http://www.boost.org";><img style="border:0" src="http://www.boost.org/boost.png"; alt="Boost" width="277" height="86"/></a>
-</div> -<h1>Boost Exception</h1> -</div> -<!-- Copyright (c) 2006-2009 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) --> -<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/info.hpp</h2>
-</div> -<h3>摘要</h3>-<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="exception_exception_hpp.html">boost/exception/exception.hpp</a></span>>
- -namespace -boost - {-<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class Tag,class T>
- class - <span class="RenoLink"><a href="error_info.html">error_info</a></span> - { - public: -- <span class="RenoIncludeSPAN"> typedef T <span class="RenoLink"><a href="error_info_value_type.html">value_type</a></span>;</span>
-- <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> - <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>
- };</span> -- <span class="RenoIncludeSPAN">template <class E, class Tag, class T> - E const & <span class="RenoLink"><a href="exception_operator_shl.html">operator<<</a></span>( E const & x, <span class="RenoLink"><a href="error_info.html">error_info</a></span><Tag,T> const & v );</span></span>
- }</pre> -</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> -<h3>参见:</h3>-<div class="RenoPageList"><a href="exception_hpp.html">boost/exception.hpp<br/> -</a><a href="exception_error_info_group_hpp.html">boost/exception/info_tuple.hpp<br/>
-</a><a href="error_info.html">error_info<br/> -</a><a href="error_info_error_info.html">error_info::error_info<br/> -</a><a href="error_info_value.html">error_info::value<br/> -</a><a href="error_info_value_type.html">error_info::value_type<br/> -</a><a href="exception_operator_shl.html">exception/operator<<<br/> -</a><a href="synopsis.html">Synopsis<br/> -</a></div> -</div> -<!-- Copyright (c) 2006-2009 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) -->
-<div id="footer"> -<p> </p> -<hr/> -<p>-<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> -<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> -<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> -Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright © 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small>
-</p> -</div> -</div> -</div> -</div> -</body> -</html> =======================================--- /trunk/libs/exception/doc/exception_error_info_value_hpp.html Sun Jun 14 23:33:46 2009
+++ /dev/null @@ -1,55 +0,0 @@ -<!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>boost/exception/error_info.hpp</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">-<a href="http://www.boost.org";><img style="border:0" src="http://www.boost.org/boost.png"; alt="Boost" width="277" height="86"/></a>
-</div> -<h1>Boost Exception</h1> -</div> -<!-- Copyright (c) 2006-2009 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) --> -<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/error_info.hpp</h2>
-</div> -<h3>摘要</h3> -<div class="RenoIncludeDIV"><pre>namespace -boost - {-<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class Tag,class T> - class <span class="RenoLink"><a href="error_info.html">error_info</a></span>;</span></span>
- }</pre> -</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> -<h3>参见:</h3>-<div class="RenoPageList"><a href="exception_hpp.html">boost/exception.hpp<br/>
-</a><a href="error_info.html">error_info<br/> -</a><a href="synopsis.html">Synopsis<br/> -</a></div> -</div> -<!-- Copyright (c) 2006-2009 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) -->
-<div id="footer"> -<p> </p> -<hr/> -<p>-<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> -<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> -<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> -Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright © 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small>
-</p> -</div> -</div> -</div> -</div> -</body> -</html> =======================================--- /trunk/libs/exception/doc/exception_exception_hpp.html Sun Jun 14 23:33:46 2009
+++ /dev/null @@ -1,74 +0,0 @@ -<!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>boost/exception/exception.hpp</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">-<a href="http://www.boost.org";><img style="border:0" src="http://www.boost.org/boost.png"; alt="Boost" width="277" height="86"/></a>
-</div> -<h1>Boost Exception</h1> -</div> -<!-- Copyright (c) 2006-2009 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) --> -<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/exception.hpp</h2>
-</div> -<h3>摘要</h3> -<div class="RenoIncludeDIV"><pre>namespace -boost - { -<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">class - <span class="RenoLink"><a href="exception.html">exception</a></span> - { - protected: -- <span class="RenoIncludeSPAN"> <span class="RenoLink"><a href="exception_constructors.html">exception</a></span>(); - <span class="RenoLink"><a href="exception_constructors.html">exception</a></span>( <span class="RenoLink"><a href="exception.html">exception</a></span> const & x );</span> - <span class="RenoIncludeSPAN"> <span class="RenoLink"><a href="exception_destructor.html">~exception</a></span>();</span>
- };</span> - - <span class="RenoIncludeSPAN">template <class Tag,class T>- class <span class="RenoLink"><a href="error_info.html">error_info</a></span>;</span>
-- typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct tag_throw_function,char const *> throw_function; - typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct tag_throw_file,char const *> throw_file; - typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct tag_throw_line,int> throw_line;</span>
- }</pre> -</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> -<h3>参见:</h3>-<div class="RenoPageList"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION<br/>
-</a><a href="exception_hpp.html">boost/exception.hpp<br/>-</a><a href="exception_enable_current_exception_hpp.html">boost/exception/enable_current_exception.hpp<br/> -</a><a href="exception_enable_error_info_hpp.html">boost/exception/enable_error_info.hpp<br/>
-</a><a href="exception_error_info_hpp.html">boost/exception/info.hpp<br/> -</a><a href="exception_cloning_hpp.html">boost/exception_ptr.hpp<br/> -</a><a href="exception.html">exception<br/> -</a><a href="synopsis.html">Synopsis<br/> -</a></div> -</div> -<!-- Copyright (c) 2006-2009 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) -->
-<div id="footer"> -<p> </p> -<hr/> -<p>-<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> -<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> -<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> -Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright © 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small>
-</p> -</div> -</div> -</div> -</div> -</body> -</html> =======================================--- /trunk/libs/exception/doc/exception_get_error_info_hpp.html Sun Jun 14 23:33:46 2009
+++ /dev/null @@ -1,56 +0,0 @@ -<!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>boost/exception/get_error_info.hpp</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">-<a href="http://www.boost.org";><img style="border:0" src="http://www.boost.org/boost.png"; alt="Boost" width="277" height="86"/></a>
-</div> -<h1>Boost Exception</h1> -</div> -<!-- Copyright (c) 2006-2009 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) --> -<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/get_error_info.hpp</h2>
-</div> -<h3>摘要</h3> -<div class="RenoIncludeDIV"><pre>#include <boost/shared_ptr.hpp> - -namespace -boost - {-<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class ErrorInfo,class E> - typename ErrorInfo::<span class="RenoLink"><a href="error_info_value_type.html">value_type</a></span> const * <span class="RenoLink"><a href="get_error_info.html">get_error_info</a></span>( E const & x );</span></span>
- }</pre> -</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> -<h3>参见:</h3>-<div class="RenoPageList"><a href="exception_hpp.html">boost/exception.hpp<br/>
-</a><a href="error_info.html">error_info<br/> -</a></div> -</div> -<!-- Copyright (c) 2006-2009 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) -->
-<div id="footer"> -<p> </p> -<hr/> -<p>-<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> -<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> -<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> -Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright © 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small>
-</p> -</div> -</div> -</div> -</div> -</body> -</html> ======================================= --- /trunk/libs/exception/doc/exception_hpp.html Sun Jun 14 23:33:46 2009 +++ /dev/null @@ -1,56 +0,0 @@ -<!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>boost/exception.hpp</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">-<a href="http://www.boost.org";><img style="border:0" src="http://www.boost.org/boost.png"; alt="Boost" width="277" height="86"/></a>
-</div> -<h1>Boost Exception</h1> -</div> -<!-- Copyright (c) 2006-2009 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) --> -<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception.hpp</h2>
-</div> -<h3>摘要</h3>-<div class="RenoIncludeDIV"><pre><span class="RenoIncludeSPAN">#include <<span class="RenoLink"><a href="exception_diagnostic_information_hpp.html">boost/exception/diagnostic_information.hpp</a></span>> -#include <<span class="RenoLink"><a href="exception_error_info_value_hpp.html">boost/exception/error_info.hpp</a></span>> -#include <<span class="RenoLink"><a href="exception_exception_hpp.html">boost/exception/exception.hpp</a></span>> -#include <<span class="RenoLink"><a href="exception_get_error_info_hpp.html">boost/exception/get_error_info.hpp</a></span>> -#include <<span class="RenoLink"><a href="exception_error_info_hpp.html">boost/exception/info.hpp</a></span>> -#include <<span class="RenoLink"><a href="exception_error_info_group_hpp.html">boost/exception/info_tuple.hpp</a></span>> -#include <<span class="RenoLink"><a href="exception_cloning_hpp.html">boost/exception_ptr.hpp</a></span>></span></pre>
-</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> -<h3>参见:</h3>-<div class="RenoPageList"><a href="tutorial_diagnostic_information.html">Diagnostic Information<br/> -</a><a href="tutorial_enable_error_info.html">Integrating Boost Exception in Existing Exception Class Hierarchies<br/>
-</a><a href="synopsis.html">Synopsis<br/> -</a></div> -</div> -<!-- Copyright (c) 2006-2009 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) -->
-<div id="footer"> -<p> </p> -<hr/> -<p>-<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> -<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> -<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> -Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright © 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small>
-</p> -</div> -</div> -</div> -</div> -</body> -</html> =======================================--- /trunk/libs/circular_buffer/doc/circular_buffer.html Tue Nov 11 06:29:14 2008 +++ /trunk/libs/circular_buffer/doc/circular_buffer.html Fri Sep 4 04:09:20 2009
@@ -2,9 +2,7 @@ <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Templated Circular Buffer Container</title>
-<link rel="stylesheet" href="../../../boost.css" type="text/css"> -</head> - +<link rel="stylesheet" href="../../../boost.css" type="text/css"></head> <body> <table id="title" border="0"> <tbody> @@ -221,9 +219,9 @@们。有界缓冲区必须保证当容器满时,生产者不会插入,同样当容器空时消费者不会 取出,并且每个事项正好被一个消费者消耗。 </p>
<p>下例示范了 <code>circular_buffer</code> 如何被用作有界缓冲区的底层容器。 </p>-<pre> #include <boost/circular_buffer.hpp><br> #include <boost/thread/mutex.hpp><br> #include <boost/thread/condition.hpp><br> #include <boost/thread/thread.hpp><br> #include <boost/progress.hpp><br> #include <boost/bind.hpp><br><br> template <class T><br> class bounded_buffer {<br> public:<br><br> typedef boost::circular_buffer<T> container_type;<br> typedef typename container_type::size_type size_type;<br> typedef typename container_type::value_type value_type;<br><br> explicit bounded_buffer(size_type capacity) : m_unread(0), m_container(capacity) {}<br><br> void push_front(const value_type& item) {<br> boost::mutex::scoped_lock lock(m_mutex);<br> m_not_full.wait(lock, boost::bind(&bounded_buffer<value_type>::is_not_full, this));<br> m_container.push_front(item);<br> ++m_unread;<br> lock.unlock();<br> m_not_empty.notify_one();<br> }<br><br> void pop_back(value_type* pItem) {<br> boost::mutex::scoped_lock lock(m_mutex);<br> m_not_empty.wait(lock, boost::bind(&bounded_buffer<value_type>::is_not_empty, this));<br> *pItem = m_container[--m_unread];<br> lock.unlock();<br> m_not_full.notify_one();<br> }<br><br> private:<br> bounded_buffer(const bounded_buffer&); // 禁止复制构造函数<br> bounded_buffer& operator = (const bounded_buffer&); // 禁止赋值操作符<br><br> bool is_not_empty() const { return m_unread > 0; }<br> bool is_not_full() const { return m_unread < m_container.capacity(); }<br><br> size_type m_unread;<br> container_type m_container;<br> boost::mutex m_mutex;<br> boost::condition m_not_empty;<br> boost::condition m_not_full;<br> };<br></pre> -<p><code>bounded_buffer</code> 使用了 <a href="../../thread/doc/">Boost Threads</a> 和 <a href="../../bind/bind.html">Boost Bind</a> 库。 </p>
-<p> 方法 <code>push_front()</code>+<pre> #include <boost/circular_buffer.hpp><br> #include <boost/thread/mutex.hpp><br> #include <boost/thread/condition.hpp><br> #include <boost/thread/thread.hpp><br> #include <boost/call_traits.hpp><br> #include <boost/progress.hpp><br> #include <boost/bind.hpp><br><br> template <class T><br> class bounded_buffer {<br> public:<br><br> typedef boost::circular_buffer<T> container_type;<br> typedef typename container_type::size_type size_type;<br> typedef typename container_type::value_type value_type;<br> typedef typename boost::call_traits<value_type>::param_type param_type;<br><br> explicit bounded_buffer(size_type capacity) : m_unread(0), m_container(capacity) {}<br><br> void push_front(boost::call_traits<value_type>::param_type item) {<br> // param_type represents the "best" way to pass a parameter of type value_type to a method<br><br> boost::mutex::scoped_lock lock(m_mutex);<br> m_not_full.wait(lock, boost::bind(&bounded_buffer<value_type>::is_not_full, this));<br> m_container.push_front(item);<br> ++m_unread;<br> lock.unlock();<br> m_not_empty.notify_one();<br> }<br><br> void pop_back(value_type* pItem) {<br> boost::mutex::scoped_lock lock(m_mutex);<br> m_not_empty.wait(lock, boost::bind(&bounded_buffer<value_type>::is_not_empty, this));<br> *pItem = m_container[--m_unread];<br> lock.unlock();<br> m_not_full.notify_one();<br> }<br><br> private:<br> bounded_buffer(const bounded_buffer&); // 禁止复制构造函数<br> bounded_buffer& operator = (const bounded_buffer&); // 禁止赋值操作符<br><br> bool is_not_empty() const { return m_unread > 0; }<br> bool is_not_full() const { return m_unread < m_container.capacity(); }<br><br> size_type m_unread;<br> container_type m_container;<br> boost::mutex m_mutex;<br> boost::condition m_not_empty;<br> boost::condition m_not_full;<br> };<br></pre>
+<p><code>bounded_buffer</code> 依赖于 <a href="../../thread/doc/">Boost+Threads</a> 和 <a href="../../bind/bind.html">Boost Bind</a> 库以及 <a href="../../utility/call_traits.htm">Boost call_traits</a> 工具。</p><p>方 法 <code>push_front()</code> 被生产者线程调用以插入新事项到缓冲区中。该方法锁住互斥体并等待至有空间容纳 新事项。(互斥体在等待期间会被解锁,当条件满足时再重新锁住)。如果缓冲
区中有空间可用,执行将继续,该方法插入新事项到 <code>circular_buffer</code>的尾部。然后递增未读项计数并解锁互斥体(如果在互斥体解锁前抛出异常,互斥体会 由 <code>scoped_lock</code>
@@ -238,7 +236,7 @@方法删除该事项更为高效。这种方法基于以下假设,即新事项的赋值(替换)操作比析 构(删除)旧项并原地构造(插入)新项更为高效。 </p> <p>要和基于不同容器的有界缓冲区进行比较,可以编译并运行 <a href="../test/bounded_buffer_comparison.cpp">bounded_buffer_comparison.cpp</a>. 该测试将表明,基于 <code>circular_buffer</code> 的有界缓冲区比基于 <code>std::deque</code> -的有界缓冲区更为高效。(在实践中的结果可能不一样,因为该测试会受到如即时 CPU负荷等外部因素的影响)。 </p> +的有界缓冲区更为高效。(在实践中的结果可能不一样,因为该测试总是会受到如即时 CPU负荷等外部因素的影响)。 </p>
<h2> <a name="header" id="header">头文件</a> </h2><p><code>circular_buffer</code> 定义于文件 <code><a href="../../../boost/circular_buffer.hpp">boost/circular_buffer.hpp</a></code>
@@ -402,21 +400,21 @@ <tr><td> <a id="classboost_1_1circular__buffer_1862a64cbc6a49376ecbb8321c3b44974" name="classboost_1_1circular__buffer_1862a64cbc6a49376ecbb8321c3b44974"></a><code><b>explicit circular_buffer(<a href="#classboost_1_1circular__buffer_1dc642ff2be4db0be1a457810e5d09595">capacity_type</a> -capacity, const <a href="#classboost_1_1circular__buffer_14e07c6ddfe89debe384e59bed06e7cb7">allocator_type</a>& +buffer_capacity, const <a href="#classboost_1_1circular__buffer_14e07c6ddfe89debe384e59bed06e7cb7">allocator_type</a>&
alloc = allocator_type());</b></code><br> <br> 以指定容量创建一个空的 <code>circular_buffer</code>. <dl> <dt> <b>作用:</b> </dt><dd> <code><a href="#classboost_1_1circular__buffer_1da435a5884cad746ed5cd55bcb892035">capacity()</a> -== capacity && <a href="#classboost_1_1circular__buffer_1d666f694897465b0d4d7cdd8ddcbc213">size()</a> +== buffer_capacity && <a href="#classboost_1_1circular__buffer_1d666f694897465b0d4d7cdd8ddcbc213">size()</a>
== 0</code> </dd> </dl> <dl> <dt> <b>参数:</b> </dt> <dd> <dl compact="compact"> -<dt> <code>capacity</code> </dt> +<dt> <code>buffer_capacity</code> </dt> <dd>可以保存在 <code>circular_buffer</code> 中的元素最大数量。 </dd> </dl> @@ -494,7 +492,7 @@ </tr> <tr><td> <a id="classboost_1_1circular__buffer_10c7e9286d8270357d7e369b183124239" name="classboost_1_1circular__buffer_10c7e9286d8270357d7e369b183124239"></a><code><b>circular_buffer(<a href="#classboost_1_1circular__buffer_1dc642ff2be4db0be1a457810e5d09595">capacity_type</a> -capacity, <a href="#classboost_1_1circular__buffer_19ba12c0142a21a7d960877c22fa3ea00">size_type</a> +buffer_capacity, <a href="#classboost_1_1circular__buffer_19ba12c0142a21a7d960877c22fa3ea00">size_type</a> n, <a href="#classboost_1_1circular__buffer_1a8397191092f5bacee991b623ca4b910">const_reference</a> item, const <a href="#classboost_1_1circular__buffer_14e07c6ddfe89debe384e59bed06e7cb7">allocator_type</a>&
alloc = allocator_type());</b></code><br> @@ -504,12 +502,12 @@ <dl> <dt> <span style="font-weight: bold;">前提条件:</span> </dt> -<dd> <code>capacity >= n</code> </dd> +<dd> <code>buffer_capacity >= n</code> </dd> </dl> <dl> <dt> <b>作用:</b> </dt><dd> <code><a href="#classboost_1_1circular__buffer_1da435a5884cad746ed5cd55bcb892035">capacity()</a> -== capacity && <a href="#classboost_1_1circular__buffer_1d666f694897465b0d4d7cdd8ddcbc213">size()</a> +== buffer_capacity && <a href="#classboost_1_1circular__buffer_1d666f694897465b0d4d7cdd8ddcbc213">size()</a>
== n && (*this)[0] == item && (*this)[1] == item && ... && (*this)[n - 1] == item</code> </dd> @@ -519,7 +517,7 @@ <dt> <b>参数:</b></dt> <dd> <dl compact="compact"> -<dt> <code>capacity</code> </dt> +<dt> <code>buffer_capacity</code> </dt> <dd>被创建 <code>circular_buffer</code> 的容量。 </dd> </dl> @@ -654,7 +652,7 @@<td> <a id="classboost_1_1circular__buffer_1a64dcad327971194a706d52487151eb7" name="classboost_1_1circular__buffer_1a64dcad327971194a706d52487151eb7"></a>
<code><b>template <class InputIterator><br>circular_buffer(<a href="#classboost_1_1circular__buffer_1dc642ff2be4db0be1a457810e5d09595">capacity_type</a> -capacity, InputIterator first, InputIterator last, const <a href="#classboost_1_1circular__buffer_14e07c6ddfe89debe384e59bed06e7cb7">allocator_type</a>& +buffer_capacity, InputIterator first, InputIterator last, const <a href="#classboost_1_1circular__buffer_14e07c6ddfe89debe384e59bed06e7cb7">allocator_type</a>&
alloc = allocator_type());</b></code><br> <br> 创建一个指定容量的 <code>circular_buffer</code>,以指定区间的拷贝填充。 @@ -669,20 +667,20 @@ <dt> <span style="font-weight: bold;">作用:</span> </dt><dd> <code></code><code><a href="circular_buffer.html#classboost_1_1circular__buffer_1da435a5884cad746ed5cd55bcb892035">capacity()</a> -== capacity && <a href="circular_buffer.html#classboost_1_1circular__buffer_1d666f694897465b0d4d7cdd8ddcbc213">size()</a> +== buffer_capacity && <a href="circular_buffer.html#classboost_1_1circular__buffer_1d666f694897465b0d4d7cdd8ddcbc213">size()</a>
<= std::distance(first, last) && (*this)[0]== -*(last - capacity) && (*this)[1] == *(last - capacity + -1) && ... && (*this)[capacity - 1] ==+*(last - </code><code>buffer_</code><code>capacity) && (*this)[1] == *(last - </code><code>buffer_</code><code>capacity + +1) && ... && (*this)[</code><code>buffer_</code><code>capacity - 1] ==
*(last - 1)</code></dd> </dl> <dl> <dd>如果被复制的区间 <code>[first, last)</code> -中的元素数量大于指定的容量,则只有区间 <code>[last - capacity, last)</code>+中的元素数量大于指定的容量,则只有区间 <code>[last - </code><code>buffer_</code><code>capacity, last)</code>
中的元素被复制。</dd> <dt><b>参数:</b></dt> <dd> <dl compact="compact"> -<dt> <code>capacity</code> </dt> +<dt> <code>buffer_</code><code>capacity</code> </dt> <dd>被创建的 <code>circular_buffer</code> 的容量。 </dd> </dl> @@ -1856,7 +1854,7 @@ <b>复杂度:</b> </dt> <dd>-线怀(与 <code>std::min(m, n)</code> 相关);如果 <code>circular_buffer</code> 为满则为常数。 +线怀(与 <code>(std::min)(m, n)</code> 相关);如果 <code>circular_buffer</code> 为满则为常数。
</dd> </dl> <dl> @@ -2446,7 +2444,7 @@ <tr><td> <a id="classboost_1_1circular__buffer_1aa10b4e4ec1f1c5918931b04b31d43ca" name="classboost_1_1circular__buffer_1aa10b4e4ec1f1c5918931b04b31d43ca"></a><code><b>void assign(<a href="#classboost_1_1circular__buffer_1dc642ff2be4db0be1a457810e5d09595">capacity_type</a> -capacity, <a href="#classboost_1_1circular__buffer_19ba12c0142a21a7d960877c22fa3ea00">size_type</a> +buffer_capacity, <a href="#classboost_1_1circular__buffer_19ba12c0142a21a7d960877c22fa3ea00">size_type</a> n, <a href="#classboost_1_1circular__buffer_1a8397191092f5bacee991b623ca4b910">const_reference</a>
item);</b></code><br> <br> @@ -2461,7 +2459,7 @@ <dl> <dt> <b>作用:</b> </dt><dd> <code><a href="#classboost_1_1circular__buffer_1da435a5884cad746ed5cd55bcb892035">capacity()</a> -== capacity && <a href="#classboost_1_1circular__buffer_1d666f694897465b0d4d7cdd8ddcbc213">size()</a> +== buffer_capacity && <a href="#classboost_1_1circular__buffer_1d666f694897465b0d4d7cdd8ddcbc213">size()</a>
== n && (*this)[0] == item && (*this)[1] == item && ... && (*this) [n - 1] == item</code> </dd> @@ -2470,7 +2468,7 @@ <dt> <b>参数:</b> </dt> <dd> <dl compact="compact"> -<dt> <code>capacity</code> </dt> +<dt> <code>buffer_capacity</code> </dt> <dd>新的容量。 </dd> </dl> </dd> @@ -2595,7 +2593,7 @@<td> <a id="classboost_1_1circular__buffer_11edb80acdf1f7f1df8217d57256e41f6" name="classboost_1_1circular__buffer_11edb80acdf1f7f1df8217d57256e41f6"></a>
<code><b>template <class InputIterator><br>void assign(<a href="#classboost_1_1circular__buffer_1dc642ff2be4db0be1a457810e5d09595">capacity_type</a>
-capacity, InputIterator first, InputIterator last);</b></code><br> +buffer_capacity, InputIterator first, InputIterator last);</b></code><br> <br> 将给定区间赋值到指定容量的 <code>circular_buffer</code> 中。<p><code>circular_buffer</code> 的容量将被设置为指定 值,<code>circular_buffer</code>
@@ -2610,20 +2608,20 @@ <dl> <dt> <b>作用:</b> </dt><dd> <code><a href="#classboost_1_1circular__buffer_1da435a5884cad746ed5cd55bcb892035">capacity()</a> -== capacity && <a href="#classboost_1_1circular__buffer_1d666f694897465b0d4d7cdd8ddcbc213">size()</a> +== buffer_capacity && <a href="#classboost_1_1circular__buffer_1d666f694897465b0d4d7cdd8ddcbc213">size()</a>
<= std::distance(first, last) && (*this)[0]== -*(last - capacity) && (*this)[1] == *(last - capacity + -1) && ... && (*this)[capacity - 1] ==+*(last - </code><code>buffer_</code><code>capacity) && (*this)[1] == *(last - </code><code>buffer_</code><code>capacity + +1) && ... && (*this)[</code><code>buffer_</code><code>capacity - 1] ==
*(last - 1)</code><br> <br>-如果被复制的来自 range <code>[first, last)</code> 的元素数量大于给定的 <code>capacity</code>,
-则只有区间 <code>[last - capacity, last)</code> 中的元素被复制。 </dd>+如果被复制的来自 range <code>[first, last)</code> 的元素数量大于给定的 <code>buffer_</code><code>capacity</code>, +则只有区间 <code>[last - </code><code>buffer_</code><code>capacity, last)</code> 中的元素被复制。 </dd>
</dl> <dl> <dt> <b>参数:</b> </dt> <dd> <dl compact="compact"> -<dt> <code>capacity</code> </dt> +<dt> <code>buffer_</code><code>capacity</code> </dt> <dd>新的容量。 </dd> </dl> </dd> =======================================--- /trunk/libs/config/doc/html/boost_config/boost_macro_reference.html Sun Mar 29 23:39:34 2009 +++ /trunk/libs/config/doc/html/boost_config/boost_macro_reference.html Fri Sep 4 04:09:20 2009
@@ -1539,164 +1539,256 @@ </div> </div> </div>-<p>以下宏描述了在即将到来的 ISO C++ 标准 C++0x 中,但尚未被某个特定编译器支 持的一些特性。 </p> +<p>以下宏描述了在即将到来的 ISO C++ 标准 C++0x 中,但尚未被某个特定编译器或 特定库支持的一些特性。 </p>
<div class="informaltable"> <table class="table"> -<colgroup><col><col><col></colgroup> -<thead><tr> +<colgroup><col><col></colgroup> +<thead> +<tr> <th> -<p>宏</p> -</th> +<p>Macro </p></th> <th> -<p>说明 </p> -</th> -</tr> -</thead><tbody> +<p>Description </p></th></tr></thead> +<tbody> <tr> <td>-<p><code class="computeroutput"><span class="identifier">BOOST_NO_CHAR16_T</span></code>
-</p> -</td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_ARRAY</span></code> </p></td>
<td>-<p>编译器不支持类型 <code class="computeroutput"><span class="identifier">char16_t</span></code>. </p>
-</td> -</tr> +<p>标准库不支持头文件 <array>. </p></td></tr> <tr> <td>-<p><code class="computeroutput"><span class="identifier">BOOST_NO_CHAR32_T</span></code>
-</p> -</td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_CHRONO</span></code> </p></td>
<td>-<p>编译器不支持类型 <code class="computeroutput"><span class="identifier">char32_t</span></code>. </p>
-</td> -</tr> +<p>标准库不支持头文件 <chrono>. </p></td></tr> <tr> <td>-<p><code class="computeroutput"><span class="identifier">BOOST_NO_CONSTEXPR</span></code>
-</p> -</td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_CODECVT</span></code> </p></td>
<td>-<p>编译器不支持 <code class="computeroutput"><span class="identifier">constexpr</span></code>. </p>
-</td> -</tr> +<p>标准库不支持头文件 <codecvt>. </p></td></tr> <tr> <td>-<p><code class="computeroutput"><span class="identifier">BOOST_NO_DECLTYPE</span></code>
-</p> -</td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_CONCEPTS</span></code> </p></td>
<td>-<p>编译器不支持 <code class="computeroutput"><span class="identifier">decltype</span></code>. </p>
-</td> -</tr> +<p>标准库不支持头文件 <concepts>. </p></td></tr> <tr> <td>-<p><code class="computeroutput"><span class="identifier">BOOST_NO_DEFAULTED_FUNCTIONS</span></code>
-</p> -</td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_CONDITION_VARIABLE</span></code> </p></td>
<td>-<p>编译器不支持缺省(<code class="computeroutput"><span class="special">=</span> <span class="keyword">default</span></code>)
-函数。<code class="computeroutput"><span class="identifier"></span></code> -</p> -</td> -</tr> +<p>标准库不支持头文件 <condition_variable>. +</p></td></tr> <tr>-<td><code class="computeroutput"><span class="identifier">BOOST_NO_DELETED_FUNCTIONS</span></code></td> -<td>编译器不支持已删(<code class="computeroutput"><span class="special">=</span>
-<span class="keyword">delete</span></code>) -函数。</td> -</tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_CONTAINER_CONCEPTS</span></code> </p></td>
+<td> +<p>标准库不支持头文件 <container_concepts>. +</p></td></tr> <tr> <td>-<p><code class="computeroutput"><span class="identifier">BOOST_NO_EXPLICIT_CONVERSION_OPERATIONS</span></code>
-</p> -</td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_FORWARD_LIST</span></code> </p></td>
<td>-<p>编译器不支持显式转换操作符(<code class="computeroutput"><span class="keyword">explicit</span> <span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span></code>).
-</p> -</td> -</tr> +<p>标准库不支持头文件 <forward_list>. +</p></td></tr> <tr> <td>-<p><code class="computeroutput"><span class="identifier">BOOST_NO_EXTERN_TEMPLATE</span></code>
-</p> -</td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_FUTURE</span></code> </p></td>
<td>-<p>编译器不支持模板显式实例化声明 (<code class="computeroutput"><span class="keyword">explicit</span> <span class="keyword">template</span></code>). </p>
-</td> -</tr>-<tr><td><p><code class="computeroutput"><span class="identifier">BOOST_NO_INITIALIZER_LISTS</span></code> </p></td><td><p>C++ 编译器不支持 C++0x 初始化列表。 </p></td></tr><tr>
+<p>标准库不支持头文件 <future>. </p></td></tr> +<tr> <td>-<p><code class="computeroutput"><span class="identifier">BOOST_NO_LONG_LONG</span></code>
-</p> -</td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_INITIALIZER_LIST</span></code> </p></td>
<td>-<p>编译器不支持 <code class="computeroutput"><span class="keyword">long</span>
-<span class="keyword">long</span></code>. -</p> -</td> -</tr> +<p>标准库不支持头文件 <initializer_list>. +</p></td></tr> <tr> <td>-<p><code class="computeroutput"><span class="identifier">BOOST_NO_RAW_LITERALS</span></code>
-</p> -</td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_ITERATOR_CONCEPTS</span></code> </p></td>
<td> -<p>编译器不支持裸字符串文字。 </p> -</td> -</tr> +<p>标准库不支持头文件 <iterator_concepts>. +</p></td></tr> <tr> <td>-<p><code class="computeroutput"><span class="identifier">BOOST_NO_RVALUE_REFERENCES</span></code>
-</p> -</td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_MEMORY_CONCEPTS</span></code> </p></td>
<td> -<p>编译器不支持右值引用。 </p> -</td> -</tr> +<p>标准库不支持头文件 <memory_concepts>. +</p></td></tr> <tr> <td>-<p><code class="computeroutput"><span class="identifier">BOOST_NO_SCOPED_ENUMS</span></code>
-</p> -</td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_MUTEX</span></code> </p></td>
<td>-<p>编译器不支持定域枚举(<code class="computeroutput"><span class="keyword">enum</span>
-<span class="keyword">class</span></code>). -</p> -</td> -</tr> +<p>标准库不支持头文件 <mutex>. </p></td></tr> <tr> <td>-<p><code class="computeroutput"><span class="identifier">BOOST_NO_STATIC_ASSERT</span></code>
-</p> -</td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_RANDOM</span></code> </p></td>
<td>-<p>编译器不支持 <code class="computeroutput"><span class="identifier">static_assert</span></code>.
-</p> -</td> -</tr>-<tr><td><p><code class="computeroutput"><span class="identifier">BOOST_NO_STD_UNORDERD</span></code> </p></td><td><p>标准 库不支持 <unordered_map> 和
-<unordered_set>. </p></td></tr><tr> +<p>标准库不支持头文件 <random>. </p></td></tr> +<tr> <td>-<p><code class="computeroutput"><span class="identifier">BOOST_NO_UNICODE_LITERALS</span></code>
-</p> -</td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_RATIO</span></code> </p></td>
<td>-<p>编译器不支持 Unicode (<code class="computeroutput"><span class="identifier">u8</span></code>, -<code class="computeroutput"><span class="identifier">u</span></code>, <code class="computeroutput"><span class="identifier">U</span>#<span class="special"></span><span class="special"></span></code>)文字。
-</p> -</td> -</tr> +<p>标准库不支持头文件 <ratio>. </p></td></tr> <tr> <td>-<p><code class="computeroutput"><span class="identifier">BOOST_NO_VARIADIC_TEMPLATES</span></code>
-</p> -</td> -<td>编译器不支持可变参数数量的模板。</td> -</tr> -</tbody> -</table> -</div> -</div></div></div></div><div class="informaltable"><br></div>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_REGEX</span></code> </p></td>
+<td> +<p>标准库不支持头文件 <regex>. </p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_SYSTEM_ERROR</span></code> </p></td>
+<td> +<p>标准库不支持头文件 <system_error>. +</p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_THREAD</span></code> </p></td>
+<td> +<p>标准库不支持头文件 <thread>. </p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_TUPLE</span></code> </p></td>
+<td> +<p>标准库不支持头文件 <tuple>. </p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_TYPE_TRAITS</span></code> </p></td>
+<td> +<p>标准库不支持头文件 <type_traits>. +</p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_UNORDERED_MAP</span></code> </p></td>
+<td> +<p>标准库不支持头文件 <unordered_map>. +</p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_UNORDERED_SET</span></code> </p></td>
+<td> +<p>标准库不支持头文件 <unordered_set>. +</p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_AUTO_DECLARATIONS</span></code> </p></td>
+<td> +<p>编译器不支持以+<code class="computeroutput"><span class="keyword">auto</span></code> 关键 字声明的变量(<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span> <span class="special">=</span> <span class="special">...;</span></code>)的类型推导。 </p></td></tr>
+<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_AUTO_MULTIDECLARATIONS</span></code> </p></td>
+<td>+<p>编译器不支持以 <code class="computeroutput"><span class="keyword">auto</span></code> +关键字声明的多个变量(<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span> <span class="special">=</span> <span class="special">...,</span> <span class="special">*</span><span class="identifier">ptr</span> <span class="special">=</span> <span class="special">...;</span></code>)的类型推 导。 </p></td></tr>
+<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_CHAR16_T</span></code> </p></td>
+<td>+<p>编译器不支持类型 <code class="computeroutput"><span class="identifier">char16_t</span></code>. </p></td></tr>
+<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_CHAR32_T</span></code> </p></td>
+<td>+<p>编译器不支持类型 <code class="computeroutput"><span class="identifier">char32_t</span></code>. </p></td></tr>
+<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_CONCEPTS</span></code> </p></td>
+<td> +<p>编译器不支持概念。 </p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_TEMPLATE_ALIASES</span></code> </p></td>
+<td> +<p>编译器不支持模板别名。 </p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_CONSTEXPR</span></code> </p></td>
+<td>+<p>编译器不支持 <code class="computeroutput"><span class="identifier">constexpr</span></code>. </p></td></tr>
+<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_DECLTYPE</span></code> </p></td>
+<td>+<p>编译器不支持 <code class="computeroutput"><span class="identifier">decltype</span></code>. </p></td></tr>
+<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_DEFAULTED_FUNCTIONS</span></code> </p></td>
+<td>+<p>编译器不支持缺省函数(<code class="computeroutput"><span class="special">=</span> <span class="keyword">default</span></code>)。
+</p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_DELETED_FUNCTIONS</span></code> </p></td>
+<td>+<p>编译器不支持已删函数(<code class="computeroutput"><span class="special">=</span> <span class="keyword">delete</span></code>)。
+</p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_EXPLICIT_CONVERSION_OPERATIONS</span></code> </p></td>
+<td>+<p>编译器不支持显式转换操作符(<code class="computeroutput"><span class="keyword">explicit</span> <span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span></code>)。 </p></td></tr>
+<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_EXTERN_TEMPLATE</span></code> </p></td>
+<td>+<p>编译器不支持模板显式实例化声明 (<code class="computeroutput"><span class="keyword">explicit</span> <span class="keyword">template</span></code>). </p></td></tr>
+<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_INITIALIZER_LISTS</span></code> </p></td>
+<td> +<p>C++ 编译器不支持 C++0x 初始化列表。</p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_LAMBDAS</span></code> </p></td>
+<td> +<p>编译器不支持 Lambdas. </p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_LONG_LONG</span></code> </p></td>
+<td>+<p>编译器不支持 <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></code>. </p></td></tr>
+<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_NULLPTR</span></code> </p></td>
+<td> +<p>编译器不支持 'nullptr'. </p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_RAW_LITERALS</span></code> </p></td>
+<td> +<p>编译器不支持裸字符串文字。</p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_RVALUE_REFERENCES</span></code> </p></td>
+<td> +<p>编译器不支持右值引用。</p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_SCOPED_ENUMS</span></code> </p></td>
+<td>+<p>编译器不支持定域枚举(<code class="computeroutput"><span class="keyword">enum</span> <span class="keyword">class</span></code>).</p></td></tr>
+<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_STATIC_ASSERT</span></code> </p></td>
+<td>+<p>编译器不支持 <code class="computeroutput"><span class="identifier">static_assert</span></code>.</p></td></tr>
+<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_STD_UNORDERD</span></code> </p></td>
+<td>+<p>标准库不支持 <unordered_map> 和 <unordered_set>.</p></td></tr>
+<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_TEMPLATE_ALIASES</span></code> </p></td>
+<td> +<p>编译器不支持模板别名。 </p></td></tr> +<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_UNICODE_LITERALS</span></code> </p></td>
+<td>+<p>编译器不支持 Unicode (<code class="computeroutput"><span class="identifier">u8</span></code>, <code class="computeroutput"><span class="identifier">u</span></code>, <code class="computeroutput"><span class="identifier">U</span></code>) 文字。 </p></td></tr>
+<tr> +<td>+<p><code class="computeroutput"><span class="identifier">BOOST_NO_VARIADIC_TEMPLATES</span></code> </p></td>
+<td>+<p>编译器不支持可变参数数量的模板。 </p></td></tr></tbody></table></div><br></div></div></div></div><div class="informaltable"><br></div>
</div> <a name="config_helpers"></a> <p> </p> ======================================= --- /trunk/libs/config/doc/html/index.html Mon Jun 1 20:48:16 2009 +++ /trunk/libs/config/doc/html/index.html Fri Sep 4 04:09:20 2009 @@ -1165,7 +1165,7 @@ <tr>- <td align="left"><p><small>Last revised: February 21, 2009 at 13:17:03 GMT</small></p> + <td align="left"><p><small>Last revised: May 15, 2009 at 15:05:51 GMT</small></p>
</td> ======================================= --- /trunk/libs/crc/crc.html Thu Sep 4 17:45:49 2008 +++ /trunk/libs/crc/crc.html Fri Sep 4 04:09:20 2009 @@ -1,6 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> -<html> -<head> +<html><head> @@ -8,9 +7,7 @@ - <title>Boost CRC Library Documentation</title> -</head> - + <title>Boost CRC Library Documentation</title></head> <body alink="red" bgcolor="white" link="blue" text="black" vlink="purple"> @@ -21,7 +18,7 @@<p>头文件 <cite><<a href="../../boost/crc.hpp">boost/crc.hpp</a>></cite> 提供了两个位于 boost 名称空间(namespace)中的两个类模板。这些模板定义了一些对象,使用它们 可以计算给定数据流的 CRC -——循环冗余码(校验)。这个头文件还提供了一步(一次调用)就可以 计算出 CRC 的函数模板。</p> +----循环冗余码(校验)。这个头文件还提供了一步(一次调用)就可以计算出 CRC 的 函数模板。</p>
@@ -119,7 +116,7 @@-<p>实现相关的类型 impl_def 代表“可以表示至少 Bits 个位,且可以最快地 进行运算的内建无符号整数类型”。</p> +<p>实现相关的类型 impl_def 代表"可以表示至少 Bits 个位,且可以最快地进行运 算的内建无符号整数类型"。</p>
@@ -177,7 +174,7 @@ </dl><div style="margin-left: 40px;">在运算过程中 CRC 余数随着对数据的逐位处理而 变化。余数的初始值通常是0,但是有些 CRCs -使用其他值来避免“盲点”。所谓的“盲点”是指一个共同 (common)的消息位序列不改变特定的中间余数值。</div> +使用其他值来避免"盲点"。所谓的"盲点"是指一个共同(common)的消息位序列不改 变特定的中间余数值。</div>
<dl> @@ -189,7 +186,7 @@ </dl><div style="margin-left: 40px;">CRC 余数在返回给用户之前,可以通过位异或 (bitwise -exclusive-or)操作与一个特定的值进行合并。这个特定的值一般是0,也就是说余数 被原封不动地返回给用户。另一个常用的值是“全1”值(译者注:即这个 值的所有二进制位都是1的),即返回中间余数的二进制补数(bitwise +exclusive-or)操作与一个特定的值进行合并。这个特定的值一般是0,也就是说余数 被原封不动地返回给用户。另一个常用的值是"全1"值(译者注:即这个值的所有二进 制位都是1的),即返回中间余数的二进制补数(bitwise
complement)。</div> <dl> @@ -202,7 +199,7 @@ </dl><div style="margin-left: 40px;">消息的各个位通常以字节为单位提供给 CRC 运 算,字节的最高几位被当作是被除数的高位。一些 -CRCs 会在进行 CRC 运算之前“反射”各个位(相对于字节的正中间进行 “反射”,比如,字节的第一位和最后一位互换,以此类推)</div> +CRCs 会在进行 CRC 运算之前"反射"各个位(相对于字节的正中间进行"反射",比 如,字节的第一位和最后一位互换,以此类推)</div>
<dl> @@ -213,7 +210,7 @@ </dl>-<div style="margin-left: 40px;">有些 CRCs 会返回中间余数的“反射 ”(在进行最终 XOR +<div style="margin-left: 40px;">有些 CRCs 会返回中间余数的"反射"(在进行最 终 XOR
操作<i>之前</i>进行)而非余数本身。</div> <h2><a name="crc_basic"></a>理论 CRC 机</h2> @@ -276,8 +273,8 @@<p><code>get_interim_remainder 方法返回 CRC 余数的初始状态值。它代表未反射 过的最后一次除法运算的余数。保存中间余数</code> -、其他 CRC 参数和字节流的当前处理位置就可以“冻结” 一个CRC 运算 过程。使用旧 CRC 机的大部分参数来构造一个新的 CRC -机并使用“冻结”的余数作为新 CRC 机的中间余数,就可以“解冻 ”这个过程,并正常进行后继运算了。快速 CRC +、其他 CRC 参数和字节流的当前处理位置就可以"冻结" 一个CRC 运算过程。使用旧 CRC 机的大部分参数来构造一个新的 CRC +机并使用"冻结"的余数作为新 CRC 机的中间余数,就可以"解冻"这个过程,并正常进 行后继运算了。快速 CRC 机为此目的实现了一个只接收一个参数(中间余数)的特殊的构造函数(取代了 CRC 余数的初始值)。</p>
@@ -516,17 +513,17 @@-<p>这些函数在 CRC 数据直接跟在消息数据之后的情况下有用。首先,设置 CRC 所在 的几个字节为 0。然后对“扩张后的(augmented)”消息(附加了 CRC +<p>这些函数在 CRC 数据直接跟在消息数据之后的情况下有用。首先,设置 CRC 所在 的几个字节为 0。然后对"扩张后的(augmented)"消息(附加了 CRC
的消息数据)使用 <code>augmented_crc</code> 并把结果赋值给-CRC。在接收方校验收到的数据时,要么对“未扩张的 (unaugmented)”消息使用 -<code>augmented_crc(当然,使用和发送时一样的参数)并检查结果是否和 CRC 相 等;要么对“扩张的”</code>消息使用
+CRC。在接收方校验收到的数据时,要么对"未扩张的(unaugmented)"消息使用+<code>augmented_crc(当然,使用和发送时一样的参数)并检查结果是否和 CRC 相 等;要么对"扩张的"</code>消息使用 <code>augmented_crc</code> 并检查结果是否为 0。注意,CRC 必须保存在最重要的 字节里(大尾)。</p>
<p>CRC 数据中的中断可以这样处理:<code>把前一个数据块的</code> <code>augmented_crc</code> <code>结果作为</code> <var>initial_remainder</var> 来对下一个数据块调用 <code> -augmented_crc。记住,实际的 CRC 只能在提供“扩张的 ”</code><code>数据之后才能确定。原因是这个方法在其最底层使用已 2 +augmented_crc。记住,实际的 CRC 只能在提供"扩张的"</code><code>数据之后才能 确定。原因是这个方法在其最底层使用已 2
为模的多项式除法,且最终 XOR 和反射都不能使用。</code></p> @@ -581,7 +578,7 @@<p>这里有四种 CRC 类型,代表了一些常用的 CRC 算法。比 如,<code>boost::crc_32_type 可以用来实现 PKZip -标准。注意,从一般意义上讲,这个库注重的是 CRC 的实现而非“良好的 ” CRC 参数的选择。</code></p> +标准。注意,从一般意义上讲,这个库注重的是 CRC 的实现而非"良好的" CRC 参数 的选择。</code></p>
@@ -621,8 +618,8 @@ <td><code>crc_ccitt_type</code></td> - <td>designated by CCITT (Comité Consultatif International - Télégraphique et Téléphonique)</td> + <td>designated by CCITT (Comité Consultatif International + Télégraphique et Téléphonique)</td> </tr> @@ -670,7 +667,7 @@ <li>CRC 头文件本身: <cite><a href="../../boost/crc.hpp">crc.hpp</a></cite> </li> - <li>测试代码: <cite><a href="crc_test.cpp">crc_test.cpp</a></cite>+ <li>测试代码: <cite><a href="test/crc_test.cpp">crc_test.cpp</a></cite>
</li> <li>示例代码: <cite><a href="crc_example.cpp">crc_example.cpp</a></cite> @@ -698,7 +695,7 @@ Than Done</a>, a less-confusing guide to implementing CRC algorithms. (Originally published as "Slow and SteadyNever Lost the Race" in the January 2000 issue of <cite><a href="http://www.embedded.com/";>Embedded Systems
- Programming</a></cite>, pages 37–46.) + Programming</a></cite>, pages 37-46.) </dd> @@ -707,7 +704,7 @@ <dd>Started the library and contributed the theoretical and optimal CRC computation class templates and the CRC computing function- template. Contributed <cite><a href="crc_test.cpp">crc_test.cpp</a></cite> and <cite><a href="crc_example.cpp">crc_example.cpp</a></cite>. + template. Contributed <cite><a href="test/crc_test.cpp">crc_test.cpp</a></cite> and <cite><a href="crc_example.cpp">crc_example.cpp</a></cite>.
</dd> @@ -800,5 +797,4 @@ -</body> -</html> +</body></html> =======================================--- /trunk/libs/exception/doc/current_exception.html Sun Jun 14 23:33:46 2009 +++ /trunk/libs/exception/doc/current_exception.html Fri Sep 4 04:09:20 2009
@@ -1,18 +1,15 @@ -<!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>current_exception</title> - <link href='reno.css' type='text/css' rel='stylesheet'/> -</head>+<!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>current_exception</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">-<a href="http://www.boost.org";><img style="border:0" src="http://www.boost.org/boost.png"; alt="Boost" width="277" height="86"/></a> +<a href="http://www.boost.org";><img style="border: 0pt none ;" src="http://www.boost.org/boost.png"; alt="Boost" height="86" width="277" /></a>
</div> <h1>Boost Exception</h1> </div> @@ -21,11 +18,8 @@<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>current_exception</h3>
</div>-<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="exception_cloning_hpp.html">boost/exception_ptr.hpp</a></span>></p>
-<pre>namespace -boost - {-<span class="RenoIncludeSPAN"> <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span> <span class="RenoLink">current_exception</span>();</span> +<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="exception_cloning_hpp.html">boost/exception_ptr.hpp</a></span>></p> +<pre>namespace<br />boost<br /> {<br /><span class="RenoIncludeSPAN"> <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span> <span class="RenoLink">current_exception</span>();</span>
}</pre> </div><h4>要求:</h4><p>在catch块的外部不能在调用函数 <span class="RenoLink">current_exception</span>.</p>
@@ -38,25 +32,22 @@ <p>没有异常.</p> <h4>注意:</h4><div><ul><li> 连续两次的调用函数 <span class="RenoLink"><a href="current_exception.html">current_exception</a></span>
- ,并不保证得到的总是同一的异常对象.</li>-<li> 在需要抛出当前要处理的异常的时候,除非调用了函数<span class="RenoLink"><a href="enable_current_exception.html">enable_current_exception</a></span>, - 否则函数 <span class="RenoLink"><a href="current_exception.html">current_exception</a></span> - 的实现可能需要编译器的支持. 如果没有调用函数 <span class="RenoLink"><a href="enable_current_exception.html">enable_current_exception</a></span> , - 并且编译器没有提供必要的支持,那么函数 <span class="RenoLink"><a href="current_exception.html">current_exception</a></span> - 可能返回一个指向<span class="RenoLink"><a href="unknown_exception.html">unknown_exception</a></span>类型的异常对象指 针. - 在这种情况下, 如果初始的异常对象是从 boost::<span class="RenoLink"><a href="exception.html">exception</a></span>继承而来, - 那么通过boost::<span class="RenoLink"><a href="exception.html">exception</a></span> 的copy构造函数, <span class="RenoLink"><a href="unknown_exception.html">unknown_exception</a></span>
- 类型的子对象就会被构造出来.</li>+ ,并不保证得到的总是同一的异常对象.</li><li><span class="RenoLink">current_exception</span> 的正确实现可能需要编译器的支持,除 非在当前被处理的异常对象传递给 throw 的时候使用了 <span class="RenoLink"><a href="enable_current_exception.html">enable_current_exception</a></span>。 当 <span class="RenoLink">current_exception</span> 不能正确复制 current exception 对象时,它将返回一个 <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span>, 指向一个类型尽可能接近于 原有异常类型的对象,<span class="RenoLink"><a href="unknown_exception.html">unknown_exception</a></span> 被作为最终可用的 类型。所有这些类型均派生自 boost::<span class="RenoLink"><a href="exception.html">exception</a></span>,且:
+<div>+<ul><li>如果原有异常对象派生自 boost::<span class="RenoLink"><a href="exception.html">exception</a></span>,则该对象的 boost::<span class="RenoLink"><a href="exception.html">exception</a></span> 子对象被引向 所返回的 <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span>,由 +boost::<span class="RenoLink"><a href="exception.html">exception</a></span> 复制构造函数来初始化; +</li><li>如果可能,该异常将包含原有异常对象的 std::type_info,可通过 <span class="RenoLink"><a href="get_error_info.html">get_error_info</a></span><<span class="RenoLink"><a href="original_exception_type.html">original_exception_type</a></span>> 访问。
+</li></ul></div></li> </ul></div> -</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +</div><div class="RenoAutoDIV"><div class="RenoHR"><hr /></div> <h3>参见:</h3>-<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="exception_cloning_hpp.html">boost/exception_ptr.hpp<br/> -</a><a href="copy_exception.html">copy_exception<br/> -</a><a href="enable_current_exception.html">enable_current_exception<br/> -</a><a href="exception_ptr.html">exception_ptr<br/>-</a><a href="frequently_asked_questions.html">Frequently Asked Questions<br/>
-</a><a href="unknown_exception.html">unknown_exception<br/>+<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br />
+</a><a href="boost_exception_ptr_hpp.html">boost/exception_ptr.hpp<br /> +</a><a href="copy_exception.html">copy_exception<br /> +</a><a href="enable_current_exception.html">enable_current_exception<br /> +</a><a href="exception_ptr.html">exception_ptr<br />+</a><a href="frequently_asked_questions.html">Frequently Asked Questions<br /> +</a><a href="original_exception_type.html">original_exception_type</a><br /><a href="unknown_exception.html">unknown_exception<br />
</a></div> </div> <!-- Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. --> @@ -64,16 +55,15 @@<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<div id="footer"> <p> </p> -<hr/> +<hr /> <p>-<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> -<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> -<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> -Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright © 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small> +<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br /> +Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright (c) 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small>
</p> </div> </div> </div> </div> -</body> -</html> +</body></html> =======================================--- /trunk/libs/exception/doc/current_exception_diagnostic_information.html Sun Jun 14 23:33:46 2009 +++ /trunk/libs/exception/doc/current_exception_diagnostic_information.html Fri Sep 4 04:09:20 2009
@@ -1,18 +1,16 @@ -<!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>current_exception_diagnostic_information</title> - <link href='reno.css' type='text/css' rel='stylesheet'/> -</head>+<!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>current_exception_diagnostic_information</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">-<a href="http://www.boost.org";><img style="border:0" src="http://www.boost.org/boost.png"; alt="Boost" width="277" height="86"/></a> +<a href="http://www.boost.org";><img style="border: 0pt none ;" src="http://www.boost.org/boost.png"; alt="Boost" height="86" width="277" /></a>
</div> <h1>Boost Exception</h1> </div> @@ -21,40 +19,19 @@<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>current_exception_diagnostic_information</h3>
</div>-<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="exception_diagnostic_information_hpp.html">boost/exception/diagnostic_information.hpp</a></span>><span class="RenoBR"> </span><br/></p>
-<pre>namespace -boost - {-<span class="RenoIncludeSPAN"> std::string <span class="RenoLink">current_exception_diagnostic_information</span>();</span> +<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_exception_diagnostic_information_hpp.html">boost/exception/diagnostic_information.hpp</a></span>><span class="RenoBR"> </span><br /></p> +<pre>namespace<br />boost<br /> {<br /><span class="RenoIncludeSPAN"> std::string <span class="RenoLink">current_exception_diagnostic_information</span>();</span>
}</pre> </div><h4>要求:</h4> <p>这个函数不能在catch块的外部调用.</p> <h4>返回值:</h4><p>如果当前的异常对象能够转化为 boost::<span class="RenoLink"><a href="exception.html">exception</a></span> 或者 std::exception 类型, 这个函 数的返回信息和函数 <span class="RenoLink"><a href="diagnostic_information.html">diagnostic_information</a></span> 对当前 异常对象的返回信息时一致的. 否则, 返回一个不确定的非空字符串.</p> <p>调用函数 <span class="RenoLink">current_exception_diagnostic_information</span> 的典型情况 是在顶端函数输出未处理的异常的调试信息:</p>
-<pre>int -main() - { - try - { - run_program(); - } - catch( - error & e ) - { - //handle error - } - catch( - ...) - {- std::cerr << "Unhandled exception!" << std::endl << - boost::<span class="RenoLink">current_exception_diagnostic_information</span>();
- } - }</pre> -</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>+<pre>int<br />main()<br /> {<br /> try<br /> {<br /> run_program();<br /> }<br /> catch(<br /> error & e )<br /> {<br /> //handle error<br /> }<br /> catch(<br /> ...)<br /> {<br /> std::cerr << "Unhandled exception!" << std::endl <<<br /> boost::<span class="RenoLink">current_exception_diagnostic_information</span>();<br /> }<br /> }</pre>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr /></div> <h3>参见:</h3>-<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/> -</a><a href="exception_diagnostic_information_hpp.html">boost/exception/diagnostic_information.hpp<br/> +<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br /> +</a><a href="boost_exception_diagnostic_information_hpp.html">boost/exception/diagnostic_information.hpp<br /></a><a href="diagnostic_information.html">diagnostic_information<br /></a><a href="exception_diagnostic_information_hpp.html"><br />
</a></div> </div> <!-- Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. --> @@ -62,16 +39,15 @@<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<div id="footer"> <p> </p> -<hr/> +<hr /> <p>-<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> -<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> -<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> -Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright © 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small> +<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br /> +Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright (c) 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small>
</p> </div> </div> </div> </div> -</body> -</html> +</body></html> =======================================--- /trunk/libs/exception/doc/diagnostic_information.html Sun Jun 14 23:33:46 2009 +++ /trunk/libs/exception/doc/diagnostic_information.html Fri Sep 4 04:09:20 2009
@@ -1,18 +1,16 @@ -<!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>diagnostic_information</title> - <link href='reno.css' type='text/css' rel='stylesheet'/> -</head>+<!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>diagnostic_information</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">-<a href="http://www.boost.org";><img style="border:0" src="http://www.boost.org/boost.png"; alt="Boost" width="277" height="86"/></a> +<a href="http://www.boost.org";><img style="border: 0pt none ;" src="http://www.boost.org/boost.png"; alt="Boost" height="86" width="277" /></a>
</div> <h1>Boost Exception</h1> </div> @@ -21,15 +19,10 @@<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>diagnostic_information</h3>
</div>-<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="exception_diagnostic_information_hpp.html">boost/exception/diagnostic_information.hpp</a></span>><span class="RenoBR"> </span><br/></p>
-<pre>namespace -boost - { -<span class="RenoIncludeSPAN"> template <class E>- std::string <span class="RenoLink">diagnostic_information</span>( E const & e );</span>
- }</pre>+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_exception_diagnostic_information_hpp.html">boost/exception/diagnostic_information.hpp</a></span>><span class="RenoBR"> </span><br /></p> +<pre>namespace<br />boost<br /> {<br /><span class="RenoIncludeSPAN"> template <class E><br /> std::string <span class="RenoLink">diagnostic_information</span>( E const & e );<br /> <br /> std::string <span class="RenoLink">diagnostic_information</span>( <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span> const & p );</span><br /> }</pre>
</div><h4>返回值:</h4> -<p>一个字符串数值, 包含了实现端指定的,关于传入异常对象的各种调试信息:</p> +<p>一个字符串数值, 包含了实现端指定的,关于传入对象的各种调试信息:</p><div><ul><li>如果 E 可以被静态的转换为 boost::<span class="RenoLink"><a href="exception.html">exception</a></span> 类型, 返回值包含了通过<span class="RenoLink"><a href="exception_operator_shl.html">operator<<</a></span>存贮在 boost::<span class="RenoLink"><a href="exception.html">exception</a></span>对象中所有<span class="RenoLink"><a href="error_info.html">error_info</a></span>类型的对象信 息, 同时还包含异常对象的调试信息. 如果 e 是 std::exception 类型, 返回值还包 含 what() 信息.</li> <li>否则, 如果 E 能够静态转换为 std::exception:<div><ul><li>如果 e 可以动态 转换为 boost::exception, 返回值和E能够静态转换为 boost::<span class="RenoLink"><a href="exception.html">exception</a></span>类型的返回值是 一样的;</li>
<li>否则,返回值包含 what() 信息.</li> @@ -42,7 +35,7 @@<li>执行函数 to_string(x.<span class="RenoLink"><a href="error_info_value.html">value</a></span>()) (期望返回值能够转换为 std::string 类型.)</li> <li>执行函数 s << x.<span class="RenoLink"><a href="error_info_value.html">value</a></span>(), s 是 std::ostringstream 类 型的对象.</li>
</ol></div>-<p>第一个成功绑定的函数会在函数 <span class="RenoLink">diagnostic_information</span> 被调用的是偶执行; 如果三个重 载决议都没有成功, 那么系统就不能成功转换 <span class="RenoLink"><a href="error_info.html">error_info</a></span> 对象为字符串信息, 那么 <i> 一个 未定义的存根字符串会被使用, 不会产生任何的编译错误.</i></p> +<p>第一个成功绑定的函数会在函数 <span class="RenoLink">diagnostic_information</span> 被调用的是偶执行; 如果三个重 载决议都没有成功, 那么系统就不能成功转换 <span class="RenoLink"><a href="error_info.html">error_info</a></span> 对象为字符串信息, 那么 <i> 一个 未定义的存根字符串会被使用, 不会产生任何的编译错误.</i></p><p><span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span> 针对 <span class="RenoLink">diagnostic_information</span> 的重载相当 于:</p><pre>if( p )<br /> try<br /> {<br /> <span class="RenoLink"><a href="rethrow_exception.html">rethrow_exception</a></span>(p);<br /> }<br /> catch(...)<br /> {<br /> return <span class="RenoLink"><a href="current_exception_diagnostic_information.html">current_exception_diagnostic_information</a></span>();<br /> }<br />else return <unspecified-string-value>;</pre>
<h4>注意:</h4> <div><ul><li>字符串的个格式是未定义的.</li> <li>返回的字符串并 <i>不是</i> 用户友好的.</li> @@ -50,24 +43,18 @@ </ul></div> <div class="RenoIncludeDIV"><h4>实例:</h4><p>以下是函数 <span class="RenoLink">diagnostic_information</span> 可能产生 的输出之一, 这是在文件 <i>libs/exception/example/example_io.cpp:</i>中使用的 </p> -<pre>example_io.cpp(83): Throw in function class boost::shared_ptr<struct _iobuf> __cdecl my_fopen(const char *,const char *) -Dynamic exception type: class boost::exception_detail::clone_impl<class fopen_error>
-std::exception::what: example_io error -[struct tag_errno *] = 2, OS says "No such file or directory" -[struct tag_file_name *] = tmp1.txt -[struct tag_function *] = fopen -[struct tag_open_mode *] = rb</pre> -</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>+<pre>example_io.cpp(70): Throw in function class boost::shared_ptr<struct _iobuf> __cdecl my_fopen(const char *,const char *)<br />Dynamic exception type: class boost::exception_detail::clone_impl<struct fopen_error><br />std::exception::what: example_io error<br />[struct boost::<span class="RenoLink"><a href="errinfo_api_function.html">errinfo_api_function</a></span>_ *] = fopen<br />[struct boost::<span class="RenoLink"><a href="errinfo_errno.html">errinfo_errno</a></span>_ *] = 2, "No such file or directory"<br />[struct boost::<span class="RenoLink"><a href="errinfo_file_name.html">errinfo_file_name</a></span>_ *] = tmp1.txt<br />[struct boost::<span class="RenoLink"><a href="errinfo_file_open_mode.html">errinfo_file_open_mode</a></span>_ *] = rb</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr /></div> <h3>参见:</h3>-<div class="RenoPageList"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION<br/>
-</a><a href="boost-exception.html">Boost Exception<br/>-</a><a href="exception_diagnostic_information_hpp.html">boost/exception/diagnostic_information.hpp<br/>
-</a><a href="configuration_macros.html">Configuration Macros<br/>-</a><a href="current_exception_diagnostic_information.html">current_exception_diagnostic_information<br/> -</a><a href="tutorial_diagnostic_information.html">Diagnostic Information<br/> -</a><a href="frequently_asked_questions.html">Frequently Asked Questions<br/>
-</a><a href="motivation.html">Motivation<br/> -</a><a href="throw_exception.html">throw_exception<br/>+<div class="RenoPageList"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION<br />
+</a><a href="boost-exception.html">Boost Exception<br />+</a><a href="boost_exception_diagnostic_information_hpp.html">boost/exception/diagnostic_information.hpp<br />
+</a><a href="configuration_macros.html">Configuration Macros<br />+</a><a href="current_exception_diagnostic_information.html">current_exception_diagnostic_information<br /> +</a><a href="tutorial_diagnostic_information.html">Diagnostic Information<br /> +</a><a href="frequently_asked_questions.html">Frequently Asked Questions<br />
+</a><a href="motivation.html">Motivation<br /> +</a><a href="throw_exception.html">throw_exception<br /> </a></div> </div> <!-- Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. --> @@ -75,16 +62,15 @@<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<div id="footer"> <p> </p> -<hr/> +<hr /> <p>-<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> -<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> -<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> -Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright © 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small> +<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br /> +Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright (c) 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small>
</p> </div> </div> </div> </div> -</body> -</html> +</body></html> =======================================--- /trunk/libs/exception/doc/enable_current_exception.html Sun Jun 14 23:33:46 2009 +++ /trunk/libs/exception/doc/enable_current_exception.html Fri Sep 4 04:09:20 2009
@@ -1,18 +1,16 @@ -<!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>enable_current_exception</title> - <link href='reno.css' type='text/css' rel='stylesheet'/> -</head>+<!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>enable_current_exception</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">-<a href="http://www.boost.org";><img style="border:0" src="http://www.boost.org/boost.png"; alt="Boost" width="277" height="86"/></a> +<a href="http://www.boost.org";><img style="border: 0pt none ;" src="http://www.boost.org/boost.png"; alt="Boost" height="86" width="277" /></a>
</div> <h1>Boost Exception</h1> </div> @@ -21,40 +19,30 @@<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>enable_current_exception</h3>
</div>-<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="exception_enable_current_exception_hpp.html">boost/exception/enable_current_exception.hpp</a></span>></p>
-<pre>namespace -boost - { -<span class="RenoIncludeSPAN"> template <class T>- ---unspecified--- <span class="RenoLink">enable_current_exception</span>( T const & e );</span> +<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_exception_enable_current_exception_hpp.html">boost/exception/enable_current_exception.hpp</a></span>></p> +<pre>namespace<br />boost<br /> {<br /><span class="RenoIncludeSPAN"> template <class T><br /> ---unspecified--- <span class="RenoLink">enable_current_exception</span>( T const & e );</span>
}</pre> </div><h4>要求:</h4> -<p>T 的copy构造函数不能抛出异常,并且是可访问.</p> +<ul><li>T 的复制构造函数不能抛出异常,并且是可访问。+</li><li>如果 T 有任何虚拟基类,则那些类型必须具有一个可访问的缺省构造函 数。<br /></li></ul>
<h4>返回值:</h4><p>是从T继承的不确定类型. 也就是说, 可以通过语句 catch(T &) 截获异 常.</p>
<h4>描述:</h4><p>这个函数可以直接使用在throw语句中,从而使得<span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span>支持 Boost 异常. 例如:</p>
-<pre>class -my_exception: - public std::exception - { - }; - -....-throw boost::<span class="RenoLink">enable_current_exception</span>(my_exception());</pre> +<pre>class<br />my_exception:<br /> public std::exception<br /> {<br /> };<br /><br />....<br />throw boost::<span class="RenoLink">enable_current_exception</span>(my_exception());</pre> <p>除非在抛出异常的语句中调用了 <span class="RenoLink"><a href="enable_current_exception.html">enable_current_exception</a></span> , 否则异常对象的拷贝会使得函数 <span class="RenoLink"><a href="current_exception.html">current_exception</a></span> 的返回值指向一个 <span class="RenoLink"><a href="unknown_exception.html">unknown_exception</a></span>类型的对象. 更详细的信息参见 <span class="RenoLink"><a href="current_exception.html">current_exception</a></span> .</p>
<h4>注意:</h4><p>相对于直接使用throw关键字, 更好的方式是调用 boost::<span class="RenoLink"><a href="throw_exception.html">throw_exception</a></span>. 这个函数确保抛出的异常对象继承自 boost::<span class="RenoLink"><a href="exception.html">exception</a></span> , 从而也支持 <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span> 的功 能.</p>
-</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +</div><div class="RenoAutoDIV"><div class="RenoHR"><hr /></div> <h3>参见:</h3>-<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/> -</a><a href="exception_enable_current_exception_hpp.html">boost/exception/enable_current_exception.hpp<br/>
-</a><a href="configuration_macros.html">Configuration Macros<br/> -</a><a href="copy_exception.html">copy_exception<br/> -</a><a href="current_exception.html">current_exception<br/>-</a><a href="frequently_asked_questions.html">Frequently Asked Questions<br/> -</a><a href="tutorial_exception_ptr.html">Transporting of Exceptions Between Threads<br/>
-</a><a href="throw_exception.html">throw_exception<br/>+<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br /> +</a><a href="boost_exception_enable_current_exception_hpp.html">boost/exception/enable_current_exception.hpp<br />
+</a><a href="configuration_macros.html">Configuration Macros<br /> +</a><a href="copy_exception.html">copy_exception<br /> +</a><a href="current_exception.html">current_exception<br />+</a><a href="frequently_asked_questions.html">Frequently Asked Questions<br /> +</a><a href="tutorial_exception_ptr.html">Transporting of Exceptions Between Threads<br />
+</a><a href="throw_exception.html">throw_exception<br /> </a></div> </div> <!-- Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. --> @@ -62,16 +50,15 @@<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<div id="footer"> <p> </p> -<hr/> +<hr /> <p>-<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> -<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> -<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> -Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright © 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small> +<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br /> +Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright (c) 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small>
</p> </div> </div> </div> </div> -</body> -</html> +</body></html> =======================================--- /trunk/libs/exception/doc/enable_error_info.html Sun Jun 14 23:33:46 2009 +++ /trunk/libs/exception/doc/enable_error_info.html Fri Sep 4 04:09:20 2009
@@ -1,18 +1,16 @@ -<!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>enable_error_info</title> - <link href='reno.css' type='text/css' rel='stylesheet'/> -</head>+<!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>enable_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">-<a href="http://www.boost.org";><img style="border:0" src="http://www.boost.org/boost.png"; alt="Boost" width="277" height="86"/></a> +<a href="http://www.boost.org";><img style="border: 0pt none ;" src="http://www.boost.org/boost.png"; alt="Boost" height="86" width="277" /></a>
</div> <h1>Boost Exception</h1> </div> @@ -21,12 +19,8 @@<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>enable_error_info</h3>
</div>-<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="exception_enable_error_info_hpp.html">boost/exception/enable_error_info.hpp</a></span>></p>
-<pre>namespace -boost - { -<span class="RenoIncludeSPAN"> template <class T>- ---unspecified--- <span class="RenoLink">enable_error_info</span>( T const & x );</span> +<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_exception_enable_error_info_hpp.html">boost/exception/enable_error_info.hpp</a></span>></p> +<pre>namespace<br />boost<br /> {<br /><span class="RenoIncludeSPAN"> template <class T><br /> ---unspecified--- <span class="RenoLink">enable_error_info</span>( T const & x );</span>
}</pre> </div><h4>要求:</h4> <p>T 的copy构造函数不能抛出异常,并且是可访问.参见(15.5.1).</p> @@ -38,15 +32,15 @@ </ul></div> <h4>异常抛出:</h4> <p>没有异常.</p> -</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> +</div><div class="RenoAutoDIV"><div class="RenoHR"><hr /></div> <h3>参见:</h3>-<div class="RenoPageList"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION<br/>
-</a><a href="boost-exception.html">Boost Exception<br/>-</a><a href="exception_enable_error_info_hpp.html">boost/exception/enable_error_info.hpp<br/>
-</a><a href="configuration_macros.html">Configuration Macros<br/>-</a><a href="frequently_asked_questions.html">Frequently Asked Questions<br/> -</a><a href="tutorial_enable_error_info.html">Integrating Boost Exception in Existing Exception Class Hierarchies<br/>
-</a><a href="throw_exception.html">throw_exception<br/>+<div class="RenoPageList"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION<br />
+</a><a href="boost-exception.html">Boost Exception<br />+</a><a href="boost_exception_enable_error_info_hpp.html">boost/exception/enable_error_info.hpp<br />
+</a><a href="configuration_macros.html">Configuration Macros<br />+</a><a href="frequently_asked_questions.html">Frequently Asked Questions<br /> +</a><a href="tutorial_enable_error_info.html">Integrating Boost Exception in Existing Exception Class Hierarchies<br />
+</a><a href="throw_exception.html">throw_exception<br /> </a></div> </div> <!-- Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. --> @@ -54,16 +48,15 @@<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<div id="footer"> <p> </p> -<hr/> +<hr /> <p>-<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> -<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> -<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> -Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright © 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small> +<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> +<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> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br /> +Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.<p><i>Copyright (c) 2009 <a href="http://zadecn.spaces.live.com/";>zade</a></i></p>.</small>
</p> </div> </div> </div> </div> -</body> -</html> +</body></html> ======================================= ***Additional files exist in this changeset.***