<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">Am 25.11.25 um 10:21 schrieb Albert
      Astals Cid:<br>
    </div>
    <blockquote type="cite" cite="mid:5941558.DvuYhMxLoT@xps15">
      <pre wrap="" class="moz-quote-pre">El dimarts, 25 de novembre del 2025, a les 1:35:03 (Hora estàndard d’Europa 
central), Michael Pyne va escriure:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 11/24/25 3:58 PM, Neal Gompa wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On Mon, Nov 24, 2025 at 3:54 PM Albert Astals Cid <a class="moz-txt-link-rfc2396E" href="mailto:aacid@kde.org"><aacid@kde.org></a> wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre"><a class="moz-txt-link-freetext" href="https://community.kde.org/Frameworks/Policies#Frameworks_compiler_require">https://community.kde.org/Frameworks/Policies#Frameworks_compiler_require</a>
ments_and_Modern_C++

It is wildly outdated, so I would suggest to remove it.

Or does someone have a suggested way to update it?
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">
As far as I know, starting from 6.0, we require a C++20 capable
compiler. That means at least GCC 12, Clang 14, or MSVC 2022 I
believe.
</pre>
        </blockquote>
      </blockquote>
    </blockquote>
    <p>We did say we _want_ C++20. What specific compiler versions this
      translates to is rather fuzzy since different compiler versions
      implements different subsets of C++20 (e.g. for the longest time
      "nobody" usefully implemented modules). Because of that I don't
      think we ever settled on specific versions. </p>
    <p><span style="white-space: pre-wrap">
</span></p>
    <blockquote type="cite" cite="mid:5941558.DvuYhMxLoT@xps15">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">I think there is value in having the policy for allowable C++ standards
and/or compilers written down in some easily-accessible form.  Perhaps a
bit more future-proofed so it doesn't get wildly outdated again.  I've
been able to find references to requiring C++20-supporting compilers for
KF6 starting from 6.0.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
The problem is, what is the value of a policy if we do not check/enforce it?

Right now the only thing we can say is "it builds with whatever compilers we 
have in CI".
</pre>
    </blockquote>
    <p>Even if we don't enforce it by CI there is still value to it. If
      somebody comes around and points out that we broke compilation on
      "reasonably recent platform" that's going to be a different
      conversation than if it's Ubuntu 14.04.</p>
    <p><span style="white-space: pre-wrap">
</span></p>
    <blockquote type="cite" cite="mid:5941558.DvuYhMxLoT@xps15">
      <pre wrap="" class="moz-quote-pre">Cheers,
  Albert

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Are there any other relevant policies that apply to KF6 for C++ support
and/or compiler support? Assuming not, I'd propose that the page be
updated to note that KDE Frameworks require a C++20-compatible compiler,
and that the compiler must also be supported by the minimum required Qt
version as listed in the prior section.

If it were not for Qt supporting as far back as GCC 9 (for openSUSE) we
might simply be able to require the same compiler Qt requires.  But it's
not until GCC 12 you get nearly full support for C++20 (and even 12
still misses parts of C++ modules support), so it's probably still worth
mentioning we require a C++20-capable compiler.

I'll volunteer to update the page if that works, something along the
lines of KF6 requires a C++ compiler that is compliant with at least
C++20 and supported by the oldest supported Qt 6 minor release.

Regards,

  - Michael Pyne
</pre>
      </blockquote>
    </blockquote>
  </body>
</html>