I have seen some implementations where the majority of the definition of overloaded post-increment or decrement are common.

I proposed a feature where you can only "explicitly" default the following operators:

class_name operator++(int) = default;
class_name operator--(int) = default;

where they both rely on the pre-increment and decrement operators. The rough equivalent may be:

class_name operator++(int) {
  auto temp = *this;
  ++*this;
  return temp;
}

class_name operator--(int) {
  auto temp = *this;
  --*this;
  return temp;
}

I hope this one could help even if it's a minor addition.