3 #ifndef INCLUDE_NN_NLIB_UNICODE_STRINGPREP_H_
4 #define INCLUDE_NN_NLIB_UNICODE_STRINGPREP_H_
25 static bool InTableC11(uint32_t utf32) NLIB_NOEXCEPT {
return utf32 == 0x0020; }
28 return utf32 < 0x0020 || utf32 == 0x007F;
34 static bool InTableC5(uint32_t utf32) NLIB_NOEXCEPT {
35 return utf32 >= 0xD800 && utf32 <= 0xDFFF;
37 static bool InTableC6(uint32_t utf32) NLIB_NOEXCEPT {
38 return utf32 >= 0xFFF9 && utf32 <= 0xFFFD;
40 static bool InTableC7(uint32_t utf32) NLIB_NOEXCEPT {
41 return utf32 >= 0x2FF0 && utf32 <= 0x2FFB;
44 static bool InTableC9(uint32_t utf32) NLIB_NOEXCEPT {
45 return utf32 == 0xE0001 || (utf32 >= 0xE0020 && utf32 <= 0xE007F);
54 #endif // INCLUDE_NN_NLIB_UNICODE_STRINGPREP_H_
static bool InTableC9(uint32_t utf32) noexcept
RFC3454のC.9に記載された文字(タグ文字)かどうかを判定します。
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
RFC3454(https://www.ietf.org/rfc/rfc3454.txt)で定義されている各種テーブルを実装しています。 ...
StringPrepによるマッピングの結果を格納する構造体です。
static bool InTableC11(uint32_t utf32) noexcept
RFC3454のC.1.1に記載された文字(ASCIIのスペースのみ)かどうかを判定します。
size_t n
StringPrepMapResult::codeに格納されている文字数
static bool InTableC5(uint32_t utf32) noexcept
RFC3454のC.5に記載された文字(サロゲートコード)かどうかを判定します。
static bool InTableC6(uint32_t utf32) noexcept
RFC3454のC.6に記載された文字(平文として不適切)かどうかを判定します。
static bool InTableC21(uint32_t utf32) noexcept
RFC3454のC.2.1に記載された文字(ASCIIの制御文字)かどうかを判定します。
static bool InTableC7(uint32_t utf32) noexcept
RFC3454のC.7に記載された文字(正規表現には不適切)かどうかを判定します。