简而言之......在我的应用程序中,我们使用boost::filesystem::path
了很多。它通常工作得很好,除非有人决定很可爱并在 Windows 中引用非 unicode 文件名(例如,由于某种原因我无法理解,有人有 Shift-JIS 文件名)。
俗话说,无知是幸福,在我看来,我想我可以通过做一些类似的事情来解决这个问题(顺便说一句,这是否有意义?):
namespace fs = boost::filesystem;
class utf8Path : public fs::path {
public:
utf8Path () : fs::path () {};
utf8Path (std::string path) : fs::path(UnicodeUtil::convertToUTF8(path)) {};
}
当然,我并没有考虑到所有各种分配和此类运算符。
假设我上面写的内容是有意义的并且没有损坏代码......是否可以将这种方法扩展到其他版本的构造函数、赋值运算符等?