|
Boost : |
From: Steven Watanabe (steven_at_[hidden])
Date: 2007-04-04 18:27:13
Alexander Nasonov <alnsn <at> yandex.ru> writes:
> I'm very impressed how you wrote it off the top of your head :->
I didn't. I've been toying with it for a
couple of days.
> But it's definitely too much magic. Though, it made me think of
> another magic: study alloca implementations and replace a global
> variable with something like
>
> <snip>
Why do you need this magic?
BOOST_SCOPE_EXIT( (hello)(world) ) // line 1
/* Expands to:
struct args_line1_t { std::string &hello, &world; } args_line1 = {
hello, world
};
struct scope_exit_line1 {
args_line1_t* m_args;
~scope_exit() {
doit(p->hello, p->world);
}
static void doit(std::string& hello, std::string& world)
*/
{
// scope(exit) code
}
BOOST_SCOPE_EXIT_END // line 5
/*
} scope_exit_line5 = { &args_line1 };
*/
In Christ,
Steven Watanabe
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk