Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: // foreach.hpp header file Chris@16: // Chris@16: // Copyright 2010 Eric Niebler. Chris@16: // Distributed under the Boost Software License, Version 1.0. (See Chris@16: // accompanying file LICENSE_1_0.txt or copy at Chris@16: // http://www.boost.org/LICENSE_1_0.txt) Chris@16: // See http://www.boost.org/libs/foreach for documentation Chris@16: // Chris@16: // Credits: Chris@16: // Kazutoshi Satoda: for suggesting the need for a _fwd header for foreach's Chris@16: // customization points. Chris@16: Chris@16: #ifndef BOOST_FOREACH_FWD_HPP Chris@16: #define BOOST_FOREACH_FWD_HPP Chris@16: Chris@16: // This must be at global scope, hence the uglified name Chris@16: enum boost_foreach_argument_dependent_lookup_hack Chris@16: { Chris@16: boost_foreach_argument_dependent_lookup_hack_value Chris@16: }; Chris@16: Chris@16: namespace boost Chris@16: { Chris@16: Chris@16: namespace foreach Chris@16: { Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: // boost::foreach::tag Chris@16: // Chris@16: typedef boost_foreach_argument_dependent_lookup_hack tag; Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: // boost::foreach::is_lightweight_proxy Chris@16: // Specialize this for user-defined collection types if they are inexpensive to copy. Chris@16: // This tells BOOST_FOREACH it can avoid the rvalue/lvalue detection stuff. Chris@16: template Chris@16: struct is_lightweight_proxy; Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: // boost::foreach::is_noncopyable Chris@16: // Specialize this for user-defined collection types if they cannot be copied. Chris@16: // This also tells BOOST_FOREACH to avoid the rvalue/lvalue detection stuff. Chris@16: template Chris@16: struct is_noncopyable; Chris@16: Chris@16: } // namespace foreach Chris@16: Chris@16: } // namespace boost Chris@16: Chris@16: #endif