После указания ошибки компилятора я заметил, что clang stdbool.h
содержит (среди прочего) следующие строки:
#define bool bool
#define false false
#define true true
Они содержатся в блоке #ifdef
, который косвенно поддерживает __cplusplus
, поэтому тег С++, хотя stdbool.h
является заголовком C.
Какая потребность в них определяет? Я предполагаю, что они требуются по какой-то причине, связанной с препроцессором, но мне было бы интересно узнать, какая часть стандарта или какая техническая причина делает так, чтобы это было связано с этим.