- string_view[meta header]
- std[meta namespace]
- basic_string_view[meta class]
- function[meta id-type]
- cpp26[meta cpp]
constexpr basic_string_view<charT, traits>
subview(size_type pos = 0,
size_type n = npos) const;部分文字列を取得する。
本関数はsubstrと全く同じ動作である。std::stringとインターフェースを揃える目的で追加された。
指定された位置posからn文字からなる部分文字列を構築して返す。
size() - posとnうち、小さい方をrlenとし、basic_string_view(data() + pos, rlen)を返す。
pos > size()の場合、std::out_of_range例外を送出する。
#include <iostream>
#include <string_view>
int main()
{
std::string_view sv = "This is a pen";
std::string_view ret1 = sv.subview(5); // 5番目から最後までの文字列を取得
std::string_view ret2 = sv.subview(5, 2); // 5番目から2文字の文字列を取得
std::cout << "1 : [" << ret1 << ']' << std::endl;
std::cout << "2 : [" << ret2 << ']' << std::endl;
// subviewはデータを切り取るのではなく、参照位置と参照サイズを変更するだけなので、
// 生ポインタを介せば全体の文字列を復元することはできる。
const char* ret3 = ret1.data() - 5;
std::cout << "3 : [" << ret3 << ']' << std::endl;
}- subview[color ff0000]
- ret1.data()[link data.md]
1 : [is a pen]
2 : [is]
3 : [This is a pen]
- C++26
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??