In a C++ class declaration:
class Thing
{
...
};
why must I include the semicolon?
A good rule to help you remember where to put semicolons:
Namespaces also don't require a trailing semicolon, because they can contain a mix of both the above (so can contain code, so don't need a semicolon).