Legit usage:
#define private public
#include "some old thing I need the internals of but can't change.h"
(The compiler is also free to change the object layout when you do this, too, though I've no idea whether any of them do.)
Forced to do by Microsoft C and C++ that mangle names.