C++11 では、UTF-8、16、および 32 の新しい文字列リテラルがu8
,u
およびU
プレフィックスとともに導入されましたが、使用するものをハード コードする必要があります。コンパイル時に使用するエンコーディングを選択する方法を探しています (typedef の動作と同様)。
ユーザー定義の文字列リテラルは、指定されたエンコーディングの文字列で機能するため、役に立たないようです。
L("string")
C++11 以前のコードで、どちらかを選択するなどの短いマクロの使用を見たことが"string"
ありますL"string"
が、個人的にはそれは非常に見苦しいと思います。
デフォルトのタイプとエンコーディングを適切に選択することは可能ですか、それともマクロ オプションを使用する必要がありますか?