void foobar (int noNumber) {} even int main (int argc, char* argv []) { } is accepted by many compilers apart from that, any empty block is just fine {} You can do everything with macros, but that's just cheating, the semi colon is a statement terminator in C (unlike Pascal, where it is a statement delimiter), so you would need them in the maco definition another option would be to use the intialization list in the constructor OGR