Abstracting any part of code structure in C++ is a wasps nest that will attack you back.