4
C++ 11引入了UTF-8,16和32的新字符串文字,其中u8
,u
和U
前綴,但我必須硬編碼我想要的一個使用。我正在尋找一種方法來選擇我想在編譯時使用哪種編碼(類似於typedef的工作原理)。在編譯時爲C++字符串文字選擇默認類型和編碼
用戶定義的字符串文字似乎沒有幫助,因爲它們處理指定編碼的字符串。
我在Pre C++ 11代碼中看到使用短的宏如L("string")
在"string"
和L"string"
之間進行選擇,但是我個人覺得這很醜陋。
是否可以整齊地選擇默認類型和編碼,還是必須使用宏選項?
是的,你需要一個宏,因爲你需要製作令牌。我個人認爲宏觀本身並不醜陋,但它的需求是。 –
它不是關於字符串文字編碼,而是大部分關於默認情況下應用程序將使用哪種字符串類型。是的,你沒有其他選項'使用宏(至少在編譯時)「 – zaufi
它也是關於編碼,默認情況下''」'是一個實現定義的單字節編碼而不是UTF-8,兩者都使用'char'類型 – DrYap