summaryrefslogtreecommitdiff
path: root/boost/fusion/support/detail/as_fusion_element.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/fusion/support/detail/as_fusion_element.hpp')
-rw-r--r--boost/fusion/support/detail/as_fusion_element.hpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/boost/fusion/support/detail/as_fusion_element.hpp b/boost/fusion/support/detail/as_fusion_element.hpp
index 628dca4d16..2af960eedf 100644
--- a/boost/fusion/support/detail/as_fusion_element.hpp
+++ b/boost/fusion/support/detail/as_fusion_element.hpp
@@ -11,6 +11,10 @@
#include <boost/fusion/support/config.hpp>
#include <boost/ref.hpp>
+#ifndef BOOST_NO_CXX11_HDR_FUNCTIONAL
+#include <functional>
+#endif
+
namespace boost { namespace fusion { namespace detail
{
template <typename T>
@@ -25,6 +29,14 @@ namespace boost { namespace fusion { namespace detail
typedef T& type;
};
+#ifndef BOOST_NO_CXX11_HDR_FUNCTIONAL
+ template <typename T>
+ struct as_fusion_element<std::reference_wrapper<T> >
+ {
+ typedef T& type;
+ };
+#endif
+
template <typename T, int N>
struct as_fusion_element<T[N]>
{