Я только что получил следующее предупреждение от clang-tidy:
overloaded "operator++" returns a non-constant object
instead of a constant object type
https://clang.llvm.org/extra/clang-tidy/checks/cert-dcl21-cpp.html
К сожалению, ссылка, которую они предоставляют, не работает и https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?pageId=88046682 нет простого способа найти именно это правило (по-видимому, правила DCL начинаются с 50).
Но независимо от того, куда я смотрю в стандарте (например, 16.5.7 Увеличение и уменьшение [over.inc]),Я не нахожу никаких ссылок на то, что postfix operator ++
должен возвращать const:
struct X {
X operator++(int); // postfix a++
};
Вопрос: просто чересчур аккуратно, чрезмерно защищен, ошибочен или почему я хотел бы объявить возвращаемый тип постфикса константным