__cxa_pure_virtual()
&
Undefined reference to operator delete(void*)
C++ Programming for MCUs such as the Atmel AVR family can be both very productive and also very frustrating as one learns to work without libstdc++ when using certain MCU toolchains e.g.
- C++ AVR Studio
- C++ avr-gcc
- C++ Arduino
Whilst it is generally well known that the MCU programmer must provide their own versions of new and delete[1] it is less well known that the C++ programmer using pure virtual member functions must provide an implementation for __cxa_purevirtual() or face some very confusing errors!
Depeding on toolchain the programmer may be lucky and be notified:
undefined reference to `__cxa_pure_virtual'