Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Special Interest Groups
  3. C++ Gurus
  4. error: C2139: 'QString': an undefined class is not allowed as an argument to compiler intrinsic type trait '__is_convertible_to'

error: C2139: 'QString': an undefined class is not allowed as an argument to compiler intrinsic type trait '__is_convertible_to'

Scheduled Pinned Locked Moved Solved C++ Gurus
19 Posts 7 Posters 2.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Offline
    W Offline
    WWebber
    wrote 22 days ago last edited by WWebber
    #10

    I ran into exactly the same problem!
    Porting from V5.12.x (VS2019) to V6.5.3 (VS2022).
    How did you fix this?
    The project works perfect with VS2019!
    The problem is that the error message does not point to any useful source file than "type_traits".

    1 Reply Last reply
    0
    • A Offline
      A Offline
      aha_1980
      Lifetime Qt Champion
      wrote 22 days ago last edited by
      #11

      @WWebber: Have you tried the suggestion from @kkoehne in https://forum.qt.io/post/765260 ?

      Qt has to stay free or it will die.

      W 1 Reply Last reply 22 days ago
      0
      • A aha_1980
        22 days ago

        @WWebber: Have you tried the suggestion from @kkoehne in https://forum.qt.io/post/765260 ?

        W Offline
        W Offline
        WWebber
        wrote 22 days ago last edited by
        #12

        @aha_1980 said in error: C2139: 'QString': an undefined class is not allowed as an argument to compiler intrinsic type trait '__is_convertible_to':

        @WWebber: Have you tried the suggestion from @kkoehne in https://forum.qt.io/post/765260 ?

        It points to 'type_traits' and to exactly this line:

        struct is_convertible : bool_constant<__is_convertible_to(_From, _To)> {
        // determine whether _From is convertible to _To
        };

        1>C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.43.34808\include\type_traits(323,39): error C2139: 'QString': an undefined class is not allowed as an argument to compiler intrinsic type trait '__is_convertible_to'
        1>(compiling source file '../QT/test.cpp')
        1> c:\Qt6\6.5.3\msvc2019_64\include\QtCore\qcontainerfwd.h(30,7):
        1> see declaration of 'QString'
        1> C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.43.34808\include\type_traits(323,39):
        1> the template instantiation context (the oldest one first) is
        1> c:\Qt6\6.5.3\msvc2019_64\include\QtCore\qstringtokenizer.h(27,30):
        1> while compiling class template member function 'QAnyStringView::QAnyStringView(Container &&,wrapped<Container,QString>::type &&)'
        1> c:\Qt6\6.5.3\msvc2019_64\include\QtCore\qstringtokenizer.h(27,30):
        1> while processing the default template argument of 'QAnyStringView::QAnyStringView(Container &&,wrapped<Container,QString>::type &&)'
        1> c:\Qt6\6.5.3\msvc2019_64\include\QtCore\qanystringview.h(216,35):
        1> see reference to alias template instantiation 'QAnyStringView::if_convertible_to<QString,QStringTokenizerBaseBase::tokenizer_state&>' being compiled
        1> c:\Qt6\6.5.3\msvc2019_64\include\QtCore\qanystringview.h(82,53):
        1> see reference to variable template 'const bool conjunction_v<std::negation<std::disjunction<std::is_same<QStringTokenizerBaseBase::tokenizer_state,enum QAnyStringView::Tag>,std::is_sameQStringTokenizerBaseBase::tokenizer_state,QAnyStringView,std::is_pointerQStringTokenizerBaseBase::tokenizer_state,std::is_sameQStringTokenizerBaseBase::tokenizer_state,QByteArray,std::is_sameQStringTokenizerBaseBase::tokenizer_state,QString > >,std::is_convertible<QStringTokenizerBaseBase::tokenizer_state &,QString> >' being compiled
        1> c:\Qt6\6.5.3\msvc2019_64\include\QtCore\qanystringview.h(82,53):
        1> see reference to class template instantiation 'std::is_convertible<QStringTokenizerBaseBase::tokenizer_state &,QString>' being compiled

        1 Reply Last reply
        0
        • W Offline
          W Offline
          WWebber
          wrote 22 days ago last edited by
          #13

          The error shows up with an empty CPP file holding just this single line:
          #include <qdialog.h>

          1 Reply Last reply
          0
          • C Offline
            C Offline
            Christian Ehrlicher
            Lifetime Qt Champion
            wrote 22 days ago last edited by
            #14

            Use a recent Qt version and add the include to QString before.

            Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
            Visit the Qt Academy at https://academy.qt.io/catalog

            W 1 Reply Last reply 22 days ago
            0
            • C Christian Ehrlicher
              22 days ago

              Use a recent Qt version and add the include to QString before.

              W Offline
              W Offline
              WWebber
              wrote 22 days ago last edited by
              #15

              @Christian-Ehrlicher said in error: C2139: 'QString': an undefined class is not allowed as an argument to compiler intrinsic type trait '__is_convertible_to':

              Use a recent Qt version and add the include to QString before.

              This is unfortunately not an option as I write a DLL for a main application using V6.5.3.
              Even when I just include <qstring> in the testcpp, I'm gettig the same error.

              1 Reply Last reply
              0
              • C Offline
                C Offline
                Christian Ehrlicher
                Lifetime Qt Champion
                wrote 22 days ago last edited by
                #16

                Simply try a recent version to see if it works...

                Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                Visit the Qt Academy at https://academy.qt.io/catalog

                1 Reply Last reply
                0
                • W Offline
                  W Offline
                  WWebber
                  wrote 19 days ago last edited by
                  #17

                  Tested with the latest 6.x version - same error.
                  I suspect it has to do with the latest QT Tools..

                  1 Reply Last reply
                  0
                  • C Offline
                    C Offline
                    Christian Ehrlicher
                    Lifetime Qt Champion
                    wrote 19 days ago last edited by
                    #18

                    Try it with a simple CMakeLists.txt on thee visual studio command line.

                    Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                    Visit the Qt Academy at https://academy.qt.io/catalog

                    1 Reply Last reply
                    0
                    • W Offline
                      W Offline
                      WWebber
                      wrote 18 days ago last edited by
                      #19

                      Found it!
                      This error was caused by the compiler option "/Zc:hiddenFriend-" !

                      1 Reply Last reply
                      2
                      • S SGaist has marked this topic as solved 17 days ago

                      19/19

                      30 Apr 2025, 21:34

                      • Login

                      • Login or register to search.
                      19 out of 19
                      • First post
                        19/19
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved