Yeah basically C++ is fun (or "fun") in that in order to try and get what code does or what it means you have pretty much no other alternative than trying to compile it.
There are a number of terms that have only one meaning and can appear in only one "semantic place", such as namespace, return and... I think that's it? Maybe (maaaaybe) .*. So it's little enough that doesn't give you that much good information if you try and hand-parse them out from the code you have.