03.05.2019, 23:31, "Иван Комиссаров" <abba...@gmail.com>:
> By forcing usage of smart pointers, of course.
> The moment you start writing
>
> QWidget w1;
> QWidget w2;
> w1.setParent(QObjectSmartPointer<QWidget>(&w2));
>
> It’s time to stop and think if you’re doing the right thing=) It is possible 
> to pass an object on a stack to a unique_ptr/shared_ptr ctor, but that’s the 
> problem of the person who's doing this, not the design flaw of smart 
> pointers, right?
>
> We need to make it intuitive to use smart pointer and hard to use them 
> incorrectly. It is quite orthogonal to «support every corner case» which are 
> QObjects on stack IMHO - there are always problems with them (except for the 
> top-level objects).
>
> Note, that we still need an old API for backward-compatility which works with 
> QObjects on stack fine, so the user code won’t be broken in any case, but we 
> might want to decide what use cases we do want to support and how users 
> should write modern qt apps and what use cases are considered voodoo and bad 
> practice.

IMO it would be resonable to drop specific behavior of QObject constructor then 
to force unnecessary memory allocations upon users

>
>> 3 мая 2019 г., в 22:15, Giuseppe D'Angelo via Development 
>> <development@qt-project.org> написал(а):
>>
>> Il 03/05/19 22:00, Иван Комиссаров ha scritto:
>>> Which should be considered bad practice and banned on an API level
>>> QWidget w2
>>> QWidget w1;
>>> w1.setParent(&w2);
>>> QWidget w1;
>>> QWidget w2
>>> w1.setParent(&w2);
>>
>> Banned at an API level -- how, exactly?
>>
>> Cheers,
>> --
>> 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
>> https://lists.qt-project.org/listinfo/development
> ,
>
> _______________________________________________
> Development mailing list
> Development@qt-project.org
> https://lists.qt-project.org/listinfo/development


-- 
Regards,
Konstantin
_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to