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


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 แต่ก็ไม่ประสบความสำเร็จ ตอนนี้ฉันสามารถค้นหาได้โดยใช้คำหลักค่าคงที่จำนวนเต็ม ฉันรู้สึกทราบซึ้ง. - person sevenOfNine; 18.08.2016

หากคุณต้องการคอมไพล์ คุณจะต้องมี C++ Builder เวอร์ชันใหม่ที่มีคอมไพเลอร์ C++11

person Kerem    schedule 17.08.2016
comment
ใน XE4 คอมไพเลอร์ Win64 เป็นคอมไพเลอร์ C++11 แต่ คอมไพเลอร์ Win32 และ คอมไพเลอร์ OSX ไม่ใช่ - person Remy Lebeau; 18.08.2016
comment
อย่างไรก็ตาม ตามข้อมูลอ้างอิงนี้ และ บทความนี้ สัญกรณ์ไบนารีเป็นสิ่งใหม่ใน C++14 ไม่ใช่ C++11 - person Remy Lebeau; 18.08.2016