use the isolated narrow and widen functions rather than including codecvt in all the files that need the functionality for windows support