// Functions can be declared inside a
// function definition. The declaration
// is scoped normally.
class T
{
int a_;
};
int main()
{
void f();
// Compiles fine.
f();
// This is the classical trap:
// it is not a construction, but
// a function declaration.
T t();
// Does not compile, t is
// not an object of type T.
//t.a_ = 4;
return 0;
}
void g()
{
// Does not compile, because
// there is no declaration of f
// in scope.
//f();
}
void f()
{
}