std::experimental::filesystem::path::concat, std::experimental::filesystem::path::operator+=
来自 cppreference.com
< cpp | experimental | fs | path
path& operator+=( const path& p ); |
(1) | (文件系统 TS) |
path& operator+=( const string_type& str ); |
(2) | (文件系统 TS) |
path& operator+=( const value_type* ptr ); |
(3) | (文件系统 TS) |
path& operator+=( value_type x ); |
(4) | (文件系统 TS) |
template< class Source > path& operator+=( const Source& source ); |
(5) | (文件系统 TS) |
template< class CharT > path& operator+=( CharT x ); |
(6) | (文件系统 TS) |
template< class Source > path& concat( const Source& source ); |
(7) | (文件系统 TS) |
template< class InputIt > path& concat( InputIterator first, InputIterator last ); |
(8) | (文件系统 TS) |
连接当前路径和参数。
5) 与 (1) 相同,只是产生的 native() 是原始 native() 和由 source 表示的序列(可以是可移植格式或本地格式)的连接,它可以是 std::basic_string、空终止多字符字符串,或指向空终止多字符序列的输入迭代器。
6) 与 (4) 相同,只是可能执行字符转换。
7) 与 (5) 相同。
8) 与 (5) 相同,只是序列由任何指定多字符字符串的迭代器对表示。
内容 |
[编辑] 参数
p | - | 要附加的路径 |
str | - | 要附加的字符串 |
ptr | - | 指向要附加的空终止字符串开头的指针 |
x | - | 要附加的单个字符 |
source | - | std::basic_string、空终止多字符字符串,或指向空终止多字符序列的输入迭代器,它表示一个路径名(可以是可移植格式或本地格式) |
first, last | - | 一对LegacyInputIterators,指定一个代表路径名的多字符序列。 |
类型要求 | ||
-InputIt 必须满足 LegacyInputIterator 的要求。 | ||
-InputIt 的值类型必须是编码字符类型之一(char、wchar_t、char16_t 和 char32_t)。 | ||
-CharT 必须是编码字符类型之一(char、wchar_t、char16_t 和 char32_t)。 |
[编辑] 返回值
*this
[编辑] 异常
可能会抛出 filesystem_error,原因可能是底层操作系统 API 错误或 std::bad_alloc,如果内存分配失败。
[编辑] 备注
与 append() 或 operator/= 不同,永远不会引入额外的目录分隔符。
[编辑] 示例
运行此代码
#include <experimental/filesystem> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::path p1; // empty path p1 += "var"; // does not insert a separator std::cout << "\"\" + \"var\" == " << p1 << '\n'; p1 += "lib"; // does not insert a separator std::cout << "\"\" + \"var\" + \"lib\" == " << p1 << '\n'; }
输出
"" + "var" == "var" "" + "var" + "lib" == "varlib"
[编辑] 参见
将元素追加到路径中 (公有成员函数) | |
用目录分隔符连接两个路径 (函数) |