1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #ifndef BOOST_PROTO_TRANSFORM_LAZY_HPP_EAN_12_02_2007
- #define BOOST_PROTO_TRANSFORM_LAZY_HPP_EAN_12_02_2007
- #include <boost/preprocessor/iteration/iterate.hpp>
- #include <boost/preprocessor/repetition/enum_params.hpp>
- #include <boost/preprocessor/repetition/enum_trailing_params.hpp>
- #include <boost/proto/proto_fwd.hpp>
- #include <boost/proto/transform/make.hpp>
- #include <boost/proto/transform/call.hpp>
- #include <boost/proto/transform/impl.hpp>
- #include <boost/proto/transform/detail/pack.hpp>
- namespace boost { namespace proto
- {
-
-
-
-
-
-
-
-
- template<typename Object>
- struct lazy : transform<lazy<Object> >
- {
- template<typename Expr, typename State, typename Data>
- struct impl
- : call<
- typename make<Object>::template impl<Expr, State, Data>::result_type
- >::template impl<Expr, State, Data>
- {};
- };
-
- template<typename Fun>
- struct lazy<detail::msvc_fun_workaround<Fun> >
- : lazy<Fun>
- {};
- #include <boost/proto/transform/detail/lazy.hpp>
-
-
- template<typename Object>
- struct is_callable<lazy<Object> >
- : mpl::true_
- {};
- }}
- #endif
|