1 // Copyright David Abrahams 2005. Distributed under the Boost
2 // Software License, Version 1.0. (See accompanying
3 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
4 #ifndef BOOST_PARAMETER_AUX_RESULT_OF0_DWA2005511_HPP
5 # define BOOST_PARAMETER_AUX_RESULT_OF0_DWA2005511_HPP
6 
7 # include <boost/utility/result_of.hpp>
8 
9 // A metafunction returning the result of invoking a nullary function
10 // object of the given type.
11 
12 #ifndef BOOST_NO_RESULT_OF
13 
14 # include <boost/utility/result_of.hpp>
15 namespace boost { namespace parameter { namespace aux {
16 template <class F>
17 struct result_of0 : result_of<F()>
18 {};
19 
20 }}} // namespace boost::parameter::aux_
21 
22 #else
23 
24 namespace boost { namespace parameter { namespace aux {
25 template <class F>
26 struct result_of0
27 {
28     typedef typename F::result_type type;
29 };
30 
31 }}} // namespace boost::parameter::aux_
32 
33 #endif
34 
35 
36 #endif // BOOST_PARAMETER_AUX_RESULT_OF0_DWA2005511_HPP
37