最終更新日時: 2026年07月22日 16時08分23秒 (JST)
rotarymars が更新

履歴 編集

function
<string>

# std::basic_string::starts_with(C++20)

    constexpr bool
      starts_with(std::basic_string_view<charT, traits> x) const noexcept; // (1) C++20
    constexpr bool
      starts_with(charT x) const noexcept;                                 // (2) C++20
    constexpr
      bool starts_with(const charT* x) const;                              // (3) C++20

## 概要

指定の文字列で始まるかを判定する。

- (1) : `*this`が保持する文字列の先頭が、`x`が参照する文字列範囲と一致するかを判定する
- (2) : `*this`が保持する文字列の先頭が、文字`x`と一致するかを判定する
- (3) : `*this`が保持する文字列の先頭が、文字列`x`と一致するかを判定する

## 戻り値

以下と等価である：

    return std::basic_string_view<charT, traits>(data(), size()).starts_with(x);

## 例外

- (1), (2) : 投げない

## 例

    #include <cassert>
    #include <string>
    #include <string_view>

    int main()
    {
      const std::string s = "aaabbbcccdddeee";

      // (1)
      {
        std::string_view sv = "aaa";
        assert(s.starts_with(sv));
      }

      // (2)
      {
        assert(s.starts_with('a'));
      }

      // (3)
      {
        assert(s.starts_with("aaa"));
      }
    }

### 出力

## バージョン

### 言語

- C++20

### 処理系

- Clang: 7.0 ✅
- GCC: 9.1 ✅
- Visual C++: 2019 update 1 ✅

## 参照

- P0457R2 String Prefix and Suffix Checking
- P0980R1 Making `std::string` constexpr