What's the deal with C++ templates? I'm looking for explanatory videos on it that is reasonably well produced (not some enthusiastic dude rambling to a screen recording) Doesn't have to be a video though if it's well written. All explanations I've found so far don't give me any reason of why to use them at all (instead for instance method overloading) Some time I'd need to for instance loads of static data that I could define by hand but still would like to take advantage of encapsulating things that resemble state machines in classes. I use C++ for microcontrollers, never on a PC and some times access to hardware can't be done inside a class the straight forward way, like storing pointers to a hardware pin, timer register, etc... inside anything non-static.