std::basic_...:starts_with(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸ’– NAME πŸ’–

okay so this is the std::basic_...:starts_with(3) page from the C++ Standard Libary manual, and the title is std::basic_string_view::starts_with ✨

The NAME block is literally std::basic_string_view::starts_with - std::basic_string_view::starts_with β€” yes bestie, it repeats itself and honestly? iconic πŸ’…


πŸ”₯ SYNOPSIS πŸ”₯

constexpr bool starts_with( basic_string_view sv ) const noexcept;
(1) (since C++20)
constexpr bool starts_with( CharT ch ) const noexcept;
(2) (since C++20)
constexpr bool starts_with( const CharT* s ) const;
(3) (since C++20)

This function checks if the string view begins with the given prefix, where:

  1. the prefix is a string view. Effectively returns basic_string_view(data(), std::min(size(), sv.size())) == sv.
  2. the prefix is a single character. Effectively returns !empty() && Traits::eq(front(), ch).
  3. the prefix is a null-terminated character string. Effectively returns starts_with(basic_string_view(s)).

πŸŽ€ PARAMETERS πŸŽ€

  • sv β€” a string view which may be a result of implicit conversion from std::basic_string
  • ch β€” a single character
  • s β€” a null-terminated character string

🌈 RETURN VALUE 🌈

true if the string view begins with the provided prefix, false otherwise. periodt ✨

🧚 NOTES 🧚

Feature-test macro tea πŸ«–:

  • __cpp_lib_starts_ends_with
    • value: 201711L
    • Std: (C++20)
    • Feature: String prefix and suffix checking: starts_with() and ends_with()

πŸ“ EXAMPLE πŸ“

       // Run this code

        #include <cassert>
        #include <string_view>

        int main()
        {
            using namespace std::literals;

            assert
            (""
                // (1) starts_with( basic_string_view )
                && "https://cppreference.com"sv.starts_with("http"sv) == true
                && "https://cppreference.com"sv.starts_with("ftp"sv) == false

                // (2) starts_with( CharT )
                && "C++20"sv.starts_with('C') == true
                && "C++20"sv.starts_with('J') == false

                // (3) starts_with( const CharT* )
                && std::string_view("string_view").starts_with("string") ==
       true
                && std::string_view("string_view").starts_with("String") ==
       false
            );
        }

πŸ‘‘ SEE ALSO πŸ‘‘

  • ends_with β€” checks if the string view ends with the given suffix (C++20) (public member function)
  • starts_with β€” checks if the string starts with the given prefix (C++20) (public member function of std::basic_string<CharT,Traits,Allocator>)
  • ends_with β€” checks if the string ends with the given suffix (C++20) (public member function of std::basic_string<CharT,Traits,Allocator>)
  • contains β€” checks if the string contains the given substring or character (C++23) (public member function of std::basic_string<CharT,Traits,Allocator>)
  • contains β€” checks if the string view contains the given substring or character (C++23) (public member function)
  • compare β€” compares two views (public member function)

okay bestie that’s the whole page β€” source/version is http://cppreference.com, date 2024.06.10, and it’s the std::basic_...:starts_with(3) manual. slay and read your C++20 docs πŸ’–βœ¨

πŸ“¦ where this page comes from