Added (for compiler versions that support it):
-Wmissing-declarations
-Wzero-as-null-pointer-constant
Then, fixes to problems identified by the extra warnings
Tested only on GCC 9.4.0
Adjusted the CPP code generator to output nullptr where appropriate,
to satisfy -Wzero-as-null-pointer-constant
Added a lot of 'static' declarations in front of functions,
to satisfy -Wmissing-declarations,
and wrap static function defs in anonymous namespaces.
There are advantages to both anonymous namespaces and static,
it seems that marking a function as static will not publish the name in
the symbol table at all, thus giving the linker less work to do.
* Fixup CPP documentation's markdown errors
Note that I couldn't get the ~~~{.cpp} method to work,
so I switched to using ```cpp which did work.
* Fixup C++ docs, typo in repeated code example
Co-authored-by: Paul Harris <paulharris@computer.org>