C++Builder > двоичное число 0b1 вызывает ошибку E2141

Я использую C++ Builder XE4.

Я пытаюсь использовать двоичное число, такое как 0b1 в моем коде.

Ниже приведен код, который я попробовал:

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

Вышеуказанное вызывает ошибку компилятора:

Unit1.cpp (19): E2141 Ошибка синтаксиса объявления

Поддерживает ли C++ Builder двоичную нумерацию следующим образом?

Я подтвердил, что 0x11 работает в C++Builder.

Я также подтвердил, что 0b11 можно использовать в IDEOne с использованием C++:

http://ideone.com/oy4aIZ

2 ответа

Решение

Двоичная запись целочисленных литералов - это новая функция в C++14. Однако в настоящее время ни одна версия C++Builder не имеет компилятора C++14.

В XE4 компилятор Win32 и компилятор OSX вообще не поддерживают C++ 11 (32-разрядный компилятор C++ 11 был добавлен в 10.0 Seattle). Хотя компилятор Win64 поддерживает C++ 11.

Текущие компиляторы C++Builder поддерживают только десятичные, восьмеричные и шестнадцатеричные числа. Подробности смотрите в документации Embarcadero: целочисленные константы

Если вы хотите скомпилировать это, вам понадобится более новая версия C++ Builder с компилятором C++11.

Другие вопросы по тегам