C++で新しい文字列クラスをつくろう 2
■ このスレッドは過去ログ倉庫に格納されています
0188デフォルトの名無しさん
2007/12/21(金) 11:37:49class CaptureString {
public:
typedef char value_type;
private:
CString *target;
size_t size;
value_type *buffer;
public:
CaptureString(CString *target_, size_t size_ = DEFAULT_SIZE)
: target(target_), size(size_), buffer(NULL) {
}
~CaptureString() {
if (buffer != NULL) {
target->ReleaseBuffer();
}
}
operator value_type *() {
if (buffer == NULL) {
buffer = target->GetBuffer(size);
}
return buffer;
}
};
// 使用例
CString str;
fgets(stdin, CaptureString(&str, BUF_SIZE), BUF_SIZE);
■ このスレッドは過去ログ倉庫に格納されています