int &
Function()
{
   static int x;
   return (x);
}

void
foo1(
   int param1,
   int param2,
   char *param2
   );

void
foo2(
   int param1,
   int param2,
   char *param2
   );

void
foo3(
   int param1,
   int param2,                                               // comment
   char *param2
   );

struct whoopee *
foo4(
   int param1,
   int param2,
   char *param2                                              /* comment */
   );

const struct snickers *
foo5(
   int param1,
   int param2,
   char *param2
   );


void
foo(
   int param1,
   int param2,
   char *param2
   )
{
   printf("boo!\n");
}

int
classname::method();

int
classname::method()
{
   foo();
}

int
classname::method2();

int
classname::method2()
{
   foo2();
}

const int&
className::method1(
   void
   ) const
{
   // stuff
}

const longtypename&
className::method2(
   void
   ) const
{
   // stuff
}

int &
foo();

int &
foo()
{
   list_for_each(a,b) {
      bar(a);
   }
   return nuts;
}

void
Foo::bar() {
}

Foo::Foo() {
}

Foo::~Foo() {
}

void
func(
   void
   )
{
   Directory dir("arg");
}
