diff options
Diffstat (limited to 'libs/fusion/test/functional/invoke_function_object.cpp')
-rw-r--r-- | libs/fusion/test/functional/invoke_function_object.cpp | 15 |
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; |