[Development] Is QFutureInterface internal like the other d-pointer classes?
Marc Mutz
marc.mutz at kdab.com
Thu Jul 23 13:20:15 CEST 2015
On Thursday 23 July 2015 11:24:05 Lorenz Haas wrote:
> Hi,
>
> most - if not all - d-pointer/private implementation files are
> *internal* and should not be used in a "normal" project - meaning a
> project that just uses Qt. These files/classes are clearly marked by
>
> //
> // W A R N I N G
> // -------------
> //
> // This file is not part of the Qt API. It exists purely as an
> // implementation detail. This header file may change from version to
> // version without notice, or even be removed.
> //
> // We mean it.
> //
>
> What about QFutureInterface? Is it safe to use it in a normal project
> or can it be changed at any time like the other internal classes?
>
> qfutureinterface.h/.cpp does not have the cited warning.
> QFutureInterfaceBase is furthermore exported, QFutureInterface not.
> Why? I also do not understand the comment in qfuture.h:
>
> public: // Warning: the d pointer is not documented and is considered
> private. mutable QFutureInterface<T> d;
>
> Okay, it is not documented, but I can read the source code, or is all
> not documented Qt code considered *internal*? Hope not. The comment
> also mentions "private". This is only related to the access
> specification, is it? Or does private here also means *internal*?
It's undocumented, and considered private, but since it's a template and thus
must be visible, it effectively is public API and falls under the same
restrictions for changes as public API. IOW: it cannot change (incompatibly)
until Qt 6.
If you're fine with that, go ahead and use it in your code.
Thanks,
Marc
--
Marc Mutz <marc.mutz at kdab.com> | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
Tel: +49-30-521325470
KDAB - The Qt Experts
More information about the Development
mailing list