Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:30:47

0001 //Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
0002 
0003 //Distributed under the Boost Software License, Version 1.0. (See accompanying
0004 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0005 
0006 #ifndef BOOST_EXCEPTION_63EE924290FB11DC87BB856555D89593
0007 #define BOOST_EXCEPTION_63EE924290FB11DC87BB856555D89593
0008 
0009 #include <boost/exception/info.hpp>
0010 #include <boost/tuple/tuple.hpp>
0011 
0012 #ifndef BOOST_EXCEPTION_ENABLE_WARNINGS
0013 #if __GNUC__*100+__GNUC_MINOR__>301
0014 #pragma GCC system_header
0015 #endif
0016 #ifdef __clang__
0017 #pragma clang system_header
0018 #endif
0019 #ifdef _MSC_VER
0020 #pragma warning(push,1)
0021 #endif
0022 #endif
0023 
0024 namespace
0025 boost
0026     {
0027     template <
0028         class E >
0029     inline
0030     E const &
0031     operator<<(
0032         E const & x,
0033         tuple< > const & v )
0034         {
0035         return x;
0036         }
0037 
0038     template <
0039         class E,
0040         class Tag1,class T1 >
0041     inline
0042     E const &
0043     operator<<(
0044         E const & x,
0045         tuple<
0046             error_info<Tag1,T1> > const & v )
0047         {
0048         return x << v.template get<0>();
0049         }
0050 
0051     template <
0052         class E,
0053         class Tag1,class T1,
0054         class Tag2,class T2 >
0055     inline
0056     E const &
0057     operator<<(
0058         E const & x,
0059         tuple<
0060             error_info<Tag1,T1>,
0061             error_info<Tag2,T2> > const & v )
0062         {
0063         return x << v.template get<0>() << v.template get<1>();
0064         }
0065 
0066     template <
0067         class E,
0068         class Tag1,class T1,
0069         class Tag2,class T2,
0070         class Tag3,class T3 >
0071     inline
0072     E const &
0073     operator<<(
0074         E const & x,
0075         tuple<
0076             error_info<Tag1,T1>,
0077             error_info<Tag2,T2>,
0078             error_info<Tag3,T3> > const & v )
0079         {
0080         return x << v.template get<0>() << v.template get<1>() << v.template get<2>();
0081         }
0082 
0083     template <
0084         class E,
0085         class Tag1,class T1,
0086         class Tag2,class T2,
0087         class Tag3,class T3,
0088         class Tag4,class T4 >
0089     inline
0090     E const &
0091     operator<<(
0092         E const & x,
0093         tuple<
0094             error_info<Tag1,T1>,
0095             error_info<Tag2,T2>,
0096             error_info<Tag3,T3>,
0097             error_info<Tag4,T4> > const & v )
0098         {
0099         return x << v.template get<0>() << v.template get<1>() << v.template get<2>() << v.template get<3>();
0100         }
0101     }
0102 
0103 #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
0104 #pragma warning(pop)
0105 #endif
0106 #endif