# wxCharTypeBuffer< T > Class Template Reference
[Data Structures]

`#include <wx/buffer.h>`

Inheritance diagram for wxCharTypeBuffer< T >:
[legend]

## Detailed Description

### template<typename T>
class wxCharTypeBuffer< T >

wxCharTypeBuffer<T> is a template class for storing characters.

The difference from wxScopedCharTypeBuffer<T> is that this class doesn't have non-owned mode and the data stored in it are valid for as long as the buffer instance exists. Other than that, this class' behaviour is the same as wxScopedCharTypeBuffer<T>'s -- in particular, the data are reference-counted and copying the buffer is cheap.

wxScopedCharTypeBuffer<T> buffers can be converted into wxCharTypeBuffer<T>.

Template Parameters:

  | T | The type of the characters stored in this class.

Since:
  2.9.0

##

Library: None; this class implementation is entirely header-based.

Category: Data Structures

## Public Member Functions
| wxCharTypeBuffer (const CharType *str=NULL, size_t len=wxNO_LEN)
| Creates (owned) buffer from str and takes ownership of it.
| wxCharTypeBuffer (size_t len)
| Creates (owned) buffer of size len.
| wxCharTypeBuffer (const wxCharTypeBuffer &src)
| Copy constructor.
| wxCharTypeBuffer (const wxScopedCharTypeBuffer< T > &src)
| Makes a copy of scoped buffer src.
wxCharTypeBuffer & | operator= (const CharType *str)
| Assigns str to this buffer and takes ownership of it (i.e.
wxCharTypeBuffer & | operator= (const wxCharTypeBuffer &src)
| Assignment operator behaves in the same way as the copy constructor.
wxCharTypeBuffer & | operator= (const wxScopedCharTypeBuffer< T > &src)
| Assigns a scoped buffer to this buffer.
bool | extend (size_t len)
| Extends the buffer to have size len.
bool | shrink (size_t len)
| Shrinks the buffer to have size len and NUL-terminates the string at this length.

List of all members.

## Constructor & Destructor Documentation

template<typename T>

wxCharTypeBuffer< T >::wxCharTypeBuffer | ( | const CharType * | str = `NULL`,
|  | size_t | len = `wxNO_LEN` |
| ) |  |  |

Creates (owned) buffer from str and takes ownership of it.

Parameters:

  | str | String data.
  | len | If specified, length of the string, otherwise the string is considered to be NUL-terminated.

See also:
  wxScopedCharTypeBuffer<T>::CreateOwned()

template<typename T>

wxCharTypeBuffer< T >::wxCharTypeBuffer | ( | size_t | len | ) |

Creates (owned) buffer of size len.

See also:
  wxScopedCharTypeBuffer<T>::CreateOwned()

template<typename T>

wxCharTypeBuffer< T >::wxCharTypeBuffer | ( | const wxCharTypeBuffer< T > & | src | ) |

Copy constructor.

Increases reference count on the data, does not make wxStrdup() copy of the data.

template<typename T>

wxCharTypeBuffer< T >::wxCharTypeBuffer | ( | const wxScopedCharTypeBuffer< T > & | src | ) |

Makes a copy of scoped buffer src.

If src is a non-owned buffer, a copy of its data is made using wxStrdup(). If src is an owned buffer, this constructor behaves in the usual way (reference count on buffer data is incremented).

## Member Function Documentation

template<typename T>

bool wxCharTypeBuffer< T >::extend | ( | size_t | len | ) |

Extends the buffer to have size len.

Can only be called on buffers that don't share data with another buffer (i.e. reference count of the data is 1).

See also:
  shrink()

template<typename T>

wxCharTypeBuffer& wxCharTypeBuffer< T >::operator= | ( | const wxScopedCharTypeBuffer< T > & | src | ) |

Assigns a scoped buffer to this buffer.

If src is a non-owned buffer, a copy of its data is made using wxStrdup(). If src is an owned buffer, the assignment behaves in the usual way (reference count on buffer data is incremented).

Reimplemented from wxScopedCharTypeBuffer< T >.

template<typename T>

wxCharTypeBuffer& wxCharTypeBuffer< T >::operator= | ( | const wxCharTypeBuffer< T > & | src | ) |

Assignment operator behaves in the same way as the copy constructor.

template<typename T>

wxCharTypeBuffer& wxCharTypeBuffer< T >::operator= | ( | const CharType * | str | ) |

Assigns str to this buffer and takes ownership of it (i.e.

the buffer becomes "owned").

template<typename T>

bool wxCharTypeBuffer< T >::shrink | ( | size_t | len | ) |

Shrinks the buffer to have size len and NUL-terminates the string at this length.

Can only be called on buffers that don't share data with another buffer (i.e. reference count of the data is 1).

Parameters:

  | len | Length to shrink to. Must not be larger than current length.

Note:
  The string is not reallocated to take less memory.

Since:
  2.9.0

See also:
  extend()

|  | [ top ]