/Src/Dependencies/Boost/boost/exception/info_tuple.hpp

http://hadesmem.googlecode.com/ · C++ Header · 76 lines · 66 code · 7 blank · 3 comment · 3 complexity · 6314edb46e3c882f51abfdd1138498d9 MD5 · raw file

  1. //Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
  2. //Distributed under the Boost Software License, Version 1.0. (See accompanying
  3. //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  4. #ifndef UUID_63EE924290FB11DC87BB856555D89593
  5. #define UUID_63EE924290FB11DC87BB856555D89593
  6. #if defined(__GNUC__) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
  7. #pragma GCC system_header
  8. #endif
  9. #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
  10. #pragma warning(push,1)
  11. #endif
  12. #include <boost/exception/info.hpp>
  13. #include <boost/tuple/tuple.hpp>
  14. namespace
  15. boost
  16. {
  17. template <
  18. class E,
  19. class Tag1,class T1,
  20. class Tag2,class T2 >
  21. inline
  22. E const &
  23. operator<<(
  24. E const & x,
  25. tuple<
  26. error_info<Tag1,T1>,
  27. error_info<Tag2,T2> > const & v )
  28. {
  29. return x << v.template get<0>() << v.template get<1>();
  30. }
  31. template <
  32. class E,
  33. class Tag1,class T1,
  34. class Tag2,class T2,
  35. class Tag3,class T3 >
  36. inline
  37. E const &
  38. operator<<(
  39. E const & x,
  40. tuple<
  41. error_info<Tag1,T1>,
  42. error_info<Tag2,T2>,
  43. error_info<Tag3,T3> > const & v )
  44. {
  45. return x << v.template get<0>() << v.template get<1>() << v.template get<2>();
  46. }
  47. template <
  48. class E,
  49. class Tag1,class T1,
  50. class Tag2,class T2,
  51. class Tag3,class T3,
  52. class Tag4,class T4 >
  53. inline
  54. E const &
  55. operator<<(
  56. E const & x,
  57. tuple<
  58. error_info<Tag1,T1>,
  59. error_info<Tag2,T2>,
  60. error_info<Tag3,T3>,
  61. error_info<Tag4,T4> > const & v )
  62. {
  63. return x << v.template get<0>() << v.template get<1>() << v.template get<2>() << v.template get<3>();
  64. }
  65. }
  66. #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
  67. #pragma warning(pop)
  68. #endif
  69. #endif