C++Builder > 二进制数 0b1 导致错误 E2141

C++Builder > binary number 0b1 causes error E2141

我正在使用 C++ Builder XE4。

我正在尝试在我的代码中使用二进制数,例如 0b1

以下是我试过的代码:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int num = 0b11;
}

以上导致编译错误:

Unit1.cpp(19): E2141 Declaration syntax error

C++Builder 支持这样的二进制计数吗?

我确认 0x11 在 C++Builder 中工作。

我还确认了 0b11 可以在使用 C++ 的 IDEOne 中使用:

http://ideone.com/oy4aIZ

如果你想编译它,你需要一个带有 C++11 编译器的更新版本的 C++ Builder。

整数文字的二进制表示法是 new feature in C++14。但是,目前没有 C++Builder 版本具有 C++14 编译器。

不过在 XE4 中,Win32 compiler and OSX compiler do not support C++11 at all (a 32bit C++11 compiler was added in 10.0 Seattle). The Win64 compiler 支持 C++11。

目前的C++Builder编译器只支持十进制、八进制和十六进制。有关详细信息,请参阅 Embarcadero 的文档:Integer Constants