[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