31.07.2018, 21:35, "Иван Комиссаров" <abba...@gmail.com>: > 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.
It's binary compatible, because owner<T> = T. It's not a solution, just annotation for people static analyzers (like e.g. "emit" keyword in Qt) > However, the solution can require too much work to do. It also requires changic public APIs, which can only be done in Qt 6. > > Иван Комиссаров > > 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 -- Regards, Konstantin _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development