summaryrefslogtreecommitdiff
path: root/libs/fusion/test/functional/invoke_function_object.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/fusion/test/functional/invoke_function_object.cpp')
-rw-r--r--libs/fusion/test/functional/invoke_function_object.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/fusion/test/functional/invoke_function_object.cpp b/libs/fusion/test/functional/invoke_function_object.cpp
index d618a4955..7c75f06d1 100644
--- a/libs/fusion/test/functional/invoke_function_object.cpp
+++ b/libs/fusion/test/functional/invoke_function_object.cpp
@@ -30,6 +30,8 @@
#include <boost/fusion/iterator/advance.hpp>
#include <boost/fusion/algorithm/transformation/join.hpp>
+#include "../compile_time/sfinae_friendly.hpp"
+
namespace mpl = boost::mpl;
namespace fusion = boost::fusion;
@@ -82,6 +84,9 @@ struct fobj
int operator()(int i, object const &, object_nc &);
int operator()(int i, object const &, object_nc &) const;
};
+SFINAE_FRIENDLY_ASSERT((fusion::result_of::invoke_function_object<fobj, sfinae_friendly::v1>));
+SFINAE_FRIENDLY_ASSERT((fusion::result_of::invoke_function_object<fobj, sfinae_friendly::v2>));
+SFINAE_FRIENDLY_ASSERT((fusion::result_of::invoke_function_object<fobj, sfinae_friendly::v3>));
struct nullary_fobj
{
@@ -90,6 +95,9 @@ struct nullary_fobj
int operator()() { return 0; }
int operator()() const { return 1; }
};
+SFINAE_FRIENDLY_ASSERT((fusion::result_of::invoke_function_object<nullary_fobj, sfinae_friendly::v1>));
+SFINAE_FRIENDLY_ASSERT((fusion::result_of::invoke_function_object<nullary_fobj, sfinae_friendly::v2>));
+SFINAE_FRIENDLY_ASSERT((fusion::result_of::invoke_function_object<nullary_fobj, sfinae_friendly::v3>));
struct fobj_nc
: boost::noncopyable
@@ -107,6 +115,10 @@ struct fobj_nc
int operator()(int i) { return 14 + i; }
int operator()(int i) const { return 15 + i; }
};
+SFINAE_FRIENDLY_ASSERT((fusion::result_of::invoke_function_object<fobj_nc, sfinae_friendly::v0>));
+SFINAE_FRIENDLY_ASSERT((fusion::result_of::invoke_function_object<fobj_nc, sfinae_friendly::v1>));
+SFINAE_FRIENDLY_ASSERT((fusion::result_of::invoke_function_object<fobj_nc, sfinae_friendly::v2>));
+SFINAE_FRIENDLY_ASSERT((fusion::result_of::invoke_function_object<fobj_nc, sfinae_friendly::v3>));
struct nullary_fobj_nc
: boost::noncopyable
@@ -116,6 +128,9 @@ struct nullary_fobj_nc
int operator()() { return 12; }
int operator()() const { return 13; }
};
+SFINAE_FRIENDLY_ASSERT((fusion::result_of::invoke_function_object<nullary_fobj_nc, sfinae_friendly::v1>));
+SFINAE_FRIENDLY_ASSERT((fusion::result_of::invoke_function_object<nullary_fobj_nc, sfinae_friendly::v2>));
+SFINAE_FRIENDLY_ASSERT((fusion::result_of::invoke_function_object<nullary_fobj_nc, sfinae_friendly::v3>));
typedef int element1_type;