constexpr bool starts_with(basic_string_view x) const noexcept; // (1)
constexpr bool starts_with(CharT x) const noexcept; // (2)
constexpr bool starts_with(const CharT* x) const; // (3)
概要
指定の文字列で始まるかを判定する。
- (1) :
*this
が参照する文字列範囲の先頭が、x
が参照する文字列範囲と一致するかを判定する - (2) :
*this
が参照する文字列範囲の先頭が、文字x
と一致するかを判定する - (3) :
*this
が参照する文字列範囲の先頭が、文字列x
と一致するかを判定する
戻り値
-
(1) : 以下と等価である
-
(2) : 以下と等価である
return !empty() && Traits::eq(front(), x);
-
(3) : 以下と等価である
return starts_with(basic_string_view(x));
例外
- (1), (2) : 投げない
例
#include <cassert>
#include <string_view>
int main()
{
const std::string_view sv = "aaabbbcccdddeee";
// (1)
{
std::string_view svx = "aaa";
assert(sv.starts_with(svx));
}
// (2)
{
assert(sv.starts_with('a'));
}
// (3)
{
assert(sv.starts_with("aaa"));
}
}
出力
バージョン
言語
- C++20
処理系
- Clang: 7.0 ✅
- GCC: 9.1 ✅
- Visual C++: ??