boost::log::basic_string_literal — String literal wrapper.
// In header: <boost/log/utility/string_literal.hpp> template<typename CharT, typename TraitsT = std::char_traits< CharT > > class basic_string_literal { public: // types typedef CharT value_type; typedef TraitsT traits_type; typedef std::size_t size_type; typedef std::ptrdiff_t difference_type; typedef const value_type * const_pointer; typedef value_type const & const_reference; typedef const value_type * const_iterator; typedef std::reverse_iterator< const_iterator > const_reverse_iterator; typedef std::basic_string< value_type, traits_type > string_type; // Corresponding STL string type. // construct/copy/destruct basic_string_literal(); template<typename T, size_type LenV> basic_string_literal(T(&)); basic_string_literal(basic_string_literal const &); basic_string_literal& operator=(this_type const &); template<typename T, size_type LenV> basic_string_literal& operator=(T(&)); // public member functions bool operator==(this_type const &) const; bool operator==(const_pointer) const; bool operator==(string_type const &) const; bool operator<(this_type const &) const; bool operator<(const_pointer) const; bool operator<(string_type const &) const; bool operator>(this_type const &) const; bool operator>(const_pointer) const; bool operator>(string_type const &) const; const_reference operator[](size_type) const; const_reference at(size_type) const; const_pointer c_str() const; const_pointer data() const; size_type size() const; size_type length() const; bool empty() const; const_iterator begin() const; const_iterator end() const; const_reverse_iterator rbegin() const; const_reverse_iterator rend() const; string_type str() const; void clear(); void swap(this_type &); this_type & assign(this_type const &); template<typename T, size_type LenV> this_type & assign(T(&)); size_type copy(value_type *, size_type, size_type = 0) const; int compare(size_type, size_type, const_pointer, size_type) const; int compare(size_type, size_type, const_pointer) const; int compare(size_type, size_type, this_type const &) const; int compare(const_pointer, size_type) const; int compare(const_pointer) const; int compare(this_type const &) const; };
The basic_string_literal
is a thin wrapper around a constant string literal. It provides interface similar to STL strings, but because of read-only nature of string literals, lacks ability to modify string contents. However, basic_string_literal
objects can be assigned to and cleared.
The main advantage of this class comparing to other string classes is that it doesn't dynamically allocate memory and therefore is fast, thin and exception safe.
basic_string_literal
public
construct/copy/destructbasic_string_literal();
Constructor
Postconditions: |
|
template<typename T, size_type LenV> basic_string_literal(T(&) p);
Constructor from a string literal
Parameters: |
|
||
Postconditions: |
|
basic_string_literal(basic_string_literal const & that);
Copy constructor
Parameters: |
|
||
Postconditions: |
|
basic_string_literal& operator=(this_type const & that);
Assignment operator
Parameters: |
|
||
Postconditions: |
|
template<typename T, size_type LenV> basic_string_literal& operator=(T(&) p);
Assignment from a string literal
Parameters: |
|
||
Postconditions: |
|
basic_string_literal
public member functionsbool operator==(this_type const & that) const;
Lexicographical comparison (equality)
Parameters: |
|
||
Returns: |
|
bool operator==(const_pointer str) const;
Lexicographical comparison (equality)
Parameters: |
|
||
Returns: |
|
bool operator==(string_type const & that) const;
Lexicographical comparison (equality)
Parameters: |
|
||
Returns: |
|
bool operator<(this_type const & that) const;
Lexicographical comparison (less ordering)
Parameters: |
|
||
Returns: |
|
bool operator<(const_pointer str) const;
Lexicographical comparison (less ordering)
Parameters: |
|
||
Returns: |
|
bool operator<(string_type const & that) const;
Lexicographical comparison (less ordering)
Parameters: |
|
||
Returns: |
|
bool operator>(this_type const & that) const;
Lexicographical comparison (greater ordering)
Parameters: |
|
||
Returns: |
|
bool operator>(const_pointer str) const;
Lexicographical comparison (greater ordering)
Parameters: |
|
||
Returns: |
|
bool operator>(string_type const & that) const;
Lexicographical comparison (greater ordering)
Parameters: |
|
||
Returns: |
|
const_reference operator[](size_type i) const;
Subscript operator
Parameters: |
|
||
Requires: |
|
||
Returns: | Constant reference to the requested character |
const_reference at(size_type i) const;
Checked subscript
Throws: An std::exception
-based exception if index i is out of string boundaries
Parameters: |
|
||
Returns: | Constant reference to the requested character |
const_pointer c_str() const;
Returns: | Pointer to the beginning of the literal |
const_pointer data() const;
Returns: | Pointer to the beginning of the literal |
size_type size() const;
Returns: | Length of the literal |
size_type length() const;
Returns: | Length of the literal |
bool empty() const;
Returns: |
|
const_iterator begin() const;
Returns: | Iterator that points to the first character of the literal |
const_iterator end() const;
Returns: | Iterator that points after the last character of the literal |
const_reverse_iterator rbegin() const;
Returns: | Reverse iterator that points to the last character of the literal |
const_reverse_iterator rend() const;
Returns: | Reverse iterator that points before the first character of the literal |
string_type str() const;
Returns: | STL string constructed from the literal |
void clear();
The method clears the literal
Postconditions: |
|
void swap(this_type & that);
The method swaps two literals
this_type & assign(this_type const & that);
Assignment from another literal
Parameters: |
|
||
Postconditions: |
|
template<typename T, size_type LenV> this_type & assign(T(&) p);
Assignment from another literal
Parameters: |
|
||
Postconditions: |
|
size_type copy(value_type * str, size_type n, size_type pos = 0) const;
The method copies the literal or its portion to an external buffer
Throws: An std::exception
-based exception if pos is out of range.
Parameters: |
|
||||||
Requires: |
|
||||||
Returns: | Number of characters copied |
int compare(size_type pos, size_type n, const_pointer str, size_type len) const;
Lexicographically compares the argument string to a part of this string
Throws: An std::exception
-based exception if pos is out of range.
Parameters: |
|
||||||||
Requires: |
|
||||||||
Returns: | Zero if the comparand equals this string, a negative value if this string is less than the comparand, a positive value if this string is greater than the comparand. |
int compare(size_type pos, size_type n, const_pointer str) const;
Lexicographically compares the argument string to a part of this string
Throws: An std::exception
-based exception if pos is out of range.
Parameters: |
|
||||||
Requires: |
|
||||||
Returns: | Zero if the comparand equals this string, a negative value if this string is less than the comparand, a positive value if this string is greater than the comparand. |
int compare(size_type pos, size_type n, this_type const & that) const;
Lexicographically compares the argument string literal to a part of this string
Throws: An std::exception
-based exception if pos is out of range.
Parameters: |
|
||||||
Requires: |
|
||||||
Returns: | Zero if the comparand equals this string, a negative value if this string is less than the comparand, a positive value if this string is greater than the comparand. |
int compare(const_pointer str, size_type len) const;
Lexicographically compares the argument string to this string
Parameters: |
|
||||
Returns: | Zero if the comparand equals this string, a negative value if this string is less than the comparand, a positive value if this string is greater than the comparand. |
int compare(const_pointer str) const;
Lexicographically compares the argument string to this string
Parameters: |
|
||
Returns: | Zero if the comparand equals this string, a negative value if this string is less than the comparand, a positive value if this string is greater than the comparand. |
int compare(this_type const & that) const;
Lexicographically compares the argument string to this string
Parameters: |
|
||
Returns: | Zero if the comparand equals this string, a negative value if this string is less than the comparand, a positive value if this string is greater than the comparand. |