ตามมาตรฐาน C ++ n4713จะมีข้อมูลโค้ดที่คล้ายกันมาก ประเภทที่ใช้คือBOOL(กำหนดเอง) แต่สามารถใช้กับประเภทใดก็ได้
  12.2.4
  
  4ถ้าค่าจริงหรือเท็จถูกเก็บไว้ในบิตฟิลด์ของชนิดboolขนาดใดก็ได้ (รวมถึงฟิลด์บิตหนึ่งบิต)boolค่าดั้งเดิมและค่าของบิตฟิลด์จะต้องเปรียบเทียบกัน ถ้าค่าของตัวแจงนับถูกเก็บไว้ในบิตฟิลด์ของประเภทการแจงนับเดียวกันและจำนวนบิตในฟิลด์บิตมีขนาดใหญ่พอที่จะเก็บค่าทั้งหมดของประเภทการแจงนับนั้น (10.2) ค่าตัวนับดั้งเดิมและ ค่าของบิตทุ่งจะเปรียบเทียบเท่ากับ [ตัวอย่าง:
enum BOOL { FALSE=0, TRUE=1 };
struct A {
  BOOL b:1;
};
A a;
void f() {
  a.b = TRUE;
  if (a.b == TRUE)    
    {  }
}
  
  - ตัวอย่างตอนท้าย]
เมื่อมองแวบแรกส่วนที่เป็นตัวหนาจะเปิดให้ตีความได้ อย่างไรก็ตามเจตนาที่ถูกต้องจะชัดเจนเมื่อenum BOOLได้มาจากไฟล์int.
enum BOOL : int { FALSE=0, TRUE=1 }; 
struct mystruct { BOOL enabled:1; };
int main()
{
  struct mystruct s;
  s.enabled = TRUE;
  if(s.enabled == TRUE)
    printf("Is enabled\n"); 
  else
    printf("Is disabled !!\n");
}
ด้วยรหัสด้านบนจะให้คำเตือนโดยไม่มี-Wall -pedantic:
  คำเตือน: 'mystruct :: enable' มีขนาดเล็กเกินไปที่จะเก็บค่าทั้งหมดของ 'enum BOOL'
   struct mystruct { BOOL enabled:1; };
ผลลัพธ์คือ:
  ถูกปิดใช้งาน !! (เมื่อใช้enum BOOL : int)
หากenum BOOL : intทำให้เรียบง่ายenum BOOLผลลัพธ์จะเป็นไปตามมาตรฐานด้านบนระบุ:
  ถูกเปิดใช้งาน (เมื่อใช้งานenum BOOL)
ดังนั้นจึงสามารถสรุปได้เช่นเดียวกับคำตอบอื่น ๆ เพียงไม่กี่คำintประเภทนั้นไม่ใหญ่พอที่จะเก็บค่า "1" ไว้ในบิตบิตเดียว
     
              
intฉันคิดว่ามันสามารถเก็บค่า0และ-1.