[cfe-users] Fwd: Warnings for implicit constructors and wrong usage of auto

Andrea Arteaga via cfe-users cfe-users at lists.llvm.org
Tue May 15 13:15:22 PDT 2018


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-users/attachments/20180515/32a4f49d/attachment.html>


More information about the cfe-users mailing list