Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
PrevUpHomeNext

Class template basic_string_literal

boost::log::basic_string_literal — String literal wrapper.

Synopsis

// In header: <boost/log/utility/string_literal.hpp>

template<typename CharT, typename TraitsT> 
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() noexcept;
  template<typename T, size_type LenV> basic_string_literal(T(&)) noexcept;
  basic_string_literal(basic_string_literal const &) noexcept;
  this_type & operator=(this_type const &) noexcept;
  template<typename T, size_type LenV> this_type & operator=(T(&)) noexcept;

  // public member functions
  bool operator==(this_type const &) const noexcept;
  bool operator==(const_pointer) const noexcept;
  bool operator==(string_type const &) const;
  bool operator<(this_type const &) const noexcept;
  bool operator<(const_pointer) const noexcept;
  bool operator<(string_type const &) const;
  bool operator>(this_type const &) const noexcept;
  bool operator>(const_pointer) const noexcept;
  bool operator>(string_type const &) const;
  const_reference operator[](size_type) const noexcept;
  const_reference at(size_type) const;
  const_pointer c_str() const noexcept;
  const_pointer data() const noexcept;
  size_type size() const noexcept;
  size_type length() const noexcept;
  bool empty() const noexcept;
  const_iterator begin() const noexcept;
  const_iterator end() const noexcept;
  const_reverse_iterator rbegin() const noexcept;
  const_reverse_iterator rend() const noexcept;
  string_type str() const;
  void clear() noexcept;
  void swap(this_type &) noexcept;
  this_type & assign(this_type const &) noexcept;
  template<typename T, size_type LenV> this_type & assign(T(&)) noexcept;
  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 noexcept;
  int compare(size_type, size_type, this_type const &) const noexcept;
  int compare(const_pointer, size_type) const noexcept;
  int compare(const_pointer) const noexcept;
  int compare(this_type const &) const noexcept;
};

Description

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/destruct

  1. basic_string_literal() noexcept;

    Constructor

    Postconditions:

    empty() == true

  2. template<typename T, size_type LenV> basic_string_literal(T(&) p) noexcept;

    Constructor from a string literal

    Parameters:

    p

    A zero-terminated constant sequence of characters

    Postconditions:

    *this == p

  3. basic_string_literal(basic_string_literal const & that) noexcept;

    Copy constructor

    Parameters:

    that

    Source literal to copy string from

    Postconditions:

    *this == that

  4. this_type & operator=(this_type const & that) noexcept;

    Assignment operator

    Parameters:

    that

    Source literal to copy string from

    Postconditions:

    *this == that

  5. template<typename T, size_type LenV> this_type & operator=(T(&) p) noexcept;

    Assignment from a string literal

    Parameters:

    p

    A zero-terminated constant sequence of characters

    Postconditions:

    *this == p

basic_string_literal public member functions

  1. bool operator==(this_type const & that) const noexcept;

    Lexicographical comparison (equality)

    Parameters:

    that

    Comparand

    Returns:

    true if the comparand string equals to this string, false otherwise

  2. bool operator==(const_pointer str) const noexcept;

    Lexicographical comparison (equality)

    Parameters:

    str

    Comparand. Must point to a zero-terminated sequence of characters, must not be NULL.

    Returns:

    true if the comparand string equals to this string, false otherwise

  3. bool operator==(string_type const & that) const;

    Lexicographical comparison (equality)

    Parameters:

    that

    Comparand

    Returns:

    true if the comparand string equals to this string, false otherwise

  4. bool operator<(this_type const & that) const noexcept;

    Lexicographical comparison (less ordering)

    Parameters:

    that

    Comparand

    Returns:

    true if this string is less than the comparand, false otherwise

  5. bool operator<(const_pointer str) const noexcept;

    Lexicographical comparison (less ordering)

    Parameters:

    str

    Comparand. Must point to a zero-terminated sequence of characters, must not be NULL.

    Returns:

    true if this string is less than the comparand, false otherwise

  6. bool operator<(string_type const & that) const;

    Lexicographical comparison (less ordering)

    Parameters:

    that

    Comparand

    Returns:

    true if this string is less than the comparand, false otherwise

  7. bool operator>(this_type const & that) const noexcept;

    Lexicographical comparison (greater ordering)

    Parameters:

    that

    Comparand

    Returns:

    true if this string is greater than the comparand, false otherwise

  8. bool operator>(const_pointer str) const noexcept;

    Lexicographical comparison (greater ordering)

    Parameters:

    str

    Comparand. Must point to a zero-terminated sequence of characters, must not be NULL.

    Returns:

    true if this string is greater than the comparand, false otherwise

  9. bool operator>(string_type const & that) const;

    Lexicographical comparison (greater ordering)

    Parameters:

    that

    Comparand

    Returns:

    true if this string is greater than the comparand, false otherwise

  10. const_reference operator[](size_type i) const noexcept;

    Subscript operator

    Parameters:

    i

    Requested character index

    Requires:

    i < size()

    Returns:

    Constant reference to the requested character

  11. const_reference at(size_type i) const;

    Checked subscript

    Throws: An std::exception-based exception if index i is out of string boundaries

    Parameters:

    i

    Requested character index

    Returns:

    Constant reference to the requested character

  12. const_pointer c_str() const noexcept;

    Returns:

    Pointer to the beginning of the literal

  13. const_pointer data() const noexcept;

    Returns:

    Pointer to the beginning of the literal

  14. size_type size() const noexcept;

    Returns:

    Length of the literal

  15. size_type length() const noexcept;

    Returns:

    Length of the literal

  16. bool empty() const noexcept;

    Returns:

    true if the literal is an empty string, false otherwise

  17. const_iterator begin() const noexcept;

    Returns:

    Iterator that points to the first character of the literal

  18. const_iterator end() const noexcept;

    Returns:

    Iterator that points after the last character of the literal

  19. const_reverse_iterator rbegin() const noexcept;

    Returns:

    Reverse iterator that points to the last character of the literal

  20. const_reverse_iterator rend() const noexcept;

    Returns:

    Reverse iterator that points before the first character of the literal

  21. string_type str() const;

    Returns:

    STL string constructed from the literal

  22. void clear() noexcept;

    The method clears the literal

    Postconditions:

    empty() == true

  23. void swap(this_type & that) noexcept;

    The method swaps two literals

  24. this_type & assign(this_type const & that) noexcept;

    Assignment from another literal

    Parameters:

    that

    Source literal to copy string from

    Postconditions:

    *this == that

  25. template<typename T, size_type LenV> this_type & assign(T(&) p) noexcept;

    Assignment from another literal

    Parameters:

    p

    A zero-terminated constant sequence of characters

    Postconditions:

    *this == p

  26. 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:

    n

    Maximum number of characters to copy

    pos

    Starting position to start copying from

    str

    Pointer to the external buffer beginning. Must not be NULL. The buffer must have enough capacity to accommodate the requested number of characters.

    Requires:

    pos <= size()

    Returns:

    Number of characters copied

  27. 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:

    len

    Number of characters in the sequence str.

    n

    Length of the substring of this string to perform comparison to

    pos

    Starting position within this string to perform comparison to

    str

    Comparand. Must point to a sequence of characters, must not be NULL.

    Requires:

    pos <= size()

    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.

  28. int compare(size_type pos, size_type n, const_pointer str) const noexcept;

    Lexicographically compares the argument string to a part of this string

    Throws: An std::exception-based exception if pos is out of range.

    Parameters:

    n

    Length of the substring of this string to perform comparison to

    pos

    Starting position within this string to perform comparison to

    str

    Comparand. Must point to a zero-terminated sequence of characters, must not be NULL.

    Requires:

    pos <= size()

    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.

  29. int compare(size_type pos, size_type n, this_type const & that) const noexcept;

    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:

    n

    Length of the substring of this string to perform comparison to

    pos

    Starting position within this string to perform comparison to

    that

    Comparand

    Requires:

    pos <= size()

    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.

  30. int compare(const_pointer str, size_type len) const noexcept;

    Lexicographically compares the argument string to this string

    Parameters:

    len

    Number of characters in the sequence str.

    str

    Comparand. Must point to a sequence of characters, must not be NULL.

    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.

  31. int compare(const_pointer str) const noexcept;

    Lexicographically compares the argument string to this string

    Parameters:

    str

    Comparand. Must point to a zero-terminated sequence of characters, must not be NULL.

    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.

  32. int compare(this_type const & that) const noexcept;

    Lexicographically compares the argument string to this string

    Parameters:

    that

    Comparand

    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.


PrevUpHomeNext