I prefer the solution from the thread "unique_ptr and Qt" about using smart pointers for transferring ownership explicitly. We can use std::observer_ptr from c++20 to indicate the places that do not take ownership. I think, using gsl::owner is a wrong way of doing things, it's the way that can be source and (maybe) binary compatible, but that's a workaround, not a solution. However, the solution can require too much work to do.
Иван Комиссаров > 31 июля 2018 г., в 16:04, Eric Lemanisser <eric.lemaniss...@gmail.com> > написал(а): > > Please, don't introduce another type alias. It would loose the advantage of > static analysis like > http://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines-owning-memory.html > >> Le mar. 31 juil. 2018 à 14:52, Giuseppe D'Angelo via Development >> <development@qt-project.org> a écrit : >> Hi, >> >> On 31/07/18 13:11, Sérgio Martins via Development wrote: >> > I would recommend however that our docs show T* instead of gsl::owner<T> >> > and continue to include "Takes ownership of foo" in the text. >> > While I believe in self-documenting signatures I think it's too much >> > noise and hurts readability, and most devs never heard of gsl. >> > >> > Should be just an aid for tooling IMO. >> >> I agree with the rest of your email, but I kind of disagree with this >> particular point, for different reasons: >> >> >> * Because we need to educate our users that there's more C++ than Qt out >> there, and the Core Guidelines and the GSL are a fundamental part of >> knowledge for a C++ developer. >> >> * Even if we consider talking about the GSL too much of a "distraction" >> in the docs, we can simply add our own qOwner type alias, with identical >> semantics, and document what it does and what it means in signatures. >> >> * Leaving gsl::owner in the signature of a function documentation can >> help clarify situations where the textual documentation does not say >> anything about the ownership. At least, it's one more safeguard against >> adding functions that take/return pointers and don't clearly document >> the ownership. >> >> >> However, from a practical point of view, unless someone adds gsl::owner >> _everywhere_ to Qt, we can't report it in the docs, as they would >> otherwise be inconsistent :-( >> >> >> My 2 c, >> -- >> Giuseppe D'Angelo | giuseppe.dang...@kdab.com | Senior Software Engineer >> KDAB (France) S.A.S., a KDAB Group company >> Tel. France +33 (0)4 90 84 08 53, http://www.kdab.com >> KDAB - The Qt, C++ and OpenGL Experts >> >> _______________________________________________ >> Development mailing list >> Development@qt-project.org >> http://lists.qt-project.org/mailman/listinfo/development > _______________________________________________ > Development mailing list > Development@qt-project.org > http://lists.qt-project.org/mailman/listinfo/development
_______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development