class cv::String

#include <cvstd.hpp>

class String
{
public:
    // typedefs

    typedef const char* const_iterator;
    typedef const char* const_pointer;
    typedef const char& const_reference;
    typedef ptrdiff_t difference_type;
    typedef char* iterator;
    typedef char* pointer;
    typedef char& reference;
    typedef size_t size_type;
    typedef char value_type;

    // fields

    static const size_t npos;

    // construction

    String();
    String(const String& str);

    String(
        const String& str,
        size_t pos,
        size_t len = npos
        );

    String(const char* s);

    String(
        const char* s,
        size_t n
        );

    String(
        size_t n,
        char c
        );

    String(
        const char* first,
        const char* last
        );

    template <typename Iterator>
    String(
        Iterator first,
        Iterator last
        );

    String(const FileNode& fn);
    String(const std::string& str);

    String(
        const std::string& str,
        size_t pos,
        size_t len = npos
        );

    // methods

    static
    bool
    operator==(
        const String& lhs,
        const String& rhs
        );

    static
    bool
    operator==(
        const char* lhs,
        const String& rhs
        );

    static
    bool
    operator==(
        const String& lhs,
        const char* rhs
        );

    static
    bool
    operator!=(
        const String& lhs,
        const String& rhs
        );

    static
    bool
    operator!=(
        const char* lhs,
        const String& rhs
        );

    static
    bool
    operator!=(
        const String& lhs,
        const char* rhs
        );

    static
    bool
    operator<(
        const String& lhs,
        const String& rhs
        );

    static
    bool
    operator<(
        const char* lhs,
        const String& rhs
        );

    static
    bool
    operator<(
        const String& lhs,
        const char* rhs
        );

    static
    bool
    operator<=(
        const String& lhs,
        const String& rhs
        );

    static
    bool
    operator<=(
        const char* lhs,
        const String& rhs
        );

    static
    bool
    operator<=(
        const String& lhs,
        const char* rhs
        );

    static
    bool
    operator>(
        const String& lhs,
        const String& rhs
        );

    static
    bool
    operator>(
        const char* lhs,
        const String& rhs
        );

    static
    bool
    operator>(
        const String& lhs,
        const char* rhs
        );

    static
    bool
    operator>=(
        const String& lhs,
        const String& rhs
        );

    static
    bool
    operator>=(
        const char* lhs,
        const String& rhs
        );

    static
    bool
    operator>=(
        const String& lhs,
        const char* rhs
        );

    const char*
    begin() const;

    const char*
    c_str() const;

    void
    clear();

    int
    compare(const char* s) const;

    int
    compare(const String& str) const;

    bool
    empty() const;

    const char*
    end() const;

    size_t
    find(
        const char* s,
        size_t pos,
        size_t n
        ) const;

    size_t
    find(
        char c,
        size_t pos = 0
        ) const;

    size_t
    find(
        const String& str,
        size_t pos = 0
        ) const;

    size_t
    find(
        const char* s,
        size_t pos = 0
        ) const;

    size_t
    find_first_of(
        const char* s,
        size_t pos,
        size_t n
        ) const;

    size_t
    find_first_of(
        char c,
        size_t pos = 0
        ) const;

    size_t
    find_first_of(
        const String& str,
        size_t pos = 0
        ) const;

    size_t
    find_first_of(
        const char* s,
        size_t pos = 0
        ) const;

    size_t
    find_last_of(
        const char* s,
        size_t pos,
        size_t n
        ) const;

    size_t
    find_last_of(
        char c,
        size_t pos = npos
        ) const;

    size_t
    find_last_of(
        const String& str,
        size_t pos = npos
        ) const;

    size_t
    find_last_of(
        const char* s,
        size_t pos = npos
        ) const;

    size_t
    length() const;

    operator std::string() const;

    String&
    operator+=(const String& str);

    String&
    operator+=(const char* s);

    String&
    operator+=(char c);

    String&
    operator+=(const std::string& str);

    String&
    operator=(const String& str);

    String&
    operator=(const char* s);

    String&
    operator=(char c);

    String&
    operator=(const std::string& str);

    char
    operator[](size_t idx) const;

    char
    operator[](int idx) const;

    size_t
    rfind(
        const char* s,
        size_t pos,
        size_t n
        ) const;

    size_t
    rfind(
        char c,
        size_t pos = npos
        ) const;

    size_t
    rfind(
        const String& str,
        size_t pos = npos
        ) const;

    size_t
    rfind(
        const char* s,
        size_t pos = npos
        ) const;

    size_t
    size() const;

    String
    substr(
        size_t pos = 0,
        size_t len = npos
        ) const;

    void
    swap(String& str);

    String
    toLowerCase() const;
};