5

C++11 では、UTF-8、16、および 32 の新しい文字列リテラルがu8,uおよびUプレフィックスとともに導入されましたが、使用するものをハード コードする必要があります。コンパイル時に使用するエンコーディングを選択する方法を探しています (typedef の動作と同様)。

ユーザー定義の文字列リテラルは、指定されたエンコーディングの文字列で機能するため、役に立たないようです。

L("string")C++11 以前のコードで、どちらかを選択するなどの短いマクロの使用を見たことが"string"ありますL"string"が、個人的にはそれは非常に見苦しいと思います。

デフォルトのタイプとエンコーディングを適切に選択することは可能ですか、それともマクロ オプションを使用する必要がありますか?

4

1 に答える 1

0

残念ながら、この問題の解決策はマクロを使用することです。@Nadim Farhatは、gcc を使用してある程度の選択を行うことができると指摘しましたが、それは決して移植可能なソリューションではありません。

于 2013-08-10T17:46:02.907 に答える