https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115514
Jiang An <de34 at live dot cn> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |de34 at live dot cn --- Comment #3 from Jiang An <de34 at live dot cn> --- See - https://cplusplus.github.io/LWG/issue3725 - https://cplusplus.github.io/LWG/issue3727 If "implicit expression variations" (https://eel.is/c++draft/concepts.equality#6) apply here, then despite std::prev returning a non-const prvalue, the behavior of operator-> on such a prvalue should be required to be same as that on a const lvalue. But the current standard wording just says > These implicit expression variations are required to meet the semantic > requirements of the declared expression. It seems that we haven't forbidden the cases where an implicit expression variation behaves differently while still meeting the semantic requirements.