std::filesystem::path:: concat, std::filesystem::path:: operator+=
|
path
&
operator
+
=
(
const
path
&
p
)
;
|
(1) | (depuis C++17) |
|
path
&
operator
+
=
(
const
string_type
&
str
)
;
path & operator + = ( std:: basic_string_view < value_type > str ) ; |
(2) | (depuis C++17) |
|
path
&
operator
+
=
(
const
value_type
*
ptr
)
;
|
(3) | (depuis C++17) |
|
path
&
operator
+
=
(
value_type x
)
;
|
(4) | (depuis C++17) |
|
template
<
class
CharT
>
path & operator + = ( CharT x ) ; |
(5) | (depuis C++17) |
|
template
<
class
Source
>
path & operator + = ( const Source & source ) ; |
(6) | (depuis C++17) |
|
template
<
class
Source
>
path & concat ( const Source & source ) ; |
(7) | (depuis C++17) |
|
template
<
class
InputIt
>
path & concat ( InputIt first, InputIt last ) ; |
(8) | (depuis C++17) |
Concatène le chemin actuel et l'argument
(6)
et
(7)
participent à la résolution de surcharge uniquement si
Source
et
path
ne sont pas du même type, et soit :
-
Sourceest une spécialisation de std::basic_string ou std::basic_string_view , ou - std:: iterator_traits < std:: decay_t < Source >> :: value_type est valide et désigne un type de caractère d'encodage éventuellement qualifié const ( char , char8_t , (depuis C++20) char16_t , char32_t , ou wchar_t ).
Table des matières |
Paramètres
| p | - | chemin à ajouter |
| str | - | chaîne ou vue de chaîne à ajouter |
| ptr | - | pointeur vers le début d'une chaîne terminée par un caractère nul à ajouter |
| x | - | caractère unique à ajouter |
| source | - | std::basic_string , std::basic_string_view , chaîne multicaractère terminée par un caractère nul, ou un itérateur d'entrée pointant vers une séquence multicaractère terminée par un caractère nul, qui représente un nom de chemin (soit en format portable, soit en format natif) |
| first, last | - | paire d' LegacyInputIterator s qui spécifie une séquence multicaractère représentant un nom de chemin |
| Exigences de type | ||
-
InputIt
doit satisfaire aux exigences de
LegacyInputIterator
.
|
||
-
InputIt
doit être l'un des types de caractères encodés (
char
,
wchar_t
,
char16_t
et
char32_t
).
|
||
-
CharT
doit être l'un des types de caractères encodés (
char
,
wchar_t
,
char16_t
et
char32_t
).
|
||
Valeur de retour
* this
Exceptions
Peut lever std:: bad_alloc si l'allocation de mémoire échoue.
Notes
Contrairement à append() ou operator/= , les séparateurs de répertoire supplémentaires ne sont jamais introduits.
Exemple
#include <filesystem> #include <iostream> #include <string> int main() { std::filesystem::path p1; // un chemin vide p1 += "var"; // n'insère pas de séparateur std::cout << R"("" + "var" --> )" << p1 << '\n'; p1 += "lib"; // n'insère pas de séparateur std::cout << R"("var" + "lib" --> )" << p1 << '\n'; auto str = std::string{"1234567"}; p1.concat(std::begin(str) + 3, std::end(str) - 1); std::cout << "p1.concat --> " << p1 << '\n'; }
Sortie :
"" + "var" --> "var" "var" + "lib" --> "varlib" p1.concat --> "varlib456"
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Applicable à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 3055 | C++17 | la spécification de concaténation d'un seul caractère était mal formée | rendue bien formée |
| LWG 3244 | C++17 |
la contrainte que
Source
ne peut pas être
path
était manquante
|
ajoutée |
Voir aussi
|
ajoute des éléments au chemin avec un séparateur de répertoire
(fonction membre publique) |
|
|
(C++17)
|
concatène deux chemins avec un séparateur de répertoire
(fonction) |