namespace std {
wchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n);
}
概要
領域が重なっていてもよい形で、指定した文字数のワイド文字をコピーする。
効果
s2が指す領域からn文字を、s1が指す領域へコピーする。2つの領域が重なっていても、s2の内容をいったん一時領域へ複製したかのように正しくコピーされる。
戻り値
s1を返す。
備考
- この関数は、C++26からフリースタンディング処理系でも使用できる
例
#include <cwchar>
#include <iostream>
int main()
{
wchar_t buffer[8] = L"abcdef";
// 領域が重なっていても正しくコピーされる
std::wmemmove(buffer + 1, buffer, 5);
std::wcout << buffer << std::endl;
}
出力
aabcde
バージョン
言語
- C++98
関連項目
wmemcpystd::memmove(): バイト単位版
参照
- P2338R4 Freestanding Library: Character primitives and the C library
- C++26で、この関数がフリースタンディング処理系で使用可能になった