所以std :: map需要键入的键types,但我遇到了问题:
“a / b”<“a / c”<“a // b”但是fs :: equivalent(“a / b”,“a // b”)
“a / b”<“a / c”<“a \ b”但是fs :: equivalent(“a / b”,“a \ b”)
我如何正常化一条足以创buildsorting的path? 这甚至可能吗? 我尝试在自定义比较运算符中使用path :: generic_string(),但它不起作用。 fs :: equivalent()也没有帮助,因为对于std :: map来说实现相等是不够的,它需要一个sorting。 这也是为什么这个问题不是重复的原因如何使用boost :: filesystem“正常化”一个path名? 。
上下文:仅Windows,Boost 1.49,filesystem3。
为了使路径可比较,您需要将它们转换为规范表示形式,然后通过字符串进行比较。 规范化的路径是绝对的,规范化的,并删除了符号链接。 Boost提供了典型的AFAIK。 因为符号链接需要解决,调用规范需要访问文件系统。