git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45026
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// ----------------------------------------------------------------------------
template <typename T>
// ----------------------------------------------------------------------------
template <typename T>
-class WXDLLIMPEXP_BASE wxCharTypeBuffer
{
public:
typedef T CharType;
{
public:
typedef T CharType;
- wxCharTypeBuffer(const wxCStrData& cstr)
- {
- FromCStrData(cstr);
- }
-
wxCharTypeBuffer(size_t len)
: m_str((CharType *)malloc((len + 1)*sizeof(CharType)))
{
wxCharTypeBuffer(size_t len)
: m_str((CharType *)malloc((len + 1)*sizeof(CharType)))
{
operator const CharType *() const { return m_str; }
CharType operator[](size_t n) const { return m_str[n]; }
operator const CharType *() const { return m_str; }
CharType operator[](size_t n) const { return m_str[n]; }
-private:
- void FromCStrData(const wxCStrData& cstr);
-
private:
CharType *m_str;
};
private:
CharType *m_str;
};
class WXDLLIMPEXP_BASE wxCharBuffer : public wxCharTypeBuffer<char>
{
public:
class WXDLLIMPEXP_BASE wxCharBuffer : public wxCharTypeBuffer<char>
{
public:
- wxCharBuffer(const CharType *str = NULL) : wxCharTypeBuffer<char>(str) {}
- wxCharBuffer(const wxCStrData& cstr) : wxCharTypeBuffer<char>(cstr) {}
- wxCharBuffer(size_t len) : wxCharTypeBuffer<char>(len) {}
+ typedef wxCharTypeBuffer<char> wxCharTypeBufferBase;
+
+ wxCharBuffer(const CharType *str = NULL) : wxCharTypeBufferBase(str) {}
+ wxCharBuffer(size_t len) : wxCharTypeBufferBase(len) {}
+
+#if !wxUSE_UNICODE
+ wxCharBuffer(const wxCStrData& cstr);
+#endif
};
#if wxUSE_WCHAR_T
class WXDLLIMPEXP_BASE wxWCharBuffer : public wxCharTypeBuffer<wchar_t>
{
public:
};
#if wxUSE_WCHAR_T
class WXDLLIMPEXP_BASE wxWCharBuffer : public wxCharTypeBuffer<wchar_t>
{
public:
- wxWCharBuffer(const CharType *str = NULL) : wxCharTypeBuffer<wchar_t>(str) {}
- wxWCharBuffer(const wxCStrData& cstr) : wxCharTypeBuffer<wchar_t>(cstr) {}
- wxWCharBuffer(size_t len) : wxCharTypeBuffer<wchar_t>(len) {}
+ typedef wxCharTypeBuffer<wchar_t> wxCharTypeBufferBase;
+
+ wxWCharBuffer(const CharType *str = NULL) : wxCharTypeBufferBase(str) {}
+ wxWCharBuffer(size_t len) : wxCharTypeBufferBase(len) {}
+
+#if wxUSE_UNICODE
+ wxWCharBuffer(const wxCStrData& cstr);
+#endif
};
#endif // wxUSE_WCHAR_T
#if wxUSE_UNICODE
};
#endif // wxUSE_WCHAR_T
#if wxUSE_UNICODE
- typedef wxWCharBuffer wxWxCharBuffer;
+ #define wxWxCharBuffer wxWCharBuffer
#define wxMB2WXbuf wxWCharBuffer
#define wxWX2MBbuf wxCharBuffer
#define wxWC2WXbuf wxChar*
#define wxWX2WCbuf wxChar*
#else // ANSI
#define wxMB2WXbuf wxWCharBuffer
#define wxWX2MBbuf wxCharBuffer
#define wxWC2WXbuf wxChar*
#define wxWX2WCbuf wxChar*
#else // ANSI
- typedef wxCharBuffer wxWxCharBuffer;
+ #define wxWxCharBuffer wxCharBuffer
#define wxMB2WXbuf wxChar*
#define wxWX2MBbuf wxChar*
#define wxMB2WXbuf wxChar*
#define wxWX2MBbuf wxChar*
// ----------------------------------------------------------------------------
// FIXME-UTF8: move this to buffer.h; provide versions for both variants
// ----------------------------------------------------------------------------
// FIXME-UTF8: move this to buffer.h; provide versions for both variants
-template<>
-inline void wxCharTypeBuffer<wxChar>::FromCStrData(const wxCStrData& cstr)
+inline wxWxCharBuffer::wxWxCharBuffer(const wxCStrData& cstr)
+ : wxCharTypeBufferBase((const wxChar *)cstr)
- m_str = wxStrDup(cstr.AsString());
}
#endif // _WX_WXSTRINGH__
}
#endif // _WX_WXSTRINGH__