cpp: make use of new base class and concepts across the board

- get rid of string table since we're not yet using it