📄 cstring_adaptors.hpp
字号:
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 + -