nlib
nn::nlib::unicode::ToUtf8Obj クラスfinal

UTF-8/UTF-16/UTF-32の文字列をUTF-8として渡すためのクラスです。 [詳解]

#include "nn/nlib/unicode/Convert.h"

公開メンバ関数

 ToUtf8Obj (const wchar_t *wstr) noexcept
 ワイド文字列をUTF-8文字列に変換します。 [詳解]
 
 ToUtf8Obj (const nlib_utf16_t *utf16str) noexcept
 UTF-16文字列をUTF-8文字列に変換します。 [詳解]
 
 ToUtf8Obj (const nlib_utf32_t *utf32str) noexcept
 UTF-32文字列をUTF-8文字列に変換します。 [詳解]
 
 ToUtf8Obj (const char *str) noexcept
 UTF-8文字列を設定します。 [詳解]
 
 operator const char * () noexcept
 暗黙的にC文字列を返します。
 
const char * c_str () noexcept
 明示的にC文字列を返します。 [詳解]
 
 operator bool () const
 オブジェクトが有効ならばtrueを返します。
 

詳解

UTF-8/UTF-16/UTF-32の文字列をUTF-8として渡すためのクラスです。

説明
operator const char*()が定義されているので、マルチバイト文字列として関数の引数等に渡すことができます。 変換等に失敗してオブジェクトが無効状態の場合は、ヌルポインタではなく空文字列が渡されます。 このクラスはUTF-8の文字列リテラルを扱うコードをVisual Studioで動作させるためのユーティリティとして存在しています。 以下のようにマクロを定義して利用することになります。
#ifdef _MSC_VER
#define X(str) L##str
#else
#define X(str)
#endif
......
UseTextAsUtf8(X("my utf8 text"));

Convert.h12 行目に定義があります。

構築子と解体子

§ ToUtf8Obj() [1/4]

nn::nlib::unicode::ToUtf8Obj::ToUtf8Obj ( const wchar_t *  wstr)
explicitnoexcept

ワイド文字列をUTF-8文字列に変換します。

引数
[in]wstrUTF-8文字列として渡したいワイド文字列(UTF-16/UTF-32)
説明
内部で動的に確保されたメモリにUTF-8に変換した文字列を格納します。 変換に失敗した場合はオブジェクトが無効状態になります。

§ ToUtf8Obj() [2/4]

nn::nlib::unicode::ToUtf8Obj::ToUtf8Obj ( const nlib_utf16_t utf16str)
explicitnoexcept

UTF-16文字列をUTF-8文字列に変換します。

引数
[in]utf16strUTF-8文字列として渡したいUTF-16文字列

§ ToUtf8Obj() [3/4]

nn::nlib::unicode::ToUtf8Obj::ToUtf8Obj ( const nlib_utf32_t utf32str)
explicitnoexcept

UTF-32文字列をUTF-8文字列に変換します。

引数
[in]utf32strUTF-8文字列として渡したいUTF-32文字列

§ ToUtf8Obj() [4/4]

nn::nlib::unicode::ToUtf8Obj::ToUtf8Obj ( const char *  str)
inlineexplicitnoexcept

UTF-8文字列を設定します。

引数
[in]strUTF-8文字列
説明
オブジェクトに渡されたポインタを格納します。 動的なメモリ確保や文字列のコピーは行われません。

Convert.h17 行目に定義があります。

関数詳解

§ c_str()

nn::nlib::unicode::ToUtf8Obj::c_str ( )
inlinenoexcept

明示的にC文字列を返します。

戻り値
UTF-8文字列に変換されたC文字列

Convert.h24 行目に定義があります。


このクラス詳解は次のファイルから抽出されました: