N
Nobody
I don't think I used 'class' or 'friend';
Of course all of these were or could have been fixed easily and with
negligible impact, consistent with your main argument.
Variable names tend to be private and are easy enough to rename. It's a
bit more problematic for a structure field which is part of a public API.
Possibly the best-known example is X11's XVisualInfo structure, which has
a field named "class" for the visual class (PseudoColor, TrueColor, etc).
By the time C++ became an issue, it was too well established to simply
change, resulting in:
typedef struct {
Visual *visual;
VisualID visualid;
int screen;
int depth;
#if defined(__cplusplus) || defined(c_plusplus)
int c_class; /* C++ */
#else
int class;
#endif
unsigned long red_mask;
unsigned long green_mask;
unsigned long blue_mask;
int colormap_size;
int bits_per_rgb;
} XVisualInfo;