Boost logo

Boost :

From: shunsuke (pstade.mb_at_[hidden])
Date: 2008-04-05 22:24:11

Eric Niebler wrote:
> return make_plus()( _()(e), _()(e) );
> So now how are _ and make_plus defined?
> _ is simple -- it is essentially identity which I showed earlier.
> make_plus is trickier. It must be optimal and safe. When passed lvalues,
> it should return a new node that holds the children by reference. When
> passed rvalues, it should return a new node that hold the children by value.

I think that, in general,
it depends on context whether or not `return f(a);` is "safe".
It doesn't depend on whether `a` is an lvalue or rvalue.

BOOST_FOREACH (char ch, to_const_reference(std::string("abc")) {

After all, that's the C++ language, isn't it? :-)

BTW, I think
`result_of<F(int)>::type` is always the same as
`result_of<F(int const &)>::type` in C++03.


Shunsuke Sogame

Boost list run by bdawes at, gregod at, cpdaniel at, john at