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

แชร์
ฝัง

ความคิดเห็น • 53

  • @pmcgee003
    @pmcgee003 4 ปีที่แล้ว +37

    TFW your Basics lecture includes the term Temporary Materialisation Conversion.

  • @lsmgeb89
    @lsmgeb89 3 ปีที่แล้ว +39

    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

  • @jiaweihe1244
    @jiaweihe1244 ปีที่แล้ว +3

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

  • @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!

  • @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.

  • @syedimadhaqqi4340
    @syedimadhaqqi4340 10 หลายเดือนก่อน +2

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

  • @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.

  • @pawanadhikari110
    @pawanadhikari110 4 ปีที่แล้ว +6

    The presentation content isn't available in the github .

  • @koustavchowdhury8210
    @koustavchowdhury8210 12 วันที่ผ่านมา +1

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

  • @orlando7448
    @orlando7448 4 ปีที่แล้ว +13

    Mr Ben Saks is a gifted teacher!

  • @mikkqu
    @mikkqu 4 ปีที่แล้ว +7

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

  • @gustafbstrom
    @gustafbstrom 11 หลายเดือนก่อน +2

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

  • @YourCRTube
    @YourCRTube 5 ปีที่แล้ว +7

    Great talk. Both approachable and exhaustive.

  • @NonTwinBrothers
    @NonTwinBrothers 8 หลายเดือนก่อน

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

  • @furuame
    @furuame 2 หลายเดือนก่อน +1

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

  • @kamilziemian995
    @kamilziemian995 ปีที่แล้ว +1

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

  • @saeedmahmoodi7211
    @saeedmahmoodi7211 4 ปีที่แล้ว +3

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

  • @DominoPivot
    @DominoPivot 3 ปีที่แล้ว +1

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

  • @aftostok6080
    @aftostok6080 11 หลายเดือนก่อน +1

    This is great.

  • @ra1n_
    @ra1n_ 2 ปีที่แล้ว +1

    1 hour just flew by
    Whatta teacher !

  • @JasonMelton1
    @JasonMelton1 2 ปีที่แล้ว +1

    Very helpful in untangling these concepts!

  • @TernaryHound
    @TernaryHound 8 หลายเดือนก่อน

    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!

  • @guykeren9666
    @guykeren9666 ปีที่แล้ว

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

  • @toolmanp3885
    @toolmanp3885 ปีที่แล้ว

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

  • @RyutlisWang
    @RyutlisWang ปีที่แล้ว

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

  • @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.

  • @kamilziemian995
    @kamilziemian995 ปีที่แล้ว

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

  • @paulozhang9346
    @paulozhang9346 3 ปีที่แล้ว +2

    Amazing, thanks man.

    • @CppCon
      @CppCon  3 ปีที่แล้ว +2

      Glad you liked it!

  • @kamilziemian995
    @kamilziemian995 ปีที่แล้ว

    I should watch all Ben Saks talks avaliable online.

  • @SirToxe
    @SirToxe 3 ปีที่แล้ว +1

    Excellent talk by Ben.

  • @unclechaelsneckvein
    @unclechaelsneckvein 10 หลายเดือนก่อน

    Exceptionally good presentation.

  • @zehaia
    @zehaia ปีที่แล้ว

    Best explanation of this subject out there.

  • @manuvaad
    @manuvaad 2 ปีที่แล้ว +1

    Great talk!

  • @RahulRahul-pi5fm
    @RahulRahul-pi5fm ปีที่แล้ว

    Thank you Ben for the presentation.

  • @tourdesource
    @tourdesource ปีที่แล้ว

    Clear as water now, thank you Ben!

  • @bboysil
    @bboysil 2 ปีที่แล้ว

    Perfect introduction to value categories.

  • @janpapaj4373
    @janpapaj4373 2 ปีที่แล้ว +1

    Superb lecture!

    • @CppCon
      @CppCon  2 ปีที่แล้ว

      Glad it was helpful!

  • @kweqkweq
    @kweqkweq ปีที่แล้ว

    Great talk. Very helpful

  • @qasimijaz1664
    @qasimijaz1664 ปีที่แล้ว

    what a great talk, thanks Ben

  • @hanzheng173
    @hanzheng173 4 ปีที่แล้ว

    very helpful, thanks.

  • @marketqueue8562
    @marketqueue8562 5 ปีที่แล้ว

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

  • @konradkomisarczyk396
    @konradkomisarczyk396 2 ปีที่แล้ว

    Loved the talk

  • @anatheistsopinion9974
    @anatheistsopinion9974 4 ปีที่แล้ว

    Beyond excellent!

  • @Sabinagirl164
    @Sabinagirl164 4 ปีที่แล้ว

    Great talk

  • @nguyendaison27
    @nguyendaison27 2 ปีที่แล้ว

    Thank you.

    • @CppCon
      @CppCon  2 ปีที่แล้ว

      You're welcome!

  • @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;

  • @dickpiano1802
    @dickpiano1802 ปีที่แล้ว +3

    When people, who want to make things more complex, so others will be in awe get together you get the C++ universe.