ioeric added inline comments.

================
Comment at: include/clang/Tooling/Refactoring/AtomicChange.h:59
+  /// \brief Returns the path of the file containing this atomic change.
+  std::string getFilePath() const { return FilePath; }
+
----------------
alexshap wrote:
> ioeric wrote:
> > alexshap wrote:
> > > i assume i might be missing smth - why here and above (in getKey, 
> > > getFilePath, getError) std::string is returned by value  ?
> > Otherwise, users would need to worry about the lifetimes of the object. And 
> > these methods are not expected to be called intensively, so performance is 
> > not an issue.
> i see, thanks for the explanation, probably not particularly important
> i thought that if a caller wanted to get a copy / take ownership 
> it would just **accept** it by value, i.e. 
>    auto path = change.getFilePath() /* assuming getFilePath returns const ref 
> */ 
> At the same time if for example we need to check the filepath (or just print 
> it),
> not copies would be required:
>    llvm::errs() << change.getFilePath();
I don't really have strong opinion about this. Another thing I was considering 
is whether the returned value always has an associated object in the class. For 
example, `getError` might return `Error` plus some extra message so that the 
return string can't be a reference. But these interfaces look pretty stable for 
now. And your examples make sense. Changed them to const ref instead.


https://reviews.llvm.org/D27054



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to