Excellent explanations and good support slides! Thank you.
@markf59313 жыл бұрын
My first video of this series, but this is the best combination of conciseness and depth for any C++ learning on yt. Well done!
@CopperSpice3 жыл бұрын
Creating this video was a challenge but really worth the effort. Defining all these pieces takes a lot of time. We hope you enjoy the other videos.
@Luca-hn2ml5 жыл бұрын
Very explicit, clear and detailed. Awesome!
@elyxthelynx4 жыл бұрын
These are very informative videos! Thank you so much!
@hankhuang4714 Жыл бұрын
Thanks for the good video! For 13:10, when you explain the value category of Widget && args, I think it should be rvalue. Since you pass it with a move, and move is to cast it into a rvalue reference, which I think the value it self should be rvalue? Or it should be it original value category before it cast by std::move()? Thanks.
@CopperSpice Жыл бұрын
Nope, the parameter "arg" has a value category of lvalue as we stated in the video. There are two ampersands in the function declaration because we are receiving an argument that was passed as an rvalue. This is the surprising place where an rvalue is bound to "an rvalue reference" and then becomes an lvalue since it now has a name.
@zsoltory41765 жыл бұрын
I like your videos, and use them as an excellent source to learn C++ in depth and to deepen my knowledge. Let me share an example. The following example may be useful to understand and teach the difference between left value references and right value references. Left value references correspond to symbolic links in a filesystem, since they refer to the name of a file. In contrast right-value references correspond to hard links, since they refer to the content (in UNIX-based Operating Systems, this is normally the inode) of a file. Thus left value references live in a filesystem's NAMEspace, whereas right value references live in the space of the named objects.
@CopperSpice5 жыл бұрын
We are very happy to hear that our videos are helping you understand C++. As a suggestion please be aware there are no such terms as "left value reference" or "right value reference" in the standard. The correct terminology is lvalue reference and rvalue reference. These are always in lower case and there is no dash. Your analogy is interesting however it does not represent C++ references accurately. I agree that a symbolic link can associate filename A with filename B. This is not how references work since symbols do not exist at run time, they are fully resolved at link time. A C++ reference of any kind, whether it is an lvalue or an rvalue, refers to a particular object never a name.
@المعلمليوناردو6 жыл бұрын
very nice please Dont Stop
@davidnguyen90232 жыл бұрын
Thank you for explaining perfect forwarding!
@thomasdaurel95813 жыл бұрын
Very clear, thank you
@peperudpeperudski19113 жыл бұрын
Very well done! I feel however, the move semantics were barely mentioned, and need quite a bit more depth.
@CopperSpice3 жыл бұрын
Can you let us know what questions you have related to move semantics? We may be able to answer your questions or direct you to another video we have done.