Back to Basics: Understanding Value Categories - Ben Saks - CppCon 2019

Поделиться
HTML-код
  • Опубликовано: 21 ноя 2024

Комментарии • 55

  • @koustavchowdhury8210
    @koustavchowdhury8210 2 месяца назад +2

    This is THE best talk for understanding value categories. Period.

  • @pmcgee003
    @pmcgee003 5 лет назад +37

    TFW your Basics lecture includes the term Temporary Materialisation Conversion.

  • @lsmgeb89
    @lsmgeb89 3 года назад +42

    After I have been reading some other materials about value categories, this lecture really helps me to understand them.
    Ben explained these concepts in a crystal clear way.
    Every modern C++ books should have this chapter.

    • @me5ng3
      @me5ng3 Год назад

      What materials were you reading about value categories? I'd love to read more on the subject

  • @furuame
    @furuame 4 месяца назад +1

    I hope I watched Ben’s talk before running into move semantics. Thank you!

  • @Possseidon
    @Possseidon 4 года назад +14

    Ahhh! I knew what lvalue and rvalue where, but never got my head around glvalue, prvalues and xvalues. Now I finally got it! Absolutely great talk!

  • @gustafbstrom
    @gustafbstrom Год назад +2

    This talk made how to think about C++ value catogories so much more clear to me. Thanks sir!

  • @kamilziemian995
    @kamilziemian995 Год назад +1

    Every C++ programmer should watch this video. With exception to Ben Saks and other superprogrammers that already know it content. 😉

  • @TernaryHound
    @TernaryHound 9 месяцев назад

    Great lecture. I have used these types and move semantics for years and yet this gave me such a more comfortable understanding of the motivations behind these concepts. Well done!

  • @kamilziemian995
    @kamilziemian995 2 года назад

    Saks family is an family of experts in explaining C++ in a clear way.

  • @orlando7448
    @orlando7448 4 года назад +14

    Mr Ben Saks is a gifted teacher!

  • @kamilziemian995
    @kamilziemian995 Год назад

    I should watch all Ben Saks talks avaliable online.

  • @DominoPivot
    @DominoPivot 3 года назад +1

    I've been working on highly abstract languages for years so that was an excellent refresher.

  • @collapsingspace
    @collapsingspace 3 года назад +7

    48:14 For people wondering if std::move(T &&a) has rvalue reference to T as parameter how does it work with something like std::move(str) because str is here an lvalue and it's clearly told in the talk that references to rvalue types only bind to rvalues and not lvalues..
    There's a deeper concept at play here note that std::move is templatized and the T&& a parameter actually becomes T&a when called like std::move(str)... you can find videos on type deduction on youtube.

    • @rahulc480
      @rahulc480 Месяц назад

      @@collapsingspace it's universal reference and not rvalue reference?

  • @toolmanp3885
    @toolmanp3885 Год назад

    This lecture is truly insightful and easy to follow after I tries to study the value categories in cpp references. Huge thanks!

  • @jiaweihe1244
    @jiaweihe1244 Год назад +3

    I cannot find the slides file in the github link provided, is there any other place to get the slides?

  • @mikkqu
    @mikkqu 4 года назад +7

    This guy is awesome, I hope to see more of him in the future!

  • @saeedmahmoodi7211
    @saeedmahmoodi7211 5 лет назад +3

    after 2 months of consusions
    i finally got it
    Geart job!

  • @YourCRTube
    @YourCRTube 5 лет назад +7

    Great talk. Both approachable and exhaustive.

  • @syedimadhaqqi4340
    @syedimadhaqqi4340 Год назад +2

    I cannot find the presentation material. Can you please advise a direct link. Thanks

  • @RyutlisWang
    @RyutlisWang Год назад

    Thank you Ben for such clear and thorough explanation of value categories, the best I have seen.

  • @ra1n_
    @ra1n_ 2 года назад +1

    1 hour just flew by
    Whatta teacher !

  • @shoulderstack5527
    @shoulderstack5527 Год назад +4

    I didn't know std::thread had the ++ operator.
    If C++ didn't exist, and someone said they had a great idea for a language, and described C++ as it is today, no one would take it seriously.
    This is no criticism of the speaker, who has done a great job.

  • @pawanadhikari110
    @pawanadhikari110 4 года назад +6

    The presentation content isn't available in the github .

  • @bboysil
    @bboysil 2 года назад

    Perfect introduction to value categories.

  • @guykeren9666
    @guykeren9666 Год назад

    Gifted! great talk, Helps to understand the basics (how much I didn't know)

  • @SirToxe
    @SirToxe 3 года назад +1

    Excellent talk by Ben.

  • @JasonMelton1
    @JasonMelton1 3 года назад +1

    Very helpful in untangling these concepts!

  • @unclechaelsneckvein
    @unclechaelsneckvein Год назад

    Exceptionally good presentation.

  • @RahulRahul-pi5fm
    @RahulRahul-pi5fm Год назад

    Thank you Ben for the presentation.

  • @tourdesource
    @tourdesource Год назад

    Clear as water now, thank you Ben!

  • @zehaia
    @zehaia 2 года назад

    Best explanation of this subject out there.

  • @aftostok6080
    @aftostok6080 Год назад +1

    This is great.

  • @NonTwinBrothers
    @NonTwinBrothers 9 месяцев назад

    48:45 Alright I'll admit. Intentional or not, that one made me laugh

  • @janpapaj4373
    @janpapaj4373 2 года назад +1

    Superb lecture!

    • @CppCon
      @CppCon  2 года назад

      Glad it was helpful!

  • @qasimijaz1664
    @qasimijaz1664 Год назад

    what a great talk, thanks Ben

  • @manuvaad
    @manuvaad 2 года назад +1

    Great talk!

  • @kweqkweq
    @kweqkweq Год назад

    Great talk. Very helpful

  • @konradkomisarczyk396
    @konradkomisarczyk396 2 года назад

    Loved the talk

  • @paulozhang9346
    @paulozhang9346 3 года назад +2

    Amazing, thanks man.

    • @CppCon
      @CppCon  3 года назад +2

      Glad you liked it!

  • @marketqueue8562
    @marketqueue8562 5 лет назад

    Thanks.... Cleared all my confusion...

  • @kirillspiridonov1878
    @kirillspiridonov1878 Месяц назад

    I can't find presentation
    Where is it?

  • @anatheistsopinion9974
    @anatheistsopinion9974 4 года назад

    Beyond excellent!

  • @liveonphoenix5045
    @liveonphoenix5045 2 года назад

    @43:08, I don't understand the 'move' assignment overloaded operator that accepts 'rval' or 'temp-val', it is said that it will delete both previous 'lval' that became 'rval' or 'temp-val', whereupon both 's2' and 's3' become 'nullptr'? By moving, do they also mean emptying those two objects?

    • @liveonphoenix5045
      @liveonphoenix5045 2 года назад

      Oh, I see, only use move semantic if we know the `src` is no longer required. As a reminder, never miss an excellent talk/seminar/lecture, Keep watching until the end.

  • @nguyendaison27
    @nguyendaison27 2 года назад

    Thank you.

    • @CppCon
      @CppCon  2 года назад

      You're welcome!

  • @Sabinagirl164
    @Sabinagirl164 4 года назад

    Great talk

  • @hanzheng173
    @hanzheng173 4 года назад

    very helpful, thanks.

  • @abdelrhmanahmed1378
    @abdelrhmanahmed1378 4 года назад

    int x = 6;
    int z = 10;
    int& p =x;
    p = 100;
    cout

    • @D0Samp
      @D0Samp 2 года назад +3

      Because the target of a reference is defined at assignment and does not change afterwards. "p = z" does not change the reference from x to z, it just assigns the value of z similar to "p = 100". The pointer equivalent looks like this:
      int * const p = &x;
      *p = 100;
      *p = z; // "p = &z" does not work, since the pointer address is const
      *p = 200;