288c247331b54673967d888b5b767036f20c6a79
[platform/upstream/boost.git] / boost / fusion / sequence / io / in.hpp
1 /*=============================================================================
2     Copyright (c) 1999-2003 Jaakko Jarvi
3     Copyright (c) 1999-2003 Jeremiah Willcock
4     Copyright (c) 2001-2011 Joel de Guzman
5
6     Distributed under the Boost Software License, Version 1.0. (See accompanying
7     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8 ==============================================================================*/
9 #if !defined(BOOST_IN_05042005_0120)
10 #define BOOST_IN_05042005_0120
11
12 #include <boost/fusion/support/config.hpp>
13 #include <istream>
14 #include <boost/fusion/sequence/io/detail/in.hpp>
15 #include <boost/fusion/support/is_sequence.hpp>
16
17 namespace boost { namespace fusion
18 {
19     template <typename Sequence>
20     inline std::istream&
21     in(std::istream& is, Sequence& seq)
22     {
23         detail::read_sequence(is, seq);
24         return is;
25     }
26
27     namespace operators
28     {
29         template <typename Sequence>
30         inline typename
31             boost::enable_if<
32                fusion::traits::is_sequence<Sequence>
33               , std::istream&
34             >::type
35         operator>>(std::istream& is, Sequence& seq)
36         {
37             return fusion::in(is, seq);
38         }
39     }
40     using operators::operator>>;
41 }}
42
43 #endif