...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Creates a unfused
adapter for a given,
unary Polymorphic Function
Object. The usual element
conversion is applied to the target function.
template <typename F>
inline typename make_unfused
<F>::type
make_unfused(F const & f);
Parameter |
Requirement |
Description |
---|---|---|
|
Model of Polymorphic Function Object |
The function to transform. |
make_unfused(f);
Return type: A specialization of unfused
.
Semantics: Returns a unfused
adapter for f
.
#include <boost/fusion/functional/generation/make_unfused.hpp> #include <boost/fusion/include/make_unfused.hpp>
struct fused_incrementer
{
template <class Seq>
struct result
{
typedef void type;
};
template <class Seq>
void operator()(Seq const & s) const
{
for_each
(s,++boost::lambda::_1);
}
};
void try_it()
{
int a = 2; char b = 'X';
make_unfused(fused_incrementer())(a,b);
assert(a == 3 && b == 'Y');
}