/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_tconst char8_t[N] 類型,而不是 或 const charconst 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 中設定這個編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。

  3. 將 或 /Zc:char8_t- 新增 /Zc:char8_t 至 [ 其他選項: ] 窗格。

另請參閱

/Zc (一致性)
/std (指定語言標準版本)