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

Я использую С++ 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


person sevenOfNine    schedule 17.08.2016    source источник
comment
Я предполагаю, что компилятор просто не поддерживает его.   -  person Joey    schedule 17.08.2016


Ответы (2)


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

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

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

person Remy Lebeau    schedule 18.08.2016
comment
Спасибо вам всем. Я пытался найти такую ​​информацию с помощью Google, но безуспешно. Теперь я могу найти его, используя ключевое слово Integer Constants. Я ценю это. - person sevenOfNine; 18.08.2016

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

person Kerem    schedule 17.08.2016
comment
Однако согласно этой ссылке и этой статьи, двоичная запись является новой в C++14, а не в C++11. - person Remy Lebeau; 18.08.2016