Boost logo

Boost-Build :

From: Rene Rivera (grafik.list_at_[hidden])
Date: 2005-06-04 16:51:39


Jonathan Turkanis wrote:

> Among other thing, I realized I don't really know how to return a value from a
> Jam rule.
[...]
> I just discovered that the return statement does not seem to prevent control
> from continuing past the "if" block to the line marked "...".
[...]
> I really have no idea what's going on here.

It's simple ;-) "return 1 ;" sets the return value to the strings ["1"]
(all values Jam are string lists). When the rule finishes, by getting to
the last statement, the return value is passed back to the caller. So this:

rule x ( )
{
if $(_X_)
{
return 1 ;
}
else
{
return 2 ;
}
}

Is equivalent to... in C++:

std::vector<std::string> x()
{
std::vector<std::string> r;
if ( _X_.size() > 0 )
{
r.assign(1,"1");
}
else
{
r.assign(1,"2");
}
return r;
}

-- 
-- Grafik - Don't Assume Anything
-- Redshift Software, Inc. - http://redshift-software.com
-- rrivera/acm.org - grafik/redshift-software.com
-- 102708583/icq - grafikrobot/aim - Grafik/jabber.org
 

Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk