⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cstring_adaptors.hpp

📁 新版本TR1的stl
💻 HPP
📖 第 1 页 / 共 4 页
字号:
    typedef CString_adaptor_base<CString_iadaptor>  parent_class_type;
public:
    /// The class type
    typedef CString_iadaptor                        class_type;
/// @}

/// \name Construction
/// @{
public:
    CString_iadaptor(CString &str);
    CString_iadaptor(CString *str);
/// @}

    /// Copy assignment operator
    class_type const& operator =(class_type const& rhs);
    /// Copy assignment operator
    class_type const& operator =(CString const& rhs);
    /// Assignment operator
    class_type const& operator =(LPCSTR s);
    /// Assignment operator
    class_type const& operator =(LPCWSTR s);
    /// Assignment operator
    class_type const& operator =(unsigned char const* s);

/// \name Element Access
/// @{
public:
    /// Returns a mutable (non-const) reference to the element at \c index
    ///
    /// \note The behaviour is undefined if index >= size()
    reference       operator [](size_type index);
    /// Returns a non-mutable (const) reference to the element at \c index
    ///
    /// \note The behaviour is undefined if index >= size()
    const_reference operator [](size_type index) const;
/// @}

/// \name Implementation
/// @{
private:
    friend class CString_adaptor_base<CString_iadaptor>;

    CString         &get_actual_string()
    {
        return *m_str;
    }
    CString const   &get_actual_string() const
    {
        return *m_str;
    }
/// @}

/// \name Members
/// @{
private:
    CString *m_str;
/// @}
};

/** \brief Non-mutable Adaptor class, representing an Instance Adaptor over the MFC CString type
 *
 * \ingroup group__library__collections
 *
 * It can be used via the std::basic_string-like interface
 */
class const_CString_iadaptor
    : public CString_adaptor_base<const_CString_iadaptor>
{
/// \name Member Types
/// @{
private:
    typedef CString_adaptor_base<const_CString_iadaptor>    parent_class_type;
public:
    /// The class type
    typedef CString_iadaptor                                class_type;
/// @}

/// \name Construction
/// @{
public:
    const_CString_iadaptor(CString const& str);
    const_CString_iadaptor(CString const* str);
/// @}

/// \name Element Access
/// @{
public:
    /// Returns a non-mutable (const) reference to the element at \c index
    ///
    /// \note The behaviour is undefined if index >= size()
    const_reference operator [](size_type index) const;
/// @}

/// \name Implementation
/// @{
private:
    friend class CString_adaptor_base<const_CString_iadaptor>;

    CString const   &get_actual_string() const
    {
        return *m_str;
    }
/// @}

/// \name Members
/// @{
private:
    CString const   *m_str;
/// @}
};

/* /////////////////////////////////////////////////////////////////////////
 * Operators
 */

// operator ==

inline ms_bool_t operator ==(CString_cadaptor const& lhs, CString_cadaptor const& rhs)
{
    return lhs.get_CString() == rhs.get_CString();
}
inline ms_bool_t operator ==(CString_cadaptor const& lhs, CString const& rhs)
{
    return lhs.get_CString() == rhs;
}
inline ms_bool_t operator ==(CString const& lhs, CString_cadaptor const& rhs)
{
    return lhs == rhs.get_CString();
}
inline ms_bool_t operator ==(CString_cadaptor const& lhs, LPCSTR rhs)
{
    return lhs.get_CString() == rhs;
}
inline ms_bool_t operator ==(LPCSTR lhs, CString_cadaptor const& rhs)
{
    return lhs == rhs.get_CString();
}
inline ms_bool_t operator ==(CString_cadaptor const& lhs, LPCWSTR rhs)
{
    return lhs.get_CString() == CString(rhs);
}
inline ms_bool_t operator ==(LPCWSTR lhs, CString_cadaptor const& rhs)
{
    return CString(lhs) == rhs.get_CString();
}
inline ms_bool_t operator ==(CString_cadaptor const& lhs, unsigned char const* rhs)
{
    return lhs.get_CString() == CString(rhs);
}
inline ms_bool_t operator ==(unsigned char const* lhs, CString_cadaptor const& rhs)
{
    return CString(lhs) == rhs.get_CString();
}

inline ms_bool_t operator ==(CString_iadaptor const& lhs, CString_iadaptor const& rhs)
{
    return lhs.get_CString() == rhs.get_CString();
}
inline ms_bool_t operator ==(CString_iadaptor const& lhs, CString const& rhs)
{
    return lhs.get_CString() == rhs;
}
inline ms_bool_t operator ==(CString const& lhs, CString_iadaptor const& rhs)
{
    return lhs == rhs.get_CString();
}
inline ms_bool_t operator ==(CString_iadaptor const& lhs, LPCSTR rhs)
{
    return lhs.get_CString() == rhs;
}
inline ms_bool_t operator ==(LPCSTR lhs, CString_iadaptor const& rhs)
{
    return lhs == rhs.get_CString();
}
inline ms_bool_t operator ==(CString_iadaptor const& lhs, LPCWSTR rhs)
{
    return lhs.get_CString() == CString(rhs);
}
inline ms_bool_t operator ==(LPCWSTR lhs, CString_iadaptor const& rhs)
{
    return CString(lhs) == rhs.get_CString();
}
inline ms_bool_t operator ==(CString_iadaptor const& lhs, unsigned char const* rhs)
{
    return lhs.get_CString() == CString(rhs);
}
inline ms_bool_t operator ==(unsigned char const* lhs, CString_iadaptor const& rhs)
{
    return CString(lhs) == rhs.get_CString();
}

inline ms_bool_t operator ==(const_CString_iadaptor const& lhs, const_CString_iadaptor const& rhs)
{
    return lhs.get_CString() == rhs.get_CString();
}
inline ms_bool_t operator ==(const_CString_iadaptor const& lhs, CString const& rhs)
{
    return lhs.get_CString() == rhs;
}
inline ms_bool_t operator ==(CString const& lhs, const_CString_iadaptor const& rhs)
{
    return lhs == rhs.get_CString();
}
inline ms_bool_t operator ==(const_CString_iadaptor const& lhs, LPCSTR rhs)
{
    return lhs.get_CString() == rhs;
}
inline ms_bool_t operator ==(LPCSTR lhs, const_CString_iadaptor const& rhs)
{
    return lhs == rhs.get_CString();
}
inline ms_bool_t operator ==(const_CString_iadaptor const& lhs, LPCWSTR rhs)
{
    return lhs.get_CString() == CString(rhs);
}
inline ms_bool_t operator ==(LPCWSTR lhs, const_CString_iadaptor const& rhs)
{
    return CString(lhs) == rhs.get_CString();
}
inline ms_bool_t operator ==(const_CString_iadaptor const& lhs, unsigned char const* rhs)
{
    return lhs.get_CString() == CString(rhs);
}
inline ms_bool_t operator ==(unsigned char const* lhs, const_CString_iadaptor const& rhs)
{
    return CString(lhs) == rhs.get_CString();
}

// operator !=

inline ms_bool_t operator !=(CString_cadaptor const& lhs, CString_cadaptor const& rhs)
{
    return lhs.get_CString() != rhs.get_CString();
}
inline ms_bool_t operator !=(CString_cadaptor const& lhs, CString const& rhs)
{
    return lhs.get_CString() != rhs;
}
inline ms_bool_t operator !=(CString const& lhs, CString_cadaptor const& rhs)
{
    return lhs != rhs.get_CString();
}
inline ms_bool_t operator !=(CString_cadaptor const& lhs, LPCSTR rhs)
{
    return lhs.get_CString() != rhs;
}
inline ms_bool_t operator !=(LPCSTR lhs, CString_cadaptor const& rhs)
{
    return lhs != rhs.get_CString();
}
inline ms_bool_t operator !=(CString_cadaptor const& lhs, LPCWSTR rhs)
{
    return lhs.get_CString() != CString(rhs);
}
inline ms_bool_t operator !=(LPCWSTR lhs, CString_cadaptor const& rhs)
{
    return CString(lhs) != rhs.get_CString();
}
inline ms_bool_t operator !=(CString_cadaptor const& lhs, unsigned char const* rhs)
{
    return lhs.get_CString() != CString(rhs);
}
inline ms_bool_t operator !=(unsigned char const* lhs, CString_cadaptor const& rhs)
{
    return CString(lhs) != rhs.get_CString();
}

inline ms_bool_t operator !=(CString_iadaptor const& lhs, CString_iadaptor const& rhs)
{
    return lhs.get_CString() != rhs.get_CString();
}
inline ms_bool_t operator !=(CString_iadaptor const& lhs, CString const& rhs)
{
    return lhs.get_CString() != rhs;
}
inline ms_bool_t operator !=(CString const& lhs, CString_iadaptor const& rhs)
{
    return lhs != rhs.get_CString();
}
inline ms_bool_t operator !=(CString_iadaptor const& lhs, LPCSTR rhs)
{
    return lhs.get_CString() != rhs;
}
inline ms_bool_t operator !=(LPCSTR lhs, CString_iadaptor const& rhs)
{
    return lhs != rhs.get_CString();
}
inline ms_bool_t operator !=(CString_iadaptor const& lhs, LPCWSTR rhs)
{
    return lhs.get_CString() != CString(rhs);
}
inline ms_bool_t operator !=(LPCWSTR lhs, CString_iadaptor const& rhs)
{
    return CString(lhs) != rhs.get_CString();
}
inline ms_bool_t operator !=(CString_iadaptor const& lhs, unsigned char const* rhs)
{
    return lhs.get_CString() != CString(rhs);
}
inline ms_bool_t operator !=(unsigned char const* lhs, CString_iadaptor const& rhs)
{
    return CString(lhs) != rhs.get_CString();
}

inline ms_bool_t operator !=(const_CString_iadaptor const& lhs, const_CString_iadaptor const& rhs)
{
    return lhs.get_CString() != rhs.get_CString();
}
inline ms_bool_t operator !=(const_CString_iadaptor const& lhs, CString const& rhs)
{
    return lhs.get_CString() != rhs;
}
inline ms_bool_t operator !=(CString const& lhs, const_CString_iadaptor const& rhs)
{
    return lhs != rhs.get_CString();
}
inline ms_bool_t operator !=(const_CString_iadaptor const& lhs, LPCSTR rhs)
{
    return lhs.get_CString() != rhs;
}
inline ms_bool_t operator !=(LPCSTR lhs, const_CString_iadaptor const& rhs)
{
    return lhs != rhs.get_CString();
}
inline ms_bool_t operator !=(const_CString_iadaptor const& lhs, LPCWSTR rhs)
{
    return lhs.get_CString() != CString(rhs);
}
inline ms_bool_t operator !=(LPCWSTR lhs, const_CString_iadaptor const& rhs)
{
    return CString(lhs) != rhs.get_CString();
}
inline ms_bool_t operator !=(const_CString_iadaptor const& lhs, unsigned char const* rhs)
{
    return lhs.get_CString() != CString(rhs);
}
inline ms_bool_t operator !=(unsigned char const* lhs, const_CString_iadaptor const& rhs)
{
    return CString(lhs) != rhs.get_CString();
}

// operator <

inline ms_bool_t operator <(CString_cadaptor const& lhs, CString_cadaptor const& rhs)
{
    return lhs.get_CString() < rhs.get_CString();
}
inline ms_bool_t operator <(CString_cadaptor const& lhs, CString const& rhs)
{
    return lhs.get_CString() < rhs;
}
inline ms_bool_t operator <(CString const& lhs, CString_cadaptor const& rhs)
{
    return lhs < rhs.get_CString();
}
inline ms_bool_t operator <(CString_cadaptor const& lhs, LPCSTR rhs)
{
    return lhs.get_CString() < rhs;
}
inline ms_bool_t operator <(LPCSTR lhs, CString_cadaptor const& rhs)
{
    return lhs < rhs.get_CString();
}
inline ms_bool_t operator <(CString_cadaptor const& lhs, LPCWSTR rhs)
{
    return lhs.get_CString() < CString(rhs);
}
inline ms_bool_t operator <(LPCWSTR lhs, CString_cadaptor const& rhs)
{
    return CString(lhs) < rhs.get_CString();
}
inline ms_bool_t operator <(CString_cadaptor const& lhs, unsigned char const* rhs)
{
    return lhs.get_CString() < CString(rhs);
}
inline ms_bool_t operator <(unsigned char const* lhs, CString_cadaptor const& rhs)
{
    return CString(lhs) < rhs.get_CString();
}

inline ms_bool_t operator <(CString_iadaptor const& lhs, CString_iadaptor const& rhs)
{
    return lhs.get_CString() < rhs.get_CString();
}
inline ms_bool_t operator <(CString_iadaptor const& lhs, CString const& rhs)
{
    return lhs.get_CString() < rhs;
}
inline ms_bool_t operator <(CString const& lhs, CString_iadaptor const& rhs)
{
    return lhs < rhs.get_CString();
}
inline ms_bool_t operator <(CString_iadaptor const& lhs, LPCSTR rhs)
{
    return lhs.get_CString() < rhs;
}
inline ms_bool_t operator <(LPCSTR lhs, CString_iadaptor const& rhs)
{
    return lhs < rhs.get_CString();
}
inline ms_bool_t operator <(CString_iadaptor const& lhs, LPCWSTR rhs)
{
    return lhs.get_CString() < CString(rhs);
}
inline ms_bool_t operator <(LPCWSTR lhs, CString_iadaptor const& rhs)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -