Listing 4 : The ubiquitous if_then and its cousin if_.
#include <boost/lambda/lambda.hpp>
#include <boost/lambda/if.hpp>
int main() {
using namespace boost::lambda;
std::vector<int> vec;
for(int i=1;i<50;++i) {
vec.push_back(i);
}
std::cout << "Print the odd numbers\n";
std::for_each(
vec.begin(),
vec.end(),
if_then(_1%2,std::cout << constant(" ") << _1));
std::cout <<
"\n\nIf the number is even, double it, otherwise print it\n";
std::for_each(
vec.begin(),
vec.end(),
if_(_1%2==0)[_1*=2].else_[std::cout << constant(" ") << _1]);
std::cout << "\nVerify the above\n";
constant_type<char>::type space(constant(' '));
std::for_each(
vec.begin(),
vec.end(),
if_(_1%2==0)[std::cout << space << _1]);
}