All this tricks just look (more or less) as local functions, but they doesn'tdon't work like that. In a local function you can use local variables of it's super functions. It's kind of semi-globals. Non of these tricks can do that. The closest is the lambda trick from c++0x, but it's closure is bindedbound in definition time, not the use time.