Boost logo

Boost Users :

Subject: [Boost-users] [Bind] Understanding protect
From: Robert Jones (robertgbjones_at_[hidden])
Date: 2012-03-27 10:25:40

Hi All

I'd appreciate some helpful words about Boost.Bind protect, 'cos I'm not
quite understanding it!

I thought its purpose was allow binding, but not evaluating, of a function
object. So that this should

#include <iostream>
#include <boost/bind.hpp>
#include <boost/bind/protect.hpp>

void f( int i ) { std::cout << i << std::endl; }

template <typename NullaryCallable> void g( const NullaryCallable &
callable ) { callable( ); }

int main( )
    g( protect( bind( f, _1 ) )( 1 ) );

But it doesn't, and instead thinks I'm calling g() with the return type of
f(), just as if I'd not used protect at all.

Is it possible to have bind generate a fully bound, nullary callable object?


- Rob.

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at