std::char_traits<char>::move, std::char_traits<wchar_t>::move, std::char_traits<char8_t>::move, std::char_traits<char16_t>::move, std::char_traits<char32_t>::move
From cppreference.com
< cpp | string | char traits
| static char_type* move( char_type* dest, const char_type* src, std::size_t count ); |
(C++20 以降 constexpr) | |
指定されたcount文字を、srcが指す文字シーケンスからdestが指す文字シーケンスにコピーします。
[src, src + count) および [dest, dest + count) の範囲が重複している場合でも、正しく動作します。
X::moveに対する文字トレイトの一般的な要件については、CharTraitsを参照してください。
目次 |
[編集] パラメータ
| dest | - | コピー先の文字シーケンスへのポインタ |
| src | - | コピー元の文字シーケンスへのポインタ |
| count | - | コピーする文字数 |
[編集] 返り値
dest
[編集] 例外
何もスローしません。
[編集] 計算量
count に対して線形。
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 7 | C++98 | コピーが正しく行われることが保証されていたのは、[dest, dest + count) に [src, src + count) が含まれる場合のみで、その逆(すなわち [src, src + count) に [dest, dest + count) が含まれる場合)はそうではなかった。逆の場合(すなわち [dest, dest + count) に [src, src + count) が含まれる場合) |
こちらも保証されていました。 |