I would remove std::string (and other templates) from the interface and would replace it with const char* when returning for example the file name, etc. I believe this might be problematic if one tries to link a debug library with the release version of the cppfs