3 #ifndef INCLUDE_NN_NLIB_TEXTWRITER_H_
4 #define INCLUDE_NN_NLIB_TEXTWRITER_H_
7 #include "nn/nlib/Swap.h"
24 NLIB_MOVE_MEMBER_HELPER_2(
TextWriter, m_Stream, m_ErrorValue);
34 bool Flush() NLIB_NOEXCEPT;
35 bool Close() NLIB_NOEXCEPT;
36 errno_t GetErrorValue() const NLIB_NOEXCEPT {
return m_ErrorValue; }
38 bool WriteFormat(_Printf_format_string_
const wchar_t* fmt, ...) NLIB_NOEXCEPT;
39 bool WriteFormat(_Printf_format_string_ const
char* fmt, ...) NLIB_NOEXCEPT;
40 void SetError(
errno_t e) const NLIB_NOEXCEPT {
41 if (m_ErrorValue == 0) m_ErrorValue = e;
46 swap(m_Stream, rhs.m_Stream);
47 swap(m_ErrorValue, rhs.m_ErrorValue);
59 unsigned char m_Utf8Idx;
60 unsigned char m_Utf16Idx;
73 #endif // INCLUDE_NN_NLIB_TEXTWRITER_H_
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
OutputStream * GetStream() noexcept
テキストライタが書き込みを行うストリームを取得します。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
#define NLIB_SAFE_BOOL(class_name, exp)
クラス内に安全なoperator bool()を定義します。 可能であればC++11のexplicit boolを利用します。 ...
bool Write(BinaryWriter *w, T x)
この関数テンプレートを特殊化することで、ユーザー定義クラスを書きこむことができます。 ...
void swap(TextWriter &rhs) noexcept
オブジェクトの内容をスワップします。
~TextWriter() noexcept
デストラクタです。ストリームはクローズされません。
出力ストリームの基底クラスです。このクラスを実体化することはできません。