Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Other Discussions
  3. The Weird and The Wonderful
  4. Today's entry for the "kill it with fire" list

Today's entry for the "kill it with fire" list

Scheduled Pinned Locked Moved The Weird and The Wonderful
c++
22 Posts 14 Posters 11 Views 1 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.
  • P Paulo_JCG

    Is it possible we're talking about Quantum bool ????

    Paulo Gomes Measuring programming progress by lines of code is like measuring aircraft building progress by weight. —Bill Gates Everything should be made as simple as possible, but not simpler. —Albert Einstein

    G Offline
    G Offline
    Gary Wheeler
    wrote on last edited by
    #13

    Only this[^] knows.

    Software Zen: delete this;

    1 Reply Last reply
    0
    • G Gary Wheeler

      bool flags[2];
      //...
      if ( (flags[0] == true) ||
      (flags[1] == true) )
      {
      //...
      if ( (flags[0] == TRUE) ||
      (flags[1] == TRUE) )
      {
      }
      }

      X| I just found this in some code I have to extend to support a new feature. I wonder if Mike Rowe[^] knows C++...

      Software Zen: delete this;

      S Offline
      S Offline
      S Mercurio
      wrote on last edited by
      #14

      Maybe it's an existential program looking for the meaning of truth and it couldn't get a hold of Stephen Colbert.

      1 Reply Last reply
      0
      • G Gary Wheeler

        My gastrointestinal tract just inverted itself... X|

        Software Zen: delete this;

        E Offline
        E Offline
        englebart
        wrote on last edited by
        #15

        Even worse: If the //... code that initializes the flags array really assigns those values into it, then it looks like the original code does not even consider these cases: x == true && y == TRUE. 2 variables with 4 possible values each means there should be 16 possible states. Normalizing the values reduces it to 2 variables with 2 possible values which gives 4 states. If true vs TRUE produce different outcomes, then God bless you and convert the "bools" into an enum. Consider creating a multidimensional array where the indexes are your "flags" and you initialize each array element to be the correct answer for that combination of states.

        1 Reply Last reply
        0
        • G Gary Wheeler

          bool flags[2];
          //...
          if ( (flags[0] == true) ||
          (flags[1] == true) )
          {
          //...
          if ( (flags[0] == TRUE) ||
          (flags[1] == TRUE) )
          {
          }
          }

          X| I just found this in some code I have to extend to support a new feature. I wonder if Mike Rowe[^] knows C++...

          Software Zen: delete this;

          D Offline
          D Offline
          DSewhuk
          wrote on last edited by
          #16

          might get corrupted to equal, say 42. Code that didn't explicitly check consistently for "==true" would take the wrong path. if(flags[x]) would be true, if(flags[x]==true) would be false. Then you also get the VB true, which is -1!

          1 Reply Last reply
          0
          • D DJ van Wyk

            What if, 15 years down the line, someone inserts code between the two different checks that changes the value of TRUE? You have to make absolutely sure that it is still true when the really important piece of code hits. I suggest you add a few inline ifs so that there will never be any doubt.

            My plan is to live forever ... so far so good

            N Offline
            N Offline
            Nathan Minier
            wrote on last edited by
            #17

            To quote my "favorite comment":

            #define TRUE FALSE
            //Happy debugging suckers

            "Never attribute to malice that which can be explained by stupidity." - Hanlon's Razor

            1 Reply Last reply
            0
            • G Gary Wheeler

              bool flags[2];
              //...
              if ( (flags[0] == true) ||
              (flags[1] == true) )
              {
              //...
              if ( (flags[0] == TRUE) ||
              (flags[1] == TRUE) )
              {
              }
              }

              X| I just found this in some code I have to extend to support a new feature. I wonder if Mike Rowe[^] knows C++...

              Software Zen: delete this;

              S Offline
              S Offline
              Super Lloyd
              wrote on last edited by
              #18

              what if var TRUE = false; hey!? I betcha didn't think of it, did ya?! :omg: ;P

              A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

              G 1 Reply Last reply
              0
              • S Super Lloyd

                what if var TRUE = false; hey!? I betcha didn't think of it, did ya?! :omg: ;P

                A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

                G Offline
                G Offline
                Gary Wheeler
                wrote on last edited by
                #19

                This is C++, fortunately.

                Software Zen: delete this;

                S 1 Reply Last reply
                0
                • G Gary Wheeler

                  This is C++, fortunately.

                  Software Zen: delete this;

                  S Offline
                  S Offline
                  Super Lloyd
                  wrote on last edited by
                  #20

                  well, you know #undef TRUE #define TRUE 0

                  A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

                  1 Reply Last reply
                  0
                  • G Gary Wheeler

                    bool flags[2];
                    //...
                    if ( (flags[0] == true) ||
                    (flags[1] == true) )
                    {
                    //...
                    if ( (flags[0] == TRUE) ||
                    (flags[1] == TRUE) )
                    {
                    }
                    }

                    X| I just found this in some code I have to extend to support a new feature. I wonder if Mike Rowe[^] knows C++...

                    Software Zen: delete this;

                    T Offline
                    T Offline
                    TheGreatAndPowerfulOz
                    wrote on last edited by
                    #21

                    This could make sense in a multithreaded situation, but somehow I've a feeling that's not what you're dealing with...

                    #SupportHeForShe Government can give you nothing but what it takes from somebody else. A government big enough to give you everything you want is big enough to take everything you've got, including your freedom.-Ezra Taft Benson You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun

                    G 1 Reply Last reply
                    0
                    • T TheGreatAndPowerfulOz

                      This could make sense in a multithreaded situation, but somehow I've a feeling that's not what you're dealing with...

                      #SupportHeForShe Government can give you nothing but what it takes from somebody else. A government big enough to give you everything you want is big enough to take everything you've got, including your freedom.-Ezra Taft Benson You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun

                      G Offline
                      G Offline
                      Gary Wheeler
                      wrote on last edited by
                      #22

                      While this code was in fact multithreaded, that had nothing to do with the sloppy way the logic was coded. I've had very few cases where comparing a bool variable to a constant made more sense algorithmically than just using the variable as-is. The second part comparing the variable to the Windows DWORD constant TRUE is just plain stupid. It works, but that's no credit.

                      Software Zen: delete this;

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups