Re: static class member as interrupt handler works, but not if class is templated
Russell Shaw <[email protected]> Sun, 11 Apr 2021 13:18:28 +1000
| Newsgroups | gmane.comp.hardware.avr.gcc |
|---|---|
| Message-ID | <[email protected]> |
On 11/4/21 8:36 am, Trampas Stern wrote: > Actually C++ is not slower or more bloat than C, depending on the features used. > > For example I do not use RTTI or exceptions, so that makes it about the same as > C for size. Yes you have to turn these features off in your compiler (-fno-rtti, > -fno-exceptions). Sure you have trampolines or jump tables for function > overloading but you have to do the same in C. If you do not use inheritance or > function overloading you do not have the penalty. Function overloading is a compile-time concept, but the result after name scope flattening are simple function names that are called without any extra pointer indirections (ie, no different than C). C++ is as efficient as C only if what is written translates to the equivalent form. This is easy to do, but only after a large hurdle of understanding how C++ compilers work. The biggest shortcoming in the C++ "industry" is that there is no literature i have seen that explains in a compact way how you can look at a piece of C++ code and see how it would translate to the equivalent assembly, which is the main advantage of C.