2016-08-17 7 views
1

私はC++ Builder XE4を使用しています。C++ Builder>バイナリ番号0b1でエラーが発生するE2141

私のコードで0b1のような2進数を使用しようとしています。続き

は、私が試したコードされています

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

+3

私はコンパイラが単にそれをサポートしていないと思います。 – Joey

答えて

2

整数リテラルのバイナリ表記は、new feature in C++14です。ただし、現時点ではC++ BuilderのC++ Builderコンパイラはありません。

XE4では、Win32 compilerOSX compilerはC++ 11をまったくサポートしていません(10.0 Seattleには32ビットC++ 11コンパイラが追加されています)。しかし、Win64 compilerはC++ 11をサポートしています。

現在のC++ Builderコンパイラは、10進数、8進数、および16進数のみをサポートしています。詳細については、Embarcaderoのドキュメントを参照してください。Integer Constants

+0

ありがとうございます。私はこの種の情報をGoogleを使って見つけようとしていましたが、成功しませんでした。これで、キーワード「整数定数」を使って見つけることができます。それは有り難いです。 – sevenOfNine

1

あなたがこれをコンパイルしたい場合は、C++ 11コンパイラとC++ Builderの新しいバージョンが必要になります。

+2

XE4では、[Win64コンパイラ](http://docwiki.embarcadero.com/RADStudio/XE4/en/BCC64.EXE,__CETAILER)はC++ 11コンパイラですが、[Win32コンパイラ](http://docwiki.embarcadero.com/RADStudio/XE4/en/BCC32.EXE,_the_C%2B%2B_32-bit_Command-Line_Compiler)および[OSXコンパイラ](http://docwiki.embarcadero.com/RADStudio /XE4/en/BCCOSX.EXE,_the_C%2B%2B_Cross_Compiler_for_OS_X)はそうではありません。 –

+2

しかし、[この参照](http://en.cppreference.com/w/cpp/language/integer_literal)と[この記事](http://www.informit.com/articles/article.aspx? p = 2209021)、C++ 14ではバイナリ表記が新しく、C++ 11では新しくなりました。 –

関連する問題