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. The Lounge
  3. Why I hate C++

Why I hate C++

Scheduled Pinned Locked Moved The Lounge
c++question
60 Posts 23 Posters 3 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.
  • M Munchies_Matt

    some_array[value];

    [] is over ridden and is commented as // find element matching _Keyval or insert with default mapped Which actually means 'insert it at the end of the list'. Why not a function called 'add_to_map_at_end'? Christ I hate C++ sometimes, it is so up its arse pointless at times.

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

    Don't get frustated, create your own adpator so you can do something like: [static] map_adaptor::wrap(some_array_which_is_really_not_a_primitive_array).find_element_or_insert(value);

    1 Reply Last reply
    0
    • M Munchies_Matt

      some_array[value];

      [] is over ridden and is commented as // find element matching _Keyval or insert with default mapped Which actually means 'insert it at the end of the list'. Why not a function called 'add_to_map_at_end'? Christ I hate C++ sometimes, it is so up its arse pointless at times.

      A Offline
      A Offline
      Andy Hoffmeyer
      wrote on last edited by
      #51

      Don't blame the language or its standard library for your inability to RTFM. From std::map::operator[] - cppreference.com: operator[] is non-const because it inserts the key if it doesn't exist.

      M 1 Reply Last reply
      0
      • A Andy Hoffmeyer

        Don't blame the language or its standard library for your inability to RTFM. From std::map::operator[] - cppreference.com: operator[] is non-const because it inserts the key if it doesn't exist.

        M Offline
        M Offline
        Munchies_Matt
        wrote on last edited by
        #52

        No shit it inserts it, I just said that. RTFOT FFS.

        1 Reply Last reply
        0
        • M Munchies_Matt

          some_array[value];

          [] is over ridden and is commented as // find element matching _Keyval or insert with default mapped Which actually means 'insert it at the end of the list'. Why not a function called 'add_to_map_at_end'? Christ I hate C++ sometimes, it is so up its arse pointless at times.

          S Offline
          S Offline
          Steve Naidamast
          wrote on last edited by
          #53

          Why I don't hate the C++ language I have found it to be overly arcane with its syntax...

          Steve Naidamast Sr. Software Engineer Black Falcon Software, Inc. blackfalconsoftware@outlook.com

          1 Reply Last reply
          0
          • M Munchies_Matt

            I have come across some right howlers in this code base. Anyway, C++, of all the languages I have used, from ADA, to Prolog, through VB and Java, allows this kind of sillyness. So it is for that that I condemn it. And personally I dont see that OO is a massive benefit over a procedural language except in specific instances. And in fact it is often worse. Particularly in control code, code that is not data centric, but process centric.

            S Offline
            S Offline
            SeattleC
            wrote on last edited by
            #54

            If you had ever had the experience of building a large software project using non-OO code, you would sing a different tune.

            M 1 Reply Last reply
            0
            • S SeattleC

              If you had ever had the experience of building a large software project using non-OO code, you would sing a different tune.

              M Offline
              M Offline
              Munchies_Matt
              wrote on last edited by
              #55

              You can build a large project from procedural code just as well, it all depends on the architecture you design. Look at the WIndows kernel. All built in C (with a bit of assembler in the HAL)

              S 1 Reply Last reply
              0
              • B Bob1000

                You are pretty close to the perfect answer.... C++ is as sensible or as stupid and daft as you want it to be. Unfortunately not helped by the C++ ISO bods adding more and more different ways to make it more complicated without adding very much to real C++ users. The idea of less is more is lost on them. Could do with minimum C++ with a lot of the bad and new stuff removed. As for the Template library - great functionality but let down by the ludicrous syntax etc.

                C Offline
                C Offline
                Carlosian
                wrote on last edited by
                #56

                Yes, I still keep the AT&T C++ book on my desk. A slim volume describing a nice language which was an (IMO) elegant OO extension to 'C'. Now you can look at valid C++ syntax that looks like a cat walked across the keyboard. They seem to be trying to put every feature of every other language into C++ syntax and comprehensibility be damned.

                1 Reply Last reply
                0
                • M Munchies_Matt

                  You can build a large project from procedural code just as well, it all depends on the architecture you design. Look at the WIndows kernel. All built in C (with a bit of assembler in the HAL)

                  S Offline
                  S Offline
                  SeattleC
                  wrote on last edited by
                  #57

                  And have you, personally, built a million-line code-base in purely procedural code? In C, perhaps? If you have done so, and have done the same using an object-oriented language, then you have standing to dismiss object oriented programming as no better than procedural. Merely asserting that it is possible is not a very strong claim. Pointing to 30-year-old code like the Windows Kernel, that was developed before the broad availability of OO languages is meaningless.

                  M 1 Reply Last reply
                  0
                  • S SeattleC

                    And have you, personally, built a million-line code-base in purely procedural code? In C, perhaps? If you have done so, and have done the same using an object-oriented language, then you have standing to dismiss object oriented programming as no better than procedural. Merely asserting that it is possible is not a very strong claim. Pointing to 30-year-old code like the Windows Kernel, that was developed before the broad availability of OO languages is meaningless.

                    M Offline
                    M Offline
                    Munchies_Matt
                    wrote on last edited by
                    #58

                    Ah, so because I havnt done it it isnt true. OK, gotcha! ;)

                    SeattleC++ wrote:

                    30-year-old code like the Windows Kernel,

                    :laugh: :laugh: :laugh: NT is old, 2000 was modified to include PnP and power handling. Windows 10 is even more recent.

                    1 Reply Last reply
                    0
                    • M Munchies_Matt

                      Here you go: vc-19-changes/unordered_map at master · icestudent/vc-19-changes · GitHub[^]

                      I Offline
                      I Offline
                      Ian Bell 2
                      wrote on last edited by
                      #59

                      Why reference the code and what is it you are requesting?

                      History is the joke the living play on the dead.

                      1 Reply Last reply
                      0
                      • M Munchies_Matt

                        Seems to be something like that. Anyway, reading my_array[value]; and that is it, is damn confusiing!

                        K Offline
                        K Offline
                        KBZX5000
                        wrote on last edited by
                        #60

                        I agree 100%

                        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