Chris@16
|
1 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
2 // foreach.hpp header file
|
Chris@16
|
3 //
|
Chris@16
|
4 // Copyright 2010 Eric Niebler.
|
Chris@16
|
5 // Distributed under the Boost Software License, Version 1.0. (See
|
Chris@16
|
6 // accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
7 // http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
8 // See http://www.boost.org/libs/foreach for documentation
|
Chris@16
|
9 //
|
Chris@16
|
10 // Credits:
|
Chris@16
|
11 // Kazutoshi Satoda: for suggesting the need for a _fwd header for foreach's
|
Chris@16
|
12 // customization points.
|
Chris@16
|
13
|
Chris@16
|
14 #ifndef BOOST_FOREACH_FWD_HPP
|
Chris@16
|
15 #define BOOST_FOREACH_FWD_HPP
|
Chris@16
|
16
|
Chris@16
|
17 // This must be at global scope, hence the uglified name
|
Chris@16
|
18 enum boost_foreach_argument_dependent_lookup_hack
|
Chris@16
|
19 {
|
Chris@16
|
20 boost_foreach_argument_dependent_lookup_hack_value
|
Chris@16
|
21 };
|
Chris@16
|
22
|
Chris@16
|
23 namespace boost
|
Chris@16
|
24 {
|
Chris@16
|
25
|
Chris@16
|
26 namespace foreach
|
Chris@16
|
27 {
|
Chris@16
|
28 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
29 // boost::foreach::tag
|
Chris@16
|
30 //
|
Chris@16
|
31 typedef boost_foreach_argument_dependent_lookup_hack tag;
|
Chris@16
|
32
|
Chris@16
|
33 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
34 // boost::foreach::is_lightweight_proxy
|
Chris@16
|
35 // Specialize this for user-defined collection types if they are inexpensive to copy.
|
Chris@16
|
36 // This tells BOOST_FOREACH it can avoid the rvalue/lvalue detection stuff.
|
Chris@16
|
37 template<typename T>
|
Chris@16
|
38 struct is_lightweight_proxy;
|
Chris@16
|
39
|
Chris@16
|
40 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
41 // boost::foreach::is_noncopyable
|
Chris@16
|
42 // Specialize this for user-defined collection types if they cannot be copied.
|
Chris@16
|
43 // This also tells BOOST_FOREACH to avoid the rvalue/lvalue detection stuff.
|
Chris@16
|
44 template<typename T>
|
Chris@16
|
45 struct is_noncopyable;
|
Chris@16
|
46
|
Chris@16
|
47 } // namespace foreach
|
Chris@16
|
48
|
Chris@16
|
49 } // namespace boost
|
Chris@16
|
50
|
Chris@16
|
51 #endif
|