1 ///////////////////////////////////////////////////////////////////////////////
2 /// \file as_lvalue.hpp
3 /// Contains definition the as_lvalue() functions.
4 //
5 //  Copyright 2008 Eric Niebler. Distributed under the Boost
6 //  Software License, Version 1.0. (See accompanying file
7 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8 
9 #ifndef BOOST_PROTO_TRANSFORM_AS_LVALUE_HPP_EAN_12_27_2007
10 #define BOOST_PROTO_TRANSFORM_AS_LVALUE_HPP_EAN_12_27_2007
11 
12 #include <boost/proto/proto_fwd.hpp>
13 
14 #if defined(_MSC_VER)
15 # pragma warning(push)
16 # pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
17 #endif
18 
19 namespace boost { namespace proto
20 {
21     namespace detail
22     {
23         template<typename T>
24         BOOST_FORCEINLINE
as_lvalue(T & t)25         T &as_lvalue(T &t)
26         {
27             return t;
28         }
29 
30         template<typename T>
31         BOOST_FORCEINLINE
as_lvalue(T const & t)32         T const &as_lvalue(T const &t)
33         {
34             return t;
35         }
36     }
37 }}
38 
39 #if defined(_MSC_VER)
40 # pragma warning(pop)
41 #endif
42 
43 #endif
44