Replaced the macro gets with templates; added the cstring type