Excellent presenter. Clearly has a deep understanding of the subject and conveys the knowledge really well. Shall look out for more of his presentations.
Watching c++ videos makes me appreciate how well TCL in particular uses brackets so nicely, there's no confusion about which relates to what, without overlapping meaning...
Fantastic talk! Was able to not only teach one topic very clearly, but also touch on other topics of C++ programming without confusing and distracting the audience.
This is really good. There are a lot of talks and blogs, etc. etc. about templates which would be great if you have already watched this one and learned everything in it, but are terrible icy lakes to jump into from scratch.
Very good presentation on template basics. I liked how typename is introduced part and the specialization materials. I found most tutorials will skip these basics.
It could use improvement, but not bad. I did learn a couple things about modern C++, that I did not know about. The piece towards the end about comparing those character array pointers was not correct though. The stack starts at a high address and each subsequent item pushed on it has a lower address. So the address of array starting with 'N' is actually higher. As a concept explanation it my not seem important, but in the real world it can be very important.
Fun fact: standard C++ (and C) deliberately say absolutely nothing about the direction of the stack. It can be either and some architectures, like ARM, it is selectable. If you think knowing the direction of the stack is important (which it is) you will also definitely want to know this: the compiler in standard C++ (and C) is at liberty to rearrange your variables on the stack! The order you write them in your source code is not the order it has to allocate them. We should forget the stack though, that example did not specifiy if the pointers where even on the stack and that certainly was not the point of the example.
56:58 Functions have external linkage by default, I think we can do the same with explicit specialization declaration like this: main.cpp // **************** #include "f.hpp" template void f(); int main() { f(); return 0; } // **************** f.cpp // **************** #include "f.hpp" template void f() { cout
Would it compile from slide 85 ? npos is typically size_t constant with max or -1 (e.g. for std::string) so we are trying to init pointer to size_t (typename T::size_type *) with size_t constant(T::npos) here I guess. But I might be wrong of course.
He is an excellent teacher, each slide is explained concisely and clearly and he gives you time for the point to sink
We need a Dan Saks for everything.
47:31 It is a simple fact about why we need "typename". His way of explanation is very enlightening. I wish I could see it earlier.
Back to Basics is the best learning material for C++ that I found on the RUclips.
Thank you for letting us know that you find the Back to Basics track very educational.
Excellent presenter. Clearly has a deep understanding of the subject and conveys the knowledge really well. Shall look out for more of his presentations.
This presentation from Dan Saks, is the best intro to Templates. Thanks a lot.
Glad you like it!
Watching c++ videos makes me appreciate how well TCL in particular uses brackets so nicely, there's no confusion about which relates to what, without overlapping meaning...
Just few minutes and I am so much confident that he is a proficient teacher .. thanks for sharing your wisdom 🙏
Glad to hear that
Fantastic talk! Was able to not only teach one topic very clearly, but also touch on other topics of C++ programming without confusing and distracting the audience.
Thank you so much for your comment!
i love it, one is really rewarded for concentrated listening here because he grasps it so well in "each sentence"
One of the best talks I've heard on templates! Very concisely explained
This is really good. There are a lot of talks and blogs, etc. etc. about templates which would be great if you have already watched this one and learned everything in it, but are terrible icy lakes to jump into from scratch.
Nice analogy dude
Excellent, I am his fan since 2001 when I started reading his articles in ESP magazine.
Nice talk, well explained, thank you. Thank you also CppCon for providing these great videos, much appreciated!
Excellent presentation on templates, I learned a lot!
These lectures are invaluable. Nice presentation.
Very good presentation on template basics. I liked how typename is introduced part and the specialization materials. I found most tutorials will skip these basics.
Boy, what a great presentation!
Glad you liked it!
Excellent teacher and clear explanation thanks!
Very clear explanation of a tricky feature.
It's really good explanation. Covered all basic aspects! Thanks!
Glad it was helpful!
After two presentations for this Prof, i am starting to see oop more clearly... thanks!
If I ever meet Mr Saks on the street I'll give him a hug
clear and concise. thank you!
You're welcome!
This presenter is superb!
Very good tutorial, I can see his passion for it. Thanks, bro!
It could use improvement, but not bad. I did learn a couple things about modern C++, that I did not know about.
The piece towards the end about comparing those character array pointers was not correct though. The stack starts at a high address and each subsequent item pushed on it has a lower address. So the address of array starting with 'N' is actually higher. As a concept explanation it my not seem important, but in the real world it can be very important.
Fun fact: standard C++ (and C) deliberately say absolutely nothing about the direction of the stack. It can be either and some architectures, like ARM, it is selectable. If you think knowing the direction of the stack is important (which it is) you will also definitely want to know this: the compiler in standard C++ (and C) is at liberty to rearrange your variables on the stack! The order you write them in your source code is not the order it has to allocate them.
We should forget the stack though, that example did not specifiy if the pointers where even on the stack and that certainly was not the point of the example.
Amazing!
Thanks!
Clear and concise
Awesome video!!!!
Glad you enjoyed it
56:58
Functions have external linkage by default, I think we can do the same with explicit specialization declaration like this:
main.cpp
// ****************
#include "f.hpp"
template void f();
int main()
{
f();
return 0;
}
// ****************
f.cpp
// ****************
#include "f.hpp"
template void f()
{
cout
58:19 wouldn't that throw an error? Early on in the presentation he said return types are not deduced and need to be specialized at declaration.
1:01:15 terminology specialization and instantiation
great!
Nice and simple, now I understand template, just that him checking his time so often is kind of odd lol.
where the slide
Would it compile from slide 85 ? npos is typically size_t constant with max or -1 (e.g. for std::string) so we are trying to init pointer to size_t (typename T::size_type *) with size_t constant(T::npos) here I guess. But I might be wrong of course.