foremost among them are coroutines

Note that on OSX / Clang, coroutines is still in <experimental/...

Philippe

On Thu, 27 Jan 2022 11:38:05 +0000
Marc Mutz <[email protected]> wrote:

Hi,
> 
> 
> C++20 brings several new library features that would be great to use in the 
> Qt API, foremost among them are coroutines and std::span. 
> 
> 
> 
> Yet, both of these are, in a sense, type-erasure techniques, and therefore 
> most useful across ABI boundaries.
> 
> 
> Traditionally, Qt has defined a set of minimum supported C++ compilers and 
> whatever their lowest common denominator was, that's what  could be used in 
> the Qt ABI, everything else, let's call it conditionally-supported, could 
> only be used in inline API.
> 
> 
> It is worth noting that on MSVC, inline API in exported classes already forms 
> part of the ABI, and no-one seems to have cared.
> 
> 
> I would therefore like to propose to soften our ABI guidelines such that we 
> can officially use said conditionally-supported types also in the ABI. This 
> would allow to create non-inline APIs that use std::span and coroutines 
> without having to wait for all compilers to support them.
> 
> 
> This is not such a big step: We already have that, de facto, in MSVC. The 
> only difference would be that a C++20 project would require a C++20(or 
> later)-build of Qt. The error upon failure to comply would be unspectacular: 
> linker not finding a symbol in the Qt library.
> 
> 
> Seeing as we have allowed C++latest types in our ABI de-facto in the past, I 
> think it's time to allow it de-jure, too.
> 
> 
> 
> 
> Discuss ??
> 
> 
> 
> Thanks,
> Marc
> 
> 
> 
>       
>       
>       
>       
> Marc Mutz
>       
> Principal Software Engineer
>       
>       
>       
>       
> The Qt Company
> Erich-Thilo-Str. 10 12489
> Berlin, Germany
>       
> [email protected]
>       
> <https://www.qt.io>www.qt.io
>       
>       
>       
>       
> Geschäftsführer: Mika Pälsi, Juha Varelius, Jouni Lintunen
> Sitz der Gesellschaft: Berlin,
> Registergericht: Amtsgericht Charlottenburg,
> HRB 144331 B
>       
>       
>       
>       
>       
> <https://www.qt.io/>  
> <https://www.facebook.com/qt/>        <https://twitter.com/qtproject> 
> <https://www.linkedin.com/company/the-qt-company/>      
> <https://www.youtube.com/QtStudios>     
>       
> 
> 
> 
> 
> 

_______________________________________________
Development mailing list
[email protected]
https://lists.qt-project.org/listinfo/development

Reply via email to