std::experimental::filesystem::path::concat, std::experimental::filesystem::path::operator+=

来自cppreference.com
< cpp‎ | experimental‎ | fs‎ | path
 
 
实验性
技术规范
文件系统库 (文件系统 TS)
库基础 (库基础 TS)
库基础 2 (库基础 TS v2)
库基础 3 (库基础 TS v3)
并行扩展 (并行 TS)
并行扩展 2 (并行 TS v2)
并发扩展 (并发 TS)
并发扩展 2 (并发 TS v2)
概念 (概念 TS)
范围 (范围 TS)
反射 (反射 TS)
数学特殊函数 (特殊函数 TR)
实验性非 TS 功能特性
模式匹配
线性代数
std::execution
契约
2D 图形
 
 
 
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)

接合当前路径和实参。

1) 接合 *thisp,使得结果的 native() 严格为原 native()p.native() 的接合。
2)(1) 相同,但所得的 native() 为原 native() 和字符串 str 的接合。
3)(1) 相同,但所得的 native() 为原 native() 和由 ptr 指向首字符的空终止字符串的接合。
4)(1) 相同,但所得的 native() 为原 native() 和单个字符 x 的接合。
5)(1) 相同,但所得的 native() 为原 native() 和以 source 表示的序列(可以为可移植或原生格式)的接合,source 可以是 std::basic_string,空终止多字符字符串,或指向空终止多字符序列的输入迭代器。
6)(4) 相同,但可能实施字符转换。
7)(5) 相同。
8)(5) 相同,但以代表多字符字符串的任何迭代器对来表示序列。

参数

p - 要追加的路径
str - 要追加的字符串
ptr - 指向要追加的空终止字符串的开头的指针
x - 要追加的单个字符
source - std::basic_string,空终止多字符字符串,或指向空终止多字符序列的输入迭代器,表示路径名(可移植或原生格式)
first, last - 一对老式输入迭代器 (LegacyInputIterator) ,指定表示路径名的多字符序列
类型要求
-
InputIt 必须满足老式输入迭代器 (LegacyInputIterator)
-
InputIt 的值类型必须为编码字符类型(charwchar_tchar16_tchar32_t)之一。
-
CharT 必须为编码字符类型(charwchar_tchar16_tchar32_t)之一。

返回值

*this

异常

在发生底层 OS API 错误时可能抛出 filesystem_error,或若发生内存分配失败可能抛出 std::bad_alloc

注解

append()operator/= 不同,从不引入额外的目录分隔符。

示例

#include <experimental/filesystem>
#include <iostream>
namespace fs = std::experimental::filesystem;
 
int main()
{
    fs::path p1; // 空路径
    p1 += "var"; // 不插入分隔符
    std::cout << "\"\" + \"var\" == " << p1 << '\n';
    p1 += "lib"; // 不插入分隔符
    std::cout << "\"\" + \"var\" + \"lib\" == " << p1 << '\n';
}

输出:

"" + "var" == "var"
"" + "var" + "lib" == "varlib"

参阅

向路径追加元素
(公开成员函数)
以一个目录分隔符连接两个路径
(函数)