I think it should be 1. Because 1 byte is enough to hold this BOOL. And if I comment "BOOL b:1", it becomes a empty struct, and its size is 1 now.
#include <iostream>
#include <string>
using namespace std;
enum BOOL { FALSE=0, TRUE=1 };
struct A {
  BOOL b:1;
};
int main()
{
  std::cout << sizeof(A)  << std::endl; //output 4.
}
 
    