Although C++ does not allow nested function declaration, you can simulate it using a structure with a static function:
void outer()
{
static int v1 = 5;
int v2 = 5;
struct thru
{
static void inner()
{
std::cout << v1 << std::endl;
//std::cout << v2 << std::endl;
}
};
thru::inner();
}
The
inner() function will not have access to local variables of
outer() (the line that is commented out in the code above
will cause an error, for example); however, it will be able to access the local static variable
v1 in
outer().