Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port to Qt 6 / C++17 #13

Open
squeevee opened this issue Dec 11, 2020 · 1 comment
Open

Port to Qt 6 / C++17 #13

squeevee opened this issue Dec 11, 2020 · 1 comment
Assignees

Comments

@squeevee
Copy link
Owner

squeevee commented Dec 11, 2020

Qt 6 is now released, and obviously Addle should be ported to use it. Qt has gone to great lengths to make the transition from 5 to 6 as painless as possible, so for Addle this will largely mean that some of our junk-drawer utilities will be obsoleted in favor of supported framework features.

  • Qt Concurrent now provides Tasks and Promises (with progress reporting?) which theoretically obsoletes the AsyncTask class.
  • Compile-time support for Qt MetaTypes is expanded, and I think that was a problem in a couple of places

Qt Graphics Framework is still supported in 6, but Graphics Effects have been obsoleted, which is further indication that it's probably better to switch to Qt Quick. AFAIK Quick still requires JavaScript and that is not likely to change in the near future.

Perhaps of greater significance, Qt 6 raises the minimum required C++ standard to 17, which means I really have no reason to drag my heels any longer. C++17 library features like any, optional, and variant are ready (though not drop-in) replacements for their Boost equivalents currently in use. constexpr if will greatly simplify a lot of things where previously convoluted enable_if functions had to be used.

I will also re-examine the C++14 libraries I had previously ruled out for dependency injection and high-order range functions. But, I suspect they will still not quite fulfill my needs. Boost Hana will be available as a replacement for MPL and Fusion, but I think I may end up going with MP11 instead of Hana to share components with another project (not currently on my GitHub) that may still want to support C++11.

@squeevee
Copy link
Owner Author

As a matter of fact, [Boost::ext].DI is looking like exactly what I want, and I will gladly scrap the Dependency Injector I've started in favor of it.

@squeevee squeevee self-assigned this Dec 12, 2020
@squeevee squeevee pinned this issue Dec 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant