/Zc:char8_t
(啟用C++20 char8_t類型)
編譯 /Zc:char8_t
程式選項會啟用C++20 符合 char8_t
類型支援。 char8_t
是用來表示UTF-8字碼單位的字元類型。
語法
/Zc:char8_t
[-
]
備註
編譯 /Zc:char8_t
程式選項會啟用 char8_t
C++20 標準中指定的 type 關鍵詞。 它會導致編譯程式分別產生 u8
前置字元或字串常值做為 const char8_t
或 const char8_t[N]
類型,而不是或 const char
const char[N]
類型。 在 C++17 中,可以使用字串常值初始化 u8
的char
陣列。 在 C++20 中,此初始化的格式不正確,並導致編譯程式錯誤 C2440。 此行為可以是重大來源變更。 您可以藉由指定 /Zc:char8_t-
,將編譯程式還原為 C++14 或明確C++17 行為。
此選項 /Zc:char8_t
可從 Visual Studio 2019 16.1 版開始提供。 當您指定 /std:c++20
或更新版本時,系統會自動啟用它(例如 /std:c++latest
)。 否則,預設為關閉。
範例
const char* s = u8"Hello"; // Compiles in C++17, Error C2440 in C++20
const char8_t* s = u8"Hello"; // Compiles in C++20 or with /Zc:char8_t
在 Visual Studio 中設定這個編譯器選項
開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性。
選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。
將 或
/Zc:char8_t-
新增/Zc:char8_t
至 [其他選項:] 窗格。