[Interest] QSharedDataPointer detach too much ( don't call const )
Philippe
philwave at gmail.com
Thu Sep 20 11:28:25 CEST 2018
This is a (logical) C++ aspect, not a Qt thing:
non-constant pointers call non-contant methods in priority.
Philippe
On Thu, 20 Sep 2018 11:02:44 +0200
Michal Lazo <xlazom00 at gmail.com> wrote:
I still don't see reason why compiler don't call const variants to access raw pointer
> http://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/tools/qshareddata.h#n76
>
>
>
> for example here(QTextCursor)
> http://code.qt.io/cgit/qt/qtbase.git/tree/src/gui/text/qtextcursor.cpp#n1151
>
> I would expect calling const variant and I think that author of that lines expect same.
>
>
>
>
> On Thu, Sep 20, 2018 at 10:55 AM Philippe <philwave at gmail.com> wrote:
>
>> You just have to change your line:
>>
>> Car * carPtr = &car;
>>
>> with
>>
>> const Car * carPtr = &car;
>>
>> Philippe
>>
>> On Thu, 20 Sep 2018 10:40:01 +0200
>> Michal Lazo <xlazom00 at gmail.com> wrote:
>>
>>>
>>> Hello
>>> example
>>> https://pastebin.com/xL9yWhKe
>>>
>>>
>>>
>>> I never used QSharedDataPointer in my code but is is heavily used in Qt
>>> My problem is that I found that QSharedDataPointer prefer non const operator for access raw pointer to object instead of const variant.
>>> And at the end non const variant call detach() = cloning object
>>> Look at my example and plz debug if conditions
>>>
>>>
>>> I use compiler MSVC 2015, 2017
>>>
>>>
>>> My problem is that for example QTextCursor use this constructions and it heavily call detach. And simple call const variant of method should fix this.
>>>
>>>
>>> Anybody can explain this behaviour?
>>>
>>>
>>>
>>>
>>>
>>>
>>>
_______________________________________________
Interest mailing list
Interest at qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20180920/52484d40/attachment.html>
More information about the Interest
mailing list