Dear all, Recently, my team suffered from a bug due to a double bad usage of C++.
We have a function returning a reference to an object: Object& GetObject(); Sometimes we use this function like this: auto obj = GetObject(); This triggers a copy of the object, which we really don't mean. The two problems are: 1. Object does not delete the copy constructor, nor does it declare one. We have a policy of never using implicitly-declared constructors, we either use `=delete` or `=default`. Nevertheless we missed this class. 2. A reference is demoted to a rvalue due to the usage of `auto` instead of `auto&`. We would like clang to issue warnings in these two cases. The latter case does not really seem easy to warn about, but the former looks straightforward. Does clang offer such warnings? Thanks Andrea Arteaga
_______________________________________________ cfe-users mailing list cfe-users@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users