// Find places where we are returning a pointer to something, where we can be returning a reference. // e.g. // class A { // struct X x; // public: // X* getX() { return &x; } // } // which can be: // X& getX() { return x; }
namespace {
class ReturnByRef: public loplugin::FilteringPlugin<ReturnByRef>
{ public: explicit ReturnByRef(InstantiationData const & data): FilteringPlugin(data) {}
// display the location of the class member declaration so I don't have to search for it by hand auto otherLoc = functionDecl->getCanonicalDecl()->getSourceRange().getBegin(); if (otherLoc != functionDecl->getSourceRange().getBegin())
{
report(
DiagnosticsEngine::Note, "rather return by reference",
functionDecl->getCanonicalDecl()->getSourceRange().getBegin())
<< functionDecl->getCanonicalDecl()->getSourceRange();
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.