Chris@16
|
1 /*=============================================================================
|
Chris@16
|
2 Copyright (c) 2001-2011 Joel de Guzman
|
Chris@16
|
3
|
Chris@16
|
4 Distributed under the Boost Software License, Version 1.0. (See accompanying
|
Chris@16
|
5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
6 ==============================================================================*/
|
Chris@16
|
7 #if !defined(BOOST_FUSION_SUPPORT_UNUSED_20070305_1038)
|
Chris@16
|
8 #define BOOST_FUSION_SUPPORT_UNUSED_20070305_1038
|
Chris@16
|
9
|
Chris@101
|
10 #include <boost/fusion/support/config.hpp>
|
Chris@16
|
11 #include <iosfwd>
|
Chris@16
|
12
|
Chris@16
|
13 #include <boost/config.hpp>
|
Chris@16
|
14 #if defined(BOOST_MSVC)
|
Chris@16
|
15 # pragma warning(push)
|
Chris@16
|
16 # pragma warning(disable: 4522) // multiple assignment operators specified warning
|
Chris@16
|
17 #endif
|
Chris@16
|
18
|
Chris@16
|
19 #define BOOST_FUSION_UNUSED_HAS_IO
|
Chris@16
|
20
|
Chris@16
|
21 namespace boost { namespace fusion
|
Chris@16
|
22 {
|
Chris@16
|
23 struct unused_type
|
Chris@16
|
24 {
|
Chris@101
|
25 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
Chris@101
|
26 unused_type() BOOST_NOEXCEPT
|
Chris@16
|
27 {
|
Chris@16
|
28 }
|
Chris@16
|
29
|
Chris@16
|
30 template <typename T>
|
Chris@101
|
31 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
Chris@101
|
32 unused_type(T const&) BOOST_NOEXCEPT
|
Chris@16
|
33 {
|
Chris@16
|
34 }
|
Chris@16
|
35
|
Chris@16
|
36 template <typename T>
|
Chris@101
|
37 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
Chris@16
|
38 unused_type const&
|
Chris@101
|
39 operator=(T const&) const BOOST_NOEXCEPT
|
Chris@16
|
40 {
|
Chris@16
|
41 return *this;
|
Chris@16
|
42 }
|
Chris@16
|
43
|
Chris@16
|
44 template <typename T>
|
Chris@101
|
45 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
Chris@16
|
46 unused_type&
|
Chris@101
|
47 operator=(T const&) BOOST_NOEXCEPT
|
Chris@16
|
48 {
|
Chris@16
|
49 return *this;
|
Chris@16
|
50 }
|
Chris@16
|
51
|
Chris@101
|
52 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
Chris@16
|
53 unused_type const&
|
Chris@101
|
54 operator=(unused_type const&) const BOOST_NOEXCEPT
|
Chris@16
|
55 {
|
Chris@16
|
56 return *this;
|
Chris@16
|
57 }
|
Chris@16
|
58
|
Chris@101
|
59 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
Chris@16
|
60 unused_type&
|
Chris@101
|
61 operator=(unused_type const&) BOOST_NOEXCEPT
|
Chris@16
|
62 {
|
Chris@16
|
63 return *this;
|
Chris@16
|
64 }
|
Chris@16
|
65 };
|
Chris@16
|
66
|
Chris@101
|
67 BOOST_CONSTEXPR unused_type const unused = unused_type();
|
Chris@16
|
68
|
Chris@16
|
69 namespace detail
|
Chris@16
|
70 {
|
Chris@16
|
71 struct unused_only
|
Chris@16
|
72 {
|
Chris@101
|
73 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
Chris@101
|
74 unused_only(unused_type const&) BOOST_NOEXCEPT {}
|
Chris@16
|
75 };
|
Chris@16
|
76 }
|
Chris@16
|
77
|
Chris@101
|
78 BOOST_CONSTEXPR
|
Chris@101
|
79 inline std::ostream& operator<<(std::ostream& out, detail::unused_only const&) BOOST_NOEXCEPT
|
Chris@16
|
80 {
|
Chris@16
|
81 return out;
|
Chris@16
|
82 }
|
Chris@16
|
83
|
Chris@101
|
84 BOOST_CONSTEXPR
|
Chris@101
|
85 inline std::istream& operator>>(std::istream& in, unused_type&) BOOST_NOEXCEPT
|
Chris@16
|
86 {
|
Chris@16
|
87 return in;
|
Chris@16
|
88 }
|
Chris@16
|
89 }}
|
Chris@16
|
90
|
Chris@16
|
91 #if defined(BOOST_MSVC)
|
Chris@16
|
92 # pragma warning(pop)
|
Chris@16
|
93 #endif
|
Chris@16
|
94
|
Chris@16
|
95 #endif
|