- string_view[meta header]
- std[meta namespace]
- basic_string_view[meta class]
- function[meta id-type]
- cpp17[meta cpp]
size_type copy(CharT* s, size_type n, size_type pos = 0) const; // C++17
constexpr size_type copy(CharT* s, size_type n, size_type pos = 0) const; // C++20
他の文字列に、自身の文字列をコピーする。
n
とsize()
- pos
のうち、小さい方をrlen
とする。
[s, s + rlen)
が妥当な範囲であり、その範囲内の要素にアクセスできること
以下と等価の処理を行う:
Traits::copy(s, data() + pos, rlen);
- copy[link /reference/string/char_traits/copy.md]
- data()[link data.md]
rlen
pos >
size()
の場合、std::out_of_range
例外を送出する。
#include <iostream>
#include <string_view>
int main()
{
const std::string_view sv = "hello";
// 全体をコピーする
{
char result[5 + 1] = {};
sv.copy(result, 5);
std::cout << result << std::endl;
}
// 先頭3要素だけコピーする
{
char result[3 + 1] = {};
sv.copy(result, 3);
std::cout << result << std::endl;
}
// 2番目以降の要素をコピーする
{
char result[3 + 1] = {};
sv.copy(result, 3, 2);
std::cout << result << std::endl;
}
}
- copy[color ff0000]
hello
hel
llo
- C++17
- Clang: 4.0 [mark verified]
- GCC: 7.1 [mark verified]
- ICC: ??
- Visual C++: ??