CppCon 2017: Arthur O'Dwyer “dynamic_cast From Scratch”

Поділитися
Вставка
  • Опубліковано 18 жов 2024
  • CppCon.org
    -
    Presentation Slides, PDFs, Source Code and other presenter materials are available at: github.com/Cpp...
    -
    This session will introduce you to the C++ object model: the rules by which C++ class objects are translated into memory layouts. We'll quickly cover polymorphic class types and multiple and virtual inheritance. We'll discuss the anatomy of a virtual method call, the difference between `static_cast` and `reinterpret_cast`, and what's contained in a vtable besides function pointers. We'll see that the way `dynamic_cast` thinks about the class hierarchy is slightly different from the way we're used to drawing it; and that `dynamic_cast` is expensive enough that sometimes we can find cheaper ways to ask an object for its type! The climax will be a complete, bug-free, and fast implementation of C++'s built-in `dynamic_cast`, using our own hand-crafted artisanal run-time type information (RTTI).
    Attendees will incidentally be exposed to several features of the modern C++ language, including type traits and the `final` qualifier.
    This session will mostly be talking about the Itanium C++ ABI, which is the standard on Linux and OS X systems. Mapping these concepts to the MSVC ABI will be left as an exercise for the reader of the project's GitHub repo: github.com/Quu...
    -
    Arthur O'Dwyer: Core Engineering, Nominum
    Arthur O'Dwyer worked for many years at Green Hills Software, making the world's most optimizing C and C++ compilers. Now he works at Nominum in San Francisco. Arthur is the showrunner of the Bay Area C++ meetup, which meets practically every week these days.
    -
    Videos Filmed & Edited by Bash Films: www.BashFilms.com
    *-----*
    Register Now For CppCon 2022: cppcon.org/reg...
    *-----*

КОМЕНТАРІ • 16

  • @mrlithium69
    @mrlithium69 7 років тому +6

    This may have been the first time this subject has felt like it finally clicked!

  • @weezytweezy9209
    @weezytweezy9209 Рік тому

    Great talk, Arthur O'Dwyer is an awesome speaker and gave great examples.

  • @ecosta
    @ecosta 3 роки тому +7

    Amazing talk and an extra kudos to the CC team. I had it "on" for no reason, but the quality is outstanding! 24:43 surprised me with the [from V] - that's some good human attention of detail there!

    • @CppCon
      @CppCon  3 роки тому +2

      Much appreciated!

  • @Raattis
    @Raattis 6 років тому +12

    Good explanation, well presented, great subtitles. Inheritance was a mistake.

  • @hl2mukkel
    @hl2mukkel 6 років тому +3

    What a great speaker! Haha truly entertaining and well explained talk, love that guy!

  • @GevorgHovhannisyan-v2o
    @GevorgHovhannisyan-v2o 24 дні тому

    This was an awesome talk... perfect👌

  • @gevorghovhannisyan5179
    @gevorghovhannisyan5179 24 дні тому

    This was an awesome talk 👌

  • @rocknroooollllll
    @rocknroooollllll 5 років тому +2

    Hey, Arthur -- great talk! But I am intrigued to know what was the ]noisy' talk next door about?

  • @user-pp4gh4gb2w
    @user-pp4gh4gb2w 5 місяців тому +1

    I'm just happy I've never asked mom to buy an animal

  • @robbie_
    @robbie_ 6 років тому +16

    I'm only at 2 minutes and I'm already struggling. Not all animals have legs. Cats have one tail. Most animals don't speak English.

  • @paherbst524
    @paherbst524 2 роки тому

    Nice work

  • @deciuscaeciliusmetellus7197
    @deciuscaeciliusmetellus7197 6 років тому

    Amazing talk, thanks :)

  • @AcrossSmart
    @AcrossSmart 2 роки тому +2

    Explanation is not clear

  • @ВасилийПетров-л1й
    @ВасилийПетров-л1й 6 років тому

    сделайте русские субтитры бля