アカウント名:
パスワード:
char16_t/char32_tがUTF-16/UTF-32の場合、__STDC_UTF_16__/__STDC_UTF_32__が定義されるという規定がC11にあるはずです(N1570の6.10.8.2 Environment macrosより)。
規格書を見直してみるとありました。ご指摘ありがとうございます。こんな定義ですね。
__STDC_UTF_16__が1に定義されている: char16_t はUTF-16エンコーディング__STDC_UTF_16__が定義されていない: char16_tは処理系定義
__STDC_UTF_32__ もUTF-32について同様。
※ C11では1に定義されているか全く定義されないかの二者択一。2に定義される等のパターンはない。
# char16_t, char32_tの定義自体があるかないかを表すマクロがあるものとばかり思ってました。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy
__STDC_UTF_16__と__STDC_UTF_32__ (スコア:1)
char16_t/char32_tがUTF-16/UTF-32の場合、__STDC_UTF_16__/__STDC_UTF_32__が定義されるという規定がC11にあるはずです(N1570の6.10.8.2 Environment macrosより)。
Re:__STDC_UTF_16__と__STDC_UTF_32__ (スコア:1)
規格書を見直してみるとありました。ご指摘ありがとうございます。
こんな定義ですね。
__STDC_UTF_16__が1に定義されている: char16_t はUTF-16エンコーディング
__STDC_UTF_16__が定義されていない: char16_tは処理系定義
__STDC_UTF_32__ もUTF-32について同様。
※ C11では1に定義されているか全く定義されないかの二者択一。2に定義される等のパターンはない。
# char16_t, char32_tの定義自体があるかないかを表すマクロがあるものとばかり思ってました。
巧妙に潜伏したバグは心霊現象と区別が付かない。