У меня есть класс с элементом данных bool
, который не инициализируется конструктором. Если яПечать неинициализированного bool с использованием cout (C++)
cout << x.myBoolDataMember;
где x
является объектом этого класса, в котором bool
не был инициализирован, я иногда получаю случайное число, а не 0 или 1. (я использую gcc
.) Является ли это поведение совместимый с Standard
?
Трудно говорить о значениях при наличии неопределенного поведения. 'bool' имеет только два возможных значения:' false' и 'true'. Тот факт, что 'cout << b' выводит что-то, отличное от' 0' и '1', является следствием не определяемого поведения, а не' b', имеющего значение, отличное от 'false' или' true'. – avakar
Правда. Он также может ничего не печатать, 0,5, «синий» или испускать дым. – MSalters
Вы можете превратиться в кошку. Демоны могли вылететь из вашего носа. –