mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-13 20:46:29 +02:00
Add many tests for SFINAE-friendly result_of::invoke.
This commit is contained in:
@ -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,11 @@ struct fobj
|
||||
int operator()(int i, object const &, object_nc &);
|
||||
int operator()(int i, object const &, object_nc &) const;
|
||||
};
|
||||
// FIXME:
|
||||
//SFINAE_FRIENDLY_ASSERT((fusion::result_of::invoke_function_object<fobj, sfinae_friendly::v0>));
|
||||
//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 +97,10 @@ struct nullary_fobj
|
||||
int operator()() { return 0; }
|
||||
int operator()() const { return 1; }
|
||||
};
|
||||
// FIXME:
|
||||
//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 +118,11 @@ struct fobj_nc
|
||||
int operator()(int i) { return 14 + i; }
|
||||
int operator()(int i) const { return 15 + i; }
|
||||
};
|
||||
// FIXME:
|
||||
//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 +132,10 @@ struct nullary_fobj_nc
|
||||
int operator()() { return 12; }
|
||||
int operator()() const { return 13; }
|
||||
};
|
||||
// FIXME:
|
||||
//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;
|
||||
|
Reference in New Issue
Block a user