#pragma once #include namespace mipt { class String; class StringView { private: const char* mpData; size_t mSize; public: StringView(); StringView(const StringView& str); StringView(const mipt::String& s); StringView(const char* s); const char& at(size_t i); const char& operator[](size_t i) const; bool operator<(const StringView& right) const; size_t size() const; StringView substr(size_t pos, size_t count); void remove_prefix(size_t n); void remove_suffix(size_t n); }; std::ostream& operator<<(std::ostream& out, const StringView& sv); }