X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Ftrivstring.h;h=6b935eee02eb325ad6cbe200de1334ba29b91cf5;hb=9a1b26a156c913f484ca2293fb2ec1c4986d2a3e;hp=491546992e91e5fbae726dccc2e1b0281fdcf31f;hpb=83bee109db2f535b1a92b02eef811c1476d9f9cf;p=lyx.git diff --git a/src/support/trivstring.h b/src/support/trivstring.h index 491546992e..6b935eee02 100644 --- a/src/support/trivstring.h +++ b/src/support/trivstring.h @@ -39,18 +39,22 @@ namespace lyx { template class trivial_string { public: + /// Corresponding std::basic_string + typedef std::basic_string, std::allocator > _stdstring; /// Construct an empty string trivial_string() : size_(0), data_(0) {} /// Construct a string from a copy of \p that trivial_string(trivial_string const & that); /// Construct a string from a copy of \p that - trivial_string(std::basic_string, std::allocator > const & that); + trivial_string(Char const * that, size_t n); + /// Construct a string from a copy of \p that + trivial_string(_stdstring const & that); /// ~trivial_string() { if (!use_sso()) delete[] data_; } /// Assign a copy of \p that trivial_string & operator=(trivial_string const & that); /// Assign a copy of \p that - trivial_string & operator=(std::basic_string, std::allocator > const & that); + trivial_string & operator=(_stdstring const & that); /// Exchange contents with contents of \p that void swap(trivial_string & that); /// The length of the string, excluding the final 0 character @@ -59,11 +63,15 @@ public: bool empty() const { return size_ == 0; } /// Is this string ordered before, at the same position or after \p other? int compare(trivial_string const & other) const; + /// Return substring of length \p n starting at \p pos + trivial_string substr(size_t pos = 0, size_t n = _stdstring::npos) const; /// Create a copy as std::basic_string - operator std::basic_string, std::allocator >() const; + operator _stdstring() const; /// Return a C-compatible string, terminated by a 0 character. /// This is never a copy and only valid for the life time of the trivial_string instance. Char const * c_str() const; + /// Return character at position \p i (validity of \i is not checked) + Char operator[](size_t i) const; private: /** * Whether short string optimization is used. @@ -100,9 +108,9 @@ template bool operator==(Char const * lhs, trivial_string template std::basic_ostream > & operator<<(std::basic_ostream > &, trivial_string const &); + +} // namespace lyx #else #include #endif - -} // namespace lyx #endif