在 boost::filesystem::p ath 中"/"字符有什么用?
What is the use of the "/" character in boost::filesystem::path?
我在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(;
返回: *此
- 从字符数组的元素中减去'a'是什么意思
- 字符数组前面的加号是什么意思?
- 如果我在字符数组上使用 close() 会发生什么?
- 从 argv[1] 转换为字符 * 字符串后有什么问题?
- 常量字符*的性质是什么?
- "?"和":"字符在C++代码行中做什么
- 如果字符串在 C/C++ 中没有 NUL 字符(以防编译器允许它通过)会发生什么情况?
- 这段代码中的arr[s[i]-'a']有什么用,为什么我们用"a"减去所有字符?
- 在 boost::filesystem::p ath 中"/"字符有什么用?
- 字符 - 'pub' 在 std::streambuf::p ubsetbuf() 方法中是什么意思?
- 对于wchar_t,字符(0)或'