This works in both 7.6.117 and 7.7.39 (although 7.7 gives a warning about an unused private function):
class X (int n) { private X `+ (int n2) {return X (n + n2);} static string _sprintf() {return "X(" + n + ")";} }
int main() { werror ("%O\n", X(3) + 5); }
I think changing it would have some annoying compatibility impact.