well, don't use -lstdc++ (which is added automatically, unless your linking-command has -nostdlib) and maybe avoid all exceptions and inheritance, as . if c is sufficient, and you just want the boolean type (and maybe the bool-array), it shouldn't be difficult to work around a missing lib when you include all headers in c-mode and link the relevant libs only...
I suggest experimenting with sizes of the output-program, see how different ways of programming and compiling affect the binary size. for example you didn't explicitely optimize for size...
recently the development-environment changed in one important area: executing code in shared memory isn't possible anymore. previously your program might have compiled in c++ because some lib-procedures would silently become stored in shared memory. (one copy per core running that program?) now this intransparency is gone.