https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113308
Bug ID: 113308 Summary: derived class doesn't currently allow inherited explicit object member function post increment operator Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: cooky.ykooc922 at gmail dot com Target Milestone: --- With the recent support of explicit object parameter functions, inheriting explicit object member functions from base class seems to work except for post increment operator 'operator++(int)'. struct add_fn { template <typename Self> Self operator++(this Self&& self, int) { auto temp = self; ++self; return temp; } }; struct A : add_fn { int n; A(int n) : n(n) {} A& operator++() { ++n; return *this; } // this doesn't work either: // A& operator++(this A& self) // { // ++self.n; // return self; // } }; int main() { A a { 5 }; ++a; // ok a++; // error: no 'operator++(int)' declared for postfix '++' } godbolt link: https://godbolt.org/z/1h57Thvds