OK, this is really annoying. I have the (almost) simplest class possible. Two files: a.cpp and a.h a.h:
#ifdef A_H #define A_H class a{ public: a(); }; #en
Its because
#ifdef A_H
needs to be
#ifndef A_H
notice the "n", as in if NOT defined.
The former will only compile the code if A_H is defined, which it isn't since you only define it on the next line.