Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Is there a "new" style for casting?
Forum Updated to NodeBB v4.3 + New Features

Is there a "new" style for casting?

Scheduled Pinned Locked Moved Solved General and Desktop
46 Posts 9 Posters 32.9k Views 3 Watching
  • 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.
  • S saber

    @JonB
    on every file "#endif " is added from first .
    all the warnings was coming up after the update of qtcreator.

    see this
    on the old version qt created this by it self

    explicit MainWindow(QWidget *parent = 0);
    

    after update
    0_1534232269589_y.png

    should i replace the 0 with nullpointer on every file??
    should it be a error in older version of compiler??
    in my qmake i add that must have c++ 11 support .

    sierdzioS Offline
    sierdzioS Offline
    sierdzio
    Moderators
    wrote on last edited by
    #37

    @saber said in Is there a "new" style for casting?:

    @JonB
    on every file "#endif " is added from first .
    all the warnings was coming up after the update of qtcreator.

    see this
    on the old version qt created this by it self

    explicit MainWindow(QWidget *parent = 0);
    

    after update
    0_1534232269589_y.png

    should i replace the 0 with nullpointer on every file??
    should it be a error in older version of compiler??
    in my qmake i add that must have c++ 11 support .

    These are hints from clang on how to improve your code. You are not forced to do everything it says. You are seeing them now because the clang code model is default since Qt Creator 4.7. So previously you were using the old code model which did not offer these hints. That's all there is to it. If the code compiles fine (without warnings), you can ignore the hints.

    However, it is a good idea to at least consider them, because these hints are (in 90% of cases) very good hints indeed.

    In this case yes, I'd strongly recommend using nullptr rather than zero. It is an explicit, named value that makes it harder to make a mistake.

    (Z(:^

    S 1 Reply Last reply
    4
    • VRoninV Offline
      VRoninV Offline
      VRonin
      wrote on last edited by
      #38

      I'm late to the party but just wanted to note Qt provides qFuzzyCompare and qFuzzyIsNull to compare double numbers for equality but you have to read the docs carefully before using them

      "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
      ~Napoleon Bonaparte

      On a crusade to banish setIndexWidget() from the holy land of Qt

      1 Reply Last reply
      2
      • sierdzioS sierdzio

        @saber said in Is there a "new" style for casting?:

        @JonB
        on every file "#endif " is added from first .
        all the warnings was coming up after the update of qtcreator.

        see this
        on the old version qt created this by it self

        explicit MainWindow(QWidget *parent = 0);
        

        after update
        0_1534232269589_y.png

        should i replace the 0 with nullpointer on every file??
        should it be a error in older version of compiler??
        in my qmake i add that must have c++ 11 support .

        These are hints from clang on how to improve your code. You are not forced to do everything it says. You are seeing them now because the clang code model is default since Qt Creator 4.7. So previously you were using the old code model which did not offer these hints. That's all there is to it. If the code compiles fine (without warnings), you can ignore the hints.

        However, it is a good idea to at least consider them, because these hints are (in 90% of cases) very good hints indeed.

        In this case yes, I'd strongly recommend using nullptr rather than zero. It is an explicit, named value that makes it harder to make a mistake.

        S Offline
        S Offline
        saber
        wrote on last edited by
        #39

        @sierdzio
        i am adding all the fix that qtcreator suggesting .

        as for the " #endif " i am ignoring it.

        aha_1980A 1 Reply Last reply
        0
        • sierdzioS sierdzio

          @JonB said in Is there a "new" style for casting?:

          at present the compiler/editor will be treating your file as though it did have that line at the end.

          Whoa, really? Which compiler allows that?

          For me (GCC) an unterminated ifdef is a hard error, compiler does not implicitly add it.

          JonBJ Offline
          JonBJ Offline
          JonB
          wrote on last edited by JonB
          #40

          @sierdzio said in Is there a "new" style for casting?:

          @JonB said in Is there a "new" style for casting?:

          at present the compiler/editor will be treating your file as though it did have that line at the end.

          Whoa, really? Which compiler allows that?
          For me (GCC) an unterminated ifdef is a hard error, compiler does not implicitly add it.

          The kind which generates a screenshot "Unterminated #ifdef" shown by the OP who says it's a warning but the app compiles fine.

          Now that you have said

          Ignore it, then. The code model sometimes gets bogged down in ifdefs without reason.

          I knew nothing about it being "clang". I took it that the OP had perhaps failed to get the last line of whatever he was fetching/copying (stranger things have been known to happen on this forum...). The OP should ignore my suggestion and stick with yours!

          1 Reply Last reply
          0
          • S saber

            for now i will leave as it is and inform the library author to add that enm.

            i got more warning to fix.

            0_1534231505882_aw.png

            i am getting this in all my ui based header file .
            but the app compiles fine.

            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by
            #41

            @saber said in Is there a "new" style for casting?:

            add that enm

            Please don't there is NOTHING to add to the enum! Simply remove the "default" inside the switch. Please read the link I posted more carefully, it is explained there.

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            S 1 Reply Last reply
            3
            • jsulmJ jsulm

              @saber said in Is there a "new" style for casting?:

              add that enm

              Please don't there is NOTHING to add to the enum! Simply remove the "default" inside the switch. Please read the link I posted more carefully, it is explained there.

              S Offline
              S Offline
              saber
              wrote on last edited by
              #42

              @jsulm
              ok.

              1 Reply Last reply
              0
              • S saber

                @sierdzio
                i am adding all the fix that qtcreator suggesting .

                as for the " #endif " i am ignoring it.

                aha_1980A Offline
                aha_1980A Offline
                aha_1980
                Lifetime Qt Champion
                wrote on last edited by
                #43

                Hi @saber,

                the "Unterminated conditional directive" could be either QTCREATORBUG-18801 or QTCREATORBUG-20883

                Regards,

                Qt has to stay free or it will die.

                1 Reply Last reply
                1
                • S Offline
                  S Offline
                  saber
                  wrote on last edited by
                  #44

                  i found new issue

                  QString DiskInfo::getDiskName() const
                  {
                      QDir blocks("/sys/block");
                  
                      for (const QFileInfo entryInfo : blocks.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot)) {
                          if (QFile::exists(QString("%1/device").arg(entryInfo.absoluteFilePath()))) {
                              return entryInfo.baseName();
                          }
                      }
                      return QString();
                  }
                  

                  here qt telling me

                  warning: loop variable 'entryInfo' of type 'const QFileInfo' creates a copy from type 'const QFileInfo'
                  
                  A 1 Reply Last reply
                  0
                  • S saber

                    i found new issue

                    QString DiskInfo::getDiskName() const
                    {
                        QDir blocks("/sys/block");
                    
                        for (const QFileInfo entryInfo : blocks.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot)) {
                            if (QFile::exists(QString("%1/device").arg(entryInfo.absoluteFilePath()))) {
                                return entryInfo.baseName();
                            }
                        }
                        return QString();
                    }
                    

                    here qt telling me

                    warning: loop variable 'entryInfo' of type 'const QFileInfo' creates a copy from type 'const QFileInfo'
                    
                    A Offline
                    A Offline
                    Asperamanca
                    wrote on last edited by
                    #45

                    @saber
                    In general, when you have a new question, post in a new thread. Since this thread is marked as "solved", people may not look.

                    To your question: You loop through a list of QFileInfo objects. Your code copies the QFileInfo for every loop, which is unnecessary. Instead, you can use a const reference:

                    for (const QFileInfo& entryInfo : blocks.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot))
                    
                    S 1 Reply Last reply
                    2
                    • A Asperamanca

                      @saber
                      In general, when you have a new question, post in a new thread. Since this thread is marked as "solved", people may not look.

                      To your question: You loop through a list of QFileInfo objects. Your code copies the QFileInfo for every loop, which is unnecessary. Instead, you can use a const reference:

                      for (const QFileInfo& entryInfo : blocks.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot))
                      
                      S Offline
                      S Offline
                      saber
                      wrote on last edited by
                      #46

                      @Asperamanca thanks.it sloved.

                      1 Reply Last reply
                      0

                      • Login

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