我在C++程序中遇到了这一行,但不明白如何使用"/"或为什么使用。 有什么建议吗?
boost::filesystem::p ath pathLockFile = GetDataDir((/".lock";
这是运算符重载的简单情况。
对于类型path
的对象,operator/
已重载。
当您对boost::filesystem::path
对象使用/
时,它会追加它们。
所以当你写:boost::filesystem::path pathLockFile = GetDataDir() / ".lock";
它扩展为以下内容:boost::filesystem::path pathLockFile = boost::filesystem::path("/tmp/data") / ".lock";
假设GetDataDir()
在类似Unix/Linux的环境中作为boost::filesystem::path
返回/tmp/data
。在类似Windows的系统中,答案会有所不同。
这进一步扩展到:boost::filesystem::path pathLockFile = boost::filesystem::path("/tmp/data") / boost::filesystem::path(".lock");
最后,你得到pathLockFile
持有价值/tmp/data/.lock
阅读来自 Boost 文件系统和路径的文档
path operator/(const path&lhs, const path&rhs(;
返回: 路径(lhs(/= rhs.
路径追加
追加操作使用运算符/= 来表示在需要时追加平台首选目录分隔符的语义效果。
首选目录分隔符是实现定义的。
/(正斜杠(分隔符 => 表示 unix 变体、Linux 和 Mac OS X
\(反斜杠(分隔符 => 表示类似 Windows 的实现
path& operator/=(const path&p(;
返回: *此