File indexing completed on 2025-01-18 09:30:47
0001
0002
0003
0004
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