I don't mind missing semicolons. In c++ paren/bracket mismatches are the bane of my existence. Specifically, if you open a paten in a header file and forget to close it, gcc will dump reams of errors and warnings, even on fairly small projects. Usually the problem is the first error, but for a dangling paren, that one's a red herring, you want the last error. It says you have an unclosed curly-brace in the top-level file. This appears to be due to a confluence of footguns:
1. Files are allowed to have different numbers of open & closed brackets. So who knows where the real error is? For all the compiler knows, you left that paren open deliberately in one file and forgot to include the paren-closing file?
2. C++ syntax generally lets you put anything anywhere -- the compiler doesn't seem to mind that I'm defining a new class literally inside the parentheses of a function call? Is that actually legal? Who knows. But I'm still a little confused... after opening that paren I almost immediately use too many closing braces -- why isn't that spotted immediately?