$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Max Motovilov (max_at_[hidden])
Date: 2004-03-03 18:50:44
"Powell, Gary" <powellg_at_[hidden]> wrote in message
news:16D81990DBE42642A8CA977A55FF116A0BD398_at_ex-mail-sea-02.ant.amazon.com...
> In my plan, variables would have same scope in a function as they do now.
i.e. variables local to std::accumulate
> are not visible in the anonymous fn.
That's not what I was asking about. Will the anonymous function see the
names visible in the scope of its definition?
unsigned long foo (vector<X> const &xs)
{
unsigned y = 0;
unsigned long n = std::accumulate(
xs.begin(), xs.end(), 0UL,
unsigned long (unsigned long lhs, X const &rhs) // inline fn
with no name.
{
return ++y * (lhs + rhs.count);
}
);
return n;
}
A slightly brain-dead example, but it illustrates my question. As I
understand it, one can easily include references to local variables in a
lambda expression using ref(). Since current language does not allow us to
define one function body inside another, we can't really take "as it is now"
for a guideline. Nested blocks OTOH do not prevent access to outer local
variables, but you can't call nested blocks recursively...
...Max...