nlib
|
simd
ライブラリにクラスと関数が追加されました。いずれもSSE4.1とNEON及び一般的なアーキテクチャに対応しています。 Sphere
, AxisAlignedBox
, OrientedBox
クラスの追加。それぞれ球, AABB, OBBに対応します。 NLIB_ASSUME()
(__assume()
又は__builtin_unreachable()
を利用)を利用したコードの最適化(主にswitch文)を行いました。 simd
ライブラリ内のいくつかの定数がリンクされない不具合の修正。 Vector3::Rotate()
, Vector3::InvRotate()
のバグを修正。 simd
ライブラリに関数が追加されました。いずれもSSE4.1とNEON及び一般的なアーキテクチャに対応しています。
F128::Exp2()
, F128::ExpE()
の追加 F128::SinH()
, F128::CosH()
, F128::TanH()
の追加 F128::Tan()
の追加 F128::Log2()
, F128::LogE()
の追加 nn::nlib::simd::MergeSortUint32A16()
)が追加されました。 std::sort()
の10倍を超える性能(Visual Studio 2013のリリースビルドにおいて32要素のソートでの計測) searchdata.xml
)を含めるようにしました。 clang-format
とclang-check
の利用に対応しました。詳しくは下記を御覧ください。 nlib
のコーディングルールに関する記述をより明確にしました。 nlib
のコーディングスタイルに対応するclang-format
での変換設定が記述された .clang-format
を新たに収録しました。 compile_commands.json
というファイルが作成されるようになります。これを利用してclang-check
を利用することができます(http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html)。 nlib
のAPIをマウスホバーすることにより、APIの簡単な説明を見られるようにしていきます。現時点では以下のAPIで可能です。 simd
ライブラリのAPI simd
ライブラリが追加されました。 nn::nlib::simd
名前空間に実装されています。 /bigobj
オプションが追加されてビルドされるようになりました。
Nflags::GetStringCommaList()
がstrList
にローカルスタックへのポインタを格納するバグを修正しました。 AsciiReader
, AsciiWriter
が削除されました。 NativePathMapper
クラスを追加しました。 nlib_printf()
等がリダイレクト先に出力をしないバグの修正。 testing
ライブラリで出力をリダイレクトした場合に、コントロール文字列が出力される不具合の修正。 testing
ライブラリのサンプルがテスト結果のファイル出力を失敗する不具合の修正。 NativePathMapper
を利用してパス文字列をプラットフォーム毎に適切に設定するように改良。 oss
ライブラリに収録されているSQLite3をバージョン3.8.4.3に更新しました。 stringutils
サンプルコードにおいてヌル文字を末尾に追加していなかったバグの修正。 nlib_utf16cplen_ex()
を追加しました。 nlib_skipws()
を追加しました。 nlib_swapendian_16()
, nlib_swapendian_32()
, nlib_swapendian_64()
を追加しました。 nn::nlib::msgpack::JsonReader
クラスの高速化 nn::nlib::msgpack::MpObject
クラスの処理速度改善を行いました。 BinaryReader
, BinaryWriter
クラスの処理速度改善を行いました。 nn::nlib::msgpack::MpWriter
クラスの処理速度改善を行いました。 TextReader::ReadUntil()
の引数仕様を変更 TextReader
クラスが継承可能になりました。 nn/nlib/utility.h
, nn/nlib/time.h
, nn/nlib/uriparser.h
が削除されました。 AsciiReader
, AsciiWriter
クラスがdeprecatedになりました。次回リリース以降のいつかの時点で削除されます。 TextReader
, TextWriter
クラスの処理速度改善と高機能化により、ASCII文字列専用のクラスが存在する必要がなくなったと判断しました。 1000%
程度、非SIMD版では最大50 - 300%
程度の速度改善を見込むことができます。 nlib_utf16nlen(), nlib_utf16cpy(), nlib_utf16ncpy()
nlib_utf32nlen(), nlib_utf32cpy(), nlib_utf32ncpy()
nlib_memcmp()
nlib_memchr(), nlib_memrchr(), nlib_memchr_not(), nlib_memchr_mb()
nlib_memchr_range_not(), nlib_memchr_lt(), nlib_memchr_gt()
nlib_strchr(), nlib_strrchr(), nlib_strchr_mb()
nlib_strcplen_ex()
nlib_strlen(), nlib_memcmp()
等各種関数をSSE2を用いて高速化 SmartBitmap
をSSE4.2のPOPCNT命令を用いて高速化(実行マシンがSSE4.2をサポートしている場合) Uri
クラスのパース処理及びURI生成処理の速度改善を行いました。 AsciiReader, AsciiWriter
クラスの処理速度改善を行いました。 TextReader, TextWriter
クラスの処理速度改善を行いました。 TextReader
に対するメンバ関数の追加を行いました。 SizedEnum1, SizedEnum2, SizedEnum4
及び、SizedEnum.h
が削除されました。 samples/cmake/
ディレクトリ内のシェルスクリプトから起動できます。 nn::nlib::move_tag()
を与えると、引数オブジェクトがムーブ(オブジェクトのswap
メンバ関数を利用)されるようになります。 Thread
クラスの引数受け渡し方法の改善しました。 nn::nlib::move_tag()
を引数として渡すことで、引数オブジェクトがムーブされるようになります。 Thread::StartRef()
関数が削除されています。 nn::nlib::msgpack::JsonWriter
の速度を改善しました。 nlib_memcpy(), nlib_memmove()
においてSDKが提供する高速版を利用するよう修正しました。 nlib_strlen(), nlib_wcslen()
を追加しました。プラットフォームによっては標準のものより高速になることがあります。 nmalloc
の動作速度がmalloc
に比べて遅い問題の修正 BinaryReader
で浮動小数を読もうとした場合のバグの修正 heap
ライブラリ内のdeprecatedされたクラスやファイルの削除やクラスの整理 HeapBase, FixedMemoryHeap, FixedMemoryHeapSet
が削除されました。 UnitHeap, FrameHeap
はシングルスレッド専用に変更されました。 heap
ライブラリの改良 CentralHeap
でdouble freeの検出を行う仕組みを実装しました。また、メタデータ内のポインタの書き換えや不正書き換えが難しくなるようにしました。 CachedHeap
内にキャッシュされている再割当て用メモリのリストを構成するポインタをマングルしてメモリの意図しない書き換えや不正書き換えが難しくなるようにしました。 nfree()
後のメモリ書き換えによるCentralHeap
内部への影響を軽減する仕組みを実装しました。 NMALLOC_HEAPOPTION_CHECK_1
オプションを利用してCentralHeap/CachedHeap
を立ち上げることによって、アロケートしたメモリに16bitの付加情報を2つ記述することが可能になりました。 heap
ライブラリのobject_tracking
サンプルではメモリリークしたオブジェクトに対し、オブジェクトの型に対応したデストラクタを呼び出しメモリを解放するコードを示しています。 speeddemo
サンプルを追加しました。 nmalloc()
の速度と速度面の理由でカスタムアロケータを利用すべきケースが理解できるようになっています。 HeapBase::HEAPOPTION_ZEROCLEAR
, HeapBase::DUBUGFILL
の機能は、CentralHeap
, CachedHeap
からは削除されています。 nn::nlib::msgpack::JsonReader
の速度を改善しました。 nn::nlib::oss::BsDiffZ()
, nn::nlib::oss::BsPatchZ()
関数を利用した場合のみ、bsdiff
を利用しているという識別子がCAFE/CTRの実行バイナリに含まれるように修正しました。 nlib_debug_backtrace()
, nlib_debug_backtrace_gettext()
関数を追加しました。 nlib_getenv()
関数を追加しました。 nlib_mutex
の実装を改善しました。CRITICAL_SECTION
を利用できる場合には利用するようになります。 nmalloc
のパフォーマンスが(特にシングルスレッド環境において)改善 Platform.h
を参照してください。 SizedEnum1, SizedEnum2, SizedEnum4
がdeprecated指定されました。次回リリース以降のいつかの時点で削除されます。 nn::nlib::heap::FixedMemoryHeapSet
がdeprecated指定されました。次回リリース以降のいつかの時点で削除されます。 HeapBase::AllocV(), HeapBase::FreeV(), HeapBase::HasPtr()
がdeprecated指定されました。次回リリース以降のいつかの時点で削除されます。 heap
ライブラリに定義されているStackHeap, FrameHeap, UnitHeap, CentralHeap
はnn::nlib::heap::HeapBase
クラスやFixedMemoryHeap
クラスを継承しないクラスとなります。 nn::nlib::heap::FixedMemoryHeap
クラスは将来的に削除される予定です。 nn::nlib::heap::UnitHeap
, nn::nlib::heap::FrameHeap
はマルチスレッド対応版が削除され、クラステンプレートでないシングルスレッド専用版が代わりに提供される予定です。スレッドセーフなUnitHeap
, FrameHeap
を利用するより、nmalloc()
やCachedHeap/CentralHeap
を利用した方が汎用的で効率もよいことが多いためです。 nn/nlib/utility.h
, nn/nlib/time.h
, nn/nlib/uriparser.h
がdeprecated設定されました。次回リリース以降のいつかの時点で削除されます。 __builtin_expect
が利用可能なコンパイラにおいてコンパイラの分岐予測に対する最適化を追加しました。 NULL
引数や戻り値の未チェックに対する警告を行うように設定しました。 oss
ライブラリを追加しました。カテゴリIなので利用の際には必要な手続きにご注意ください。 nlib
のI/F上で構築したもの nlib
内部のメモリアロケーションを、nlib_malloc()
, nlib_free()
等の関数経由にして、メモリアロケーションの処理を切り替えることを可能にしました。 heap
ライブラリのreplace_malloc
サンプルを御覧ください。 nlib_malloc()
はmalloc()
、nlib_free()
はfree()
等になります。 UniquePtr
のデリーターオブジェクトがデータメンバを持つことが可能になりました。 ReallocVec
が内部で利用するアロケータ(reallocと同様の関数)を指定できるようになりました。 ReallocOutputStream
が内部で利用するアロケータ(reallocと同様の関数)を指定できるようになりました。 ZlibInputStream
/ZlibOutputStream
が内部で利用するアロケータ(reallocと同様の関数)を指定できるようになりました。 heap
ライブラリにnn::nlib::heap::nmalloc_size()
を実装しました。 nlib_thread_setaffinity()
関数を追加しました。 nlib_thread_setname()
関数を追加しました。 nrealloc()
で、物理ページを割り当てないことがある不具合の修正を行いました。 Platform.h
及びNMalloc.h
がCコンパイラではコンパイルできない不具合の修正を行いました。 testing
ライブラリのコマンドライン引数に、--ntest_prefix
が追加されました。 uri
サンプルにnn::nlib::UriTemplate
クラスを使うサンプルコードが追加されました。UriTemplate
クラスを利用するとURI Template(RFC6570)を利用することができます。 nlib_write_stdout()
, nlib_write_stderr()
が追加されました。 vsnprintf()
をより安全に扱うための関数である、nlib_vsnprintf()
が追加されました。 strcpy_s()
等に相当するnlib_strcpy()
等の関数が追加されました。 nlib_debug_break()
関数が追加されました。 msgpack
ライブラリ内のグローバルのSimpleCriticalSection
のコンストラクタが不正なタイミングで初期化されてしまうかもしれない問題を修正しました。 testing
ライブラリ以外)。 nn::nlib::g_FSClient
が削除されました。ファイルI/Oを初めて利用する際に内部でクライアントが作成されるようになります。 OSMutex
からOSFastMutex
に、条件変数がOSCond
からOSFastCond
に変更されました。 socket
ライブラリが削除されました。socketに関しては、Win32/Linux/Cygwinにおいてwinsock2又はbsd socketをラップしたものがPlatform.h
に定義されます。 NLIB_PRINTF
が内部でUTF-8をSJISに変換してから表示するように変更されました。 datetime
サンプルが追加されました。nn::nlib::DateTime
クラスの豊富な機能が例示されています。 stringutils
サンプルが追加されました。nn::nlib::StringView
やユニコード文字列の正規化機能の利用方法が示されています。 nflags
サンプルが追加されました。nn::nlib::Nflags
を利用することによってコマンドラインツールのオプション文字列の処理を簡単に行うことができます。 socket
ライブラリ以外のライブラリはBoostを利用せずに利用が可能になった。 Platform.h
に定義されている。 nn::nlib::unicode::Utf8ToUtf32()
, nn::nlib::unicode::Utf8ToUtf16()
の動作速度を改善した。 nn::nlib::unicode::Utf16ToUtf8()
, nn::nlib::unicode::Utf32ToUtf8()
の動作速度を改善した。 CRLF
を含むXMLでパースが正常に行われないことがある不具合の修正 ThreadArg1, ThreadArg2, ThreadArg3, ThreadArg4, ThreadArg5
を削除 char
からwchar_t
に戻した。 exi
ライブラリの改良とバグフィックス ExiChar
がchar
型の場合、要素名がアスキー文字のみでない場合にパースが間違って失敗するかもしれないバグの修正 Nlist
のbegin()
とend()
が一致しないことがあるバグの修正 exi
ライブラリの改良 XmlStreamReader
/XmlStreamWriter
の各インスタンス毎にアロケータを設定することが可能になった。 ExiAllocatorEx
オブジェクトを作成し、XmlStreamReader
/XmlStreawmWriter
のCreate()
関数に渡すことでインスタンス専用のアロケータが利用されるようになります。今までのアロケータとの併用も可能です。 heap
ライブラリ(nmalloc, nfree等)の改良
NLIB_USE_NMALLOC_AS_MALLOC
マクロを記述することで、malloc等の実装をnmallocのものに置き換えることが可能(MSVC以外) VirtualAlloc
, mmap
等を用いたメモリ確保を実装。 nn::os::MemoryBlock
が利用されている。 LD_PRELOAD
環境変数を設定して、既存のプログラムのmallocを動的にnmallocの呼び出しに置き換えてnmallocの信頼性と性能に関するテストを行なっている。 heap
ライブラリのnmalloc
/nfree
の改善 nmalloc_init
の呼び出しが不要になった。 nmalloc_finalize
の呼び出しが不要になった。 nmalloc_finalize_tls()
の呼び出しが、win32, linux, CAFE(PPC)においては不要になった(呼び出しても問題ない)。 nn::nlib::threading::ThreadPool
Future
を利用して取得することができる。 nn::nlib::threading::AsyncFileIo
. 内部実装で非同期I/Oを利用しているかしていないかに関わらず同じAPIを提供している。 socket
ライブラリ以外はboostがなくても動作するようになった。 succinct
ライブラリからstd::vector
, std::string
の使用を取り除いた。 StringView
の実装。 std::string
の一部メンバ関数をコピーや動的なメモリ確保を行わない形で実装している。 ReallocVec
, ReallocQueue
, ReallocCstringVec
を実装 Nqueue
を実装。内部でNlist
を利用している。 ScopedPtr
, ScopedArray
を削除した。 socket
ライブラリを削除した。 __STDC_LIMIT_MACROS, __STDC_CONSTANT_MACROS, __STDC_FORMAT_MACROS
が定義されていない場合、Config.h
で定義されるようになった。 INT32_MAX, PRIu64
等の定義を標準ヘッダstdint.h
内の定義を使うようになった。 nn::nlib::threading::SharedMutex
std::shared_mutex
と同じ名前のメンバ関数を持つ(http://isocpp.org/files/papers/N3659.html)。 nn::nlib::threading::CondVarFallback
クラス Semaphore
を2つとSimpleCriticalSection
を1つ使う。 nn::nlib::threading::CondVar
の実装として使われる。 nn::nlib::threading::CriticalSectionFallback
nn::nlib::threading::CriticalSection
の実装として使われる。 nn::nlib::threading::TimedCriticalSection
を実装し、nn::nlib::threading::Mutex
を削除した。 nn::nlib::threading::TimedCriticalSectionFallback
が利用される。 nn::nlib::threading::Future
に対する機能強化。詳しくは、http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3558.pdf を参照のこと。 Then()
メンバ関数を追加した。これは複数の非同期実行を順番に連結していく仕組みで、別スレッドでの実行から複数の戻り値を取り出すのに使うことができる。 WhenFutureComplete
クラスを追加した。これは複数のFuture
の全て又は一部に値が設定された場合に設定されるFuture
を作成するためのクラスで、複数の非同期処理を束ねる用途に使うことができる。 GetError()
関数でエラー状態を取得できるようになり、非同期処理が明示的にエラー状態を返すことができるようになった。 MakeReadyFuture()
関数を追加した。 nn::nlib::threading::Thread
から関数オブジェクトやラムダなどの関数ポインタ以外でスレッドを起動できるように変更した。 nn::nlib::threading::ThreadArg<T1...>
を新設して、ThreadArg1, ThreadArg2, ThreadArg3, ThreadArg4, ThreadArg5
をdeprecatedにした。近い将来のリリースで削除される予定。 boost
ライブラリ認識に対応するためのcmakeスクリプトの修正 msgpack
ライブラリにJSON-RPC 2.0のサポート(client/server)を追加 nn::nlib::msgpack::jsonrpc
名前空間に定義される。 AsciiReader
, AsciiWriter
を実装。ASCIIテキストの場合は、TextReader
, TextWriter
を利用するよりも効率よく動作させることができる。 ThreadSettings
にdetached
フィールドを追加した。true
の場合、スレッドの開始時にデタッチされた状態になる。 nn::nlib::threading::Async
の動作を改善。 testing
ライブラリの改善 --gtest_repeat
コマンドラインオプションの追加 --gtest_break_on_failure
の動作タイミングの改善 ThreadSettings
を設定した場合の誤動作の修正。 StringOutputStream
, VectorOutputStream
が削除された。 ScopedPtr
, ScopedArray
をdeprecatedにした。近い将来のリリースで削除される予定。 sysPrintf
をsysPrintfNoTimeStamp
に変更 nn::nlib::CodePointCount()
関数の追加 nullptr
の衝突問題への対処。nullptr
の定義をnn::nlib
名前空間に移し、nullptr
がマクロ定義されている場合はマクロ定義を利用するようにする。 MpObject
の利用時に14バイト以下のバイト列(文字列)はオブジェクト内のフィールドに畳み込まれるように変更(以前は8バイト以下) StrTo()
関数のフォールバック実装である StrToFallback()
を追加した。 strtol
等を利用しない実装 SnPrintf()
関数のフォールバック実装である SnPrintfFallback()
を追加した。 vsnprintf
, vsnwprintf
等を利用しない実装 nn::nlib::threading::this_thread::Sleep()
が動作するようにした。 nn::nlib::threading::Semaphore
の定義をIOPのシステムソフトウェアに合わせてアップデートした。 Barrier
が動作するように変更。 StrTo()
関数の動作を改善。浮動小数点型も含め利用可能になった。 SnPrintf()
関数の動作を改善 SnPrintf()
関数が利用できるように変更
nn::nlib::DateTime::GetNow()
の実装を行った。 new T[0]
が必ず失敗することに起因する不具合の修正。succinct
ライブラリに影響。 NLIB_HAS_SSCANF
, NLIB_SSCANF
を削除 NLIB_HAS_VSNWPRINTF
を削除 nn::nlib::threading::Future
, nn::nlib::threading::Promise
, nn::nlib::threading::PackagedTask
, nn::nlib::threading::Async
が追加された。それぞれ、C++11標準ライブラリの、future, promise, packaged_task, async
に類似した機能を持っていて、スレッドの実行結果を安全に出力及び取得できるようにしている。 nn::nlib::threading::Thread::Start()
関数のオーバーロードを追加した。 MpObject
に格納しておくように変更。 MpObject
に格納しておくように変更。 nn::nlib::DateTime::ToRfc2822()
で2000年1月1日以前の曜日を正しく出力できないバグの修正 nn::nlib::DateTime::ToW3cDtf()
の文字列変換のバグを修正 nn::nlib::Nlist
のiterator, const_iterator
の実装の改善 nn::nlib::DateTime::GetNow()
が正しく動作しないバグの修正。 nn::nlib::threading::Thread
において、デタッチ後かつスレッド終了前にデストラクタが呼ばれた場合、不正に(早期に)メモリがシステムに返却されていたバグを修正。 MpObject
に8バイト以内の小さなバイトデータ(文字列等)を代入する場合に、MpObject
に既にデータが入っているケースにおいてメモリリークの恐れがあるバグの修正。 ReallocOutputStream
が実装された。 VectorOutputStream, StringOutputStream
をdeprecatedにした。利用した場合は警告が発生する。 nn::nlib::threading::UniqueLock
が新たに実装され、nn::nlib::threading::ScopedLock
はごく単純な実装に変更された。 UniquePtr
が配列データ(new[]
で作成されたオブジェクト)に対応した。例えば、UniquePtr<char[]> ptr(new char[1024])
のようにして利用することができる。 UniquePtr
はScopedPtr
の機能を全て含むので、ScopedPtr
は将来においてdeprecatedになるかもしれない。 XmlStreamWriter
のクローズの際にベースストリームを一緒に閉じてしまう動作の修正(nn::nlib::exi::XmlStreamWriter
はベースストリームを所有していないので、ベースストリームはXmlStreamWriter
から切り離されるだけである必要がある) nn::nlib::msgpack::MpWriter
のクローズの際にベースストリームを一緒に閉じてしまう動作の修正 Pos()
を実行すると0が戻るように変更された。 ScopedLock
, SimpleCriticalSection
, CriticalSection
のメンバ関数名等が一部変更された。 nn::nlib::UniquePtr
はstd::unique_ptr
(template alias) nn::nlib::threading::ScopedLock
はstd::lock_guard
(template alias) nn::nlib::threading::UniqueLock
はstd::unique_lock
(template alias) nn::nlib::threading::SimpleCriticalSection
はstd::mutex
(typedef) nn::nlib::threading::CriticalSection
はstd::recursive_mutex
(typedef) nn::nlib::threading::Mutex
はstd::recursive_timed_mutex
Nlist
の例外安全性の改善 nn::nlib::msgpack::MpWalker
クラスを実装した。 nn::nlib::msgpack::JsonReader
/ nn::nlib::msgpack::JsonWriter
に読み書きオプションを追加 nn::nlib::msgpack::MpObject
, nn::nlib::msgpack::MpReader
, nn::nlib::msgpack::MpWriter
がnn::nlib::Nlist
コンテナとしてサポート documents-ja/API/
に変更 char16_t
, char32_t
) strcpy(), memcpy(), strcat(), isdigit()
等の標準関数をより安全に使うためのラッパー関数をCstring.h
に定義 std::vector<T>
に似たコンテナクラス(nn::nlib::Nlist<T>
)を実装した。 push_back()
操作に関してはstd::vector
並かそれ以上(インプレイスでの初期化が可能なため)の速度 iterator
を利用する場合はstd::vector
並のアクセス速度 operator[](size_t idx)
は、 \(O(\log idx)\)時間で動作 wchar_t
(UTF-16/UTF-32)又はchar(UTF-8)で選択可能にした。 wchar_t
のみだった。 ExiChar
という型にtypedefされている。 nlib
のビルド時に選択可能 msgpack::JsonReader
の改善 double
型のオーバーフローとアンダーフローがエラーになるように変更 msgpack::CsvReader
の改善 double
型のオーバーフローとアンダーフローがエラーになるように変更 Tokenizer
UriTemplate
DateTime
StrTo
nn::nlib::Nflags
を実装した。 ac
, nexiconv
のコマンドラインオプションの仕様を変更。 wf
を追加。検出語と検出除外語のリストからnn::nlib::succinct::WordFilter
オブジェクトのバイナリを作成。 acmatch
を削除。 UriTemplate
の実装。RFC6570(https://tools.ietf.org/html/rfc6570)のLevel3をサポート。 InputConverterStream
, OutputConverterStream
の実装 Utf32InputStream
, Utf16InputStream
, WcharInputStream
の実装 InputStream
, OutputStream
の内部を最適化等 InputStream::Read(ptr, n)
を実行した後に、InputStream::Pos()
が不正になることがあるバグの修正。 InputStream
にInputStream::Skip()
関数を追加 TextReader
から現在読み込んでいる行と桁を取得できるように変更。 strtol(), strtoul(), strtoll(), strtoull(), strtod()
を統一的なコードで安全に利用するためのラッパである、 StrTo()
関数の実装 DateTime
, TimeSpan
を再実装して置き換えた。 DateTime
を設定できるようになった。 StringInputStream
の実装。std::string
に出力するストリームクラス。 unicode
名前空間を新たに作成し、ユニコード関連の機能を追加した。 unicode::WideToUtf8
, unicode::Utf8ToWide
といった変換関数はnn::nlib
名前空間からnn::nlib::unicode
名前空間へ移動 msgpack::CsvReader
の実装。RFC4180(https://www.ietf.org/rfc/rfc4180.txt)に準拠 StringOutputStream
の実装。std::string
に出力するストリームクラス。 TextWriter
の仕様変更 CRLF
からLF
に 変更した。CR, CRLF
はLF
に変換されて出力される。 utf16_t
), UTF-32の文字(utf32_t
) のtypedef
を追加 uint16_t, uint32_t
にtypedef
されている。C++11ではchar16_t, char32_t
にtypedef
される予定 TextWriter
の機能追加 Write
メンバ関数の引数型にutf16_t
, utf32_t
型のオーバーロードを追加。UTF-16とUTF-32のキャラクタを渡すことができる。 SmartBitmap
クラスをnn::nlib
名前空間へ移動, succinct
ライブラリからmisc
ライブラリに移動した。 exi
ライブラリのバグフィックス CR
が含まれる場合、読み込み時に失敗する問題の修正 LF
に変換されるよう修正 testing
ライブラリを追加 ASSERT_EQ
等)の多くが同じように動作 std::ostream
が利用できない環境でも利用可能 succinct
ライブラリの機能追加及び修正 nn::nlib::succinct::WordFilter
/ nn::nlib::succinct::WordFilterBuilder
クラスの追加。検出したい語と例外語を列挙することで大規模なフィルタリングが効率的に実行可能。 nn::nlib::succinct::Sbv
クラスのメモリリークの修正 misc
ライブラリへのクラスの追加 ScopedArray
クラスの追加。ScopedPtr
の配列対応版。 UniquePtr
クラスの追加。release()のついたScopedPtr
。 std::auto_ptr
を利用しないように変更(for C++11) misc
ライブラリからAlarm
クラス、及びmisc/alarmサンプルの削除 TextReader
, TextWriter
のエラー値をerrno_t
型に変更 BinaryReader
, BinaryWriter
のエラー値をerrno_t型に変更 nn::nlib::Utf8ToUtf32
, nn::nlib::Utf8ToUtf16
, nn::nlib::Utf32ToUtf8
, nn::nlib::Utf16ToUtf8
を追加 TextWriter
でマルチバイト文字列を書けるように変更 TaggedTextParser
クラス(XML風タグ付きテキスト用パーサー)の実装 ZlibInputStream
, ZlibOutputStream
の実装によるzlibのサポート nmalloc
でThreadLocalDataを利用するように変更 NullInputStream
, NullOutputStream
の追加 nn::nlib::Crc32
クラスの追加。 FileOutputStream
に追記モードを追加。エラーの戻り値のリファイン。 TextWriter
クラスに書式付き出力メンバ関数(WriteFormat)を追加。 heap
ライブラリのnmalloc_reallocサンプルのため。 TextWriter
が改行でベースストリームをFlushするように修正 ConsoleOutputStream
でClose時にFlushされない不具合の修正 FileInputStream, FileOutputStream
が動作するようになった。 FileOutputStream
の実装とPcFileOutputStream
の廃止(IOPではまだ動作しません) FileInputStream
を実装とPcFileInputStream
の廃止(IOPではまだ動作しません) OutputStream
のエラー値の型をerrno_t
に変更 InputStream
のエラー値の型をerrno_t
型に変更 InputStream
/ OutputStream
で配列データを読み書きする際のエンディアン対応バグの修正 ScopedPtr
が不完全な型に対してエラーになるように修正 © 2013, 2014, 2015 Nintendo Co., Ltd. All rights reserved.