adding compile++ ability and changing handling for tpl compile and this