GoingNative 2013

Bjarne Stroustrup - The Essence of C++: With Examples in C++84, C++98, C++11, and C++14

Download this episode

Download Video

Download captions

Download Captions

Description

C++11 is being deployed and the shape of C++14 is becoming clear. This talk examines the foundations of C++. What is essential? What sets C++ apart from other languages? How do new and old features support (or distract from) design and programming relying on this essence?

I focus on the abstraction mechanisms (as opposed to the mapping to the machine): Classes and templates. Fundamentally, if you understand vector, you understand C++.

Type safety and resource safety are key design aims for a program. These aims must be met without limiting the range of applications and without imposing significant run-time or space overheads. I address issues of resource management (garbage collection is not an ideal answer and pointers should not be used as resource handles), generic programming (we must make it simpler and safer), compile-time computation (how and when?), and type safety (casts belongs in the lowest-level hardware interface). I will touch upon move semantics, exceptions, concepts, type aliases, and more. My aim is not so much to present novel features and technique, but to explore how C++’s feature set supports a new and more effective design and programming style. 

Day:

1

Code:

001

Embed

Format

Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • rdwells

      Will Going Native 2013 be streamed live like it was last year?

    • Charles

      @rdwells: Yes. It will stream live on the C9 homepage. We will take questions from the virtual audience, as well, although at a lower priority than the attendees in the room.

      C

    • Michael Price

      When will the live stream get going? Promptly at 9:00?

    • Charles

      @Michael Price: Yes...

      C

    • spasticD

      Are these being recorded and uploaded somewhere for those who are unable to attend the live event/stream?

    • Charles

      @spasticD: Yep. The videos will appear right here (on this event site on C9...).
      C

    • Jacob

      How long will the lag between live and the recording being posted be? Trying to plan a C++ party for tonight or tomorrow :)

    • Patel Sanni

      I am waiting

    • rdwells

      Click the Channel 9 icon at the top of the page to get to the live video.

    • court

      I believe the question was whether or not you had a ballpark estimate of the amount of time that will lapse between the completion of the real time talk and the availability of the recording. I am curious as well because, due to work, I was unable to watch the talks live with the exception of the tail of Jim's speech. If that was any indication of the relevance of this material then the sooner the better the better!! Not rushing you guys... just curious. -c

    • court

      I believe the question was whether or not you had a ballpark estimate of the amount of time that will lapse between the completion of the real time talk and the availability of the recording. I am curious as well because, due to work, I was unable to watch the talks live with the exception of the tail of Jim's speech. If that was any indication of the relevance of this material then the sooner the better!! Not rushing you guys... just curious. -court

    • Charles
      Hi all, 24-48 hours after the event is typically the ballpark. C
    • dorinlazar

      @Charles: Looking forward to it. I managed to miss the keynote from Bjarne, and it went downhill from there.

    • tertl3

      i wanna see it too, I don't really do much with C++ but I find some of these talks interesting.  Im considering trying some of these new tools and spending some time to learn it now Tongue Out.  Anyone tried the newish C++ interpreters Cling or Cint from CERN?  is it anything like a python interpreter?

    • JulienNitard

      Frantically pressing F5 doesn't seem to make the video come up faster. Likely a Channel 9 bug Wink

    • tomkirbygre​en

      Awesome, here come the downloads! Smiley Its offline grokking time! Smiley

    • Josh

      I managed to watch the talks live on Day 3, I missed the rest of the talks. I have been waiting eagerly to watch them all, most especially Sean Parent's talk. It's been making airwaves on Twitter since the beginning of Going Native. Thanks guys.

    • linc

      IS there have PPT?

    • vittoriorom​eo

      Concepts will change my life

    • Saeed Amrollahi Boyouki

      Awesome like always. Thank you Bjarne.
      -- Saeed Amrollahi

    • JCYang

      Dear Channel9 staff, High Quality WMV download link is broken. Please fix it.

    • Kometes

      @01:33:00 concerning efficient string handling: you can build a "constant string reference" class using constexpr and variadic char templates that at compile time can: get the string length; concatenate strings (no concatenation is actually done it's just a type); iterate over the string etc. This has already been done in production code! Maybe it could be a TR for C++14, once standardized it will be the nail in the coffin for null-terminated C strings.

    • cedricmi

      Great talk.

      I would like to know more about cost of virtual functions vs generics, what are the estimates in typical scenarii, when is it really prohibitive, are there simple rules of thumbs that one can use.

      Also why isn't there any talk from Alexander A. Stepanov in Going native? Scheduling conflict? Not interested? I am wrong in thinking he is still actively involved in c++?

       

    • JSawyer

      Going Naïve'13 Angel

       

    • Dxtr

      Does the footer actually read "Going Naive'13" or is that due to the bad resolution? (Or was it intentional perhaps?)

      Still, awesome talk :)

    • golnazal

      @Dxtr: there was a typo on his decks. Herb Sutter jokingly mentions it in his talk.

    • Bob

      The word excellent was used 3 times by the Microsoft guy in less than 30 seconds... I think he needs a dictionary.

    • Ishan

      does anyone know the link for Palo Alto TR (STL algo details) ?

    • SeanParent

      @Ishan:The "Palo Alto TR" was the result of a workshop to revisit the design for Concepts after the feature was cut from C++11. The resulting paper can be found here <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3351.pdf>.

    • Spitefulgod

      I wonder how many times a day this guy has to shout "no you fracking idiot!!!!! you're doing it wrong!"  I know it has no relevance... he just looks the sort that when you mess with his baby.. he gets really peeved

    • Charles

      1

    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.