Basic CPP support

Another prerequisite for implementing #136 completely.