Escribí una colección de estructuras de datos y funciones en C, algunas de las cuales usan el tipo de datos _Bool. Cuando comencé, el proyecto iba a ser pura C. Ahora estoy investigando el uso de un kit de herramientas GUI basado en C++ y he convertido el código de back-end en una biblioteca._Bool y bool: ¿Cómo resuelvo el problema de una biblioteca C que usa _Bool?
Sin embargo, al elaborar el C++ GUI el siguiente error se emite por el compilador:
ISO C++ forbids declaration of '_Bool' with no type
inicialmente pensé que podría buscar & reemplazar _Bool
-bool
y crear:
/* mybool.h */
#ifndef MYBOOL_H
#define MYBOOL_H
typedef _Bool bool;
#endif /* MYBOOL_H */
y luego en cualquier encabezado que use _Bool
#ifdef __cplusplus
extern "C" {
#else
#include "mybool.h"
#endif
/* rest of header... */
Hasta que me di cuenta de que esto compilaría la biblioteca con un tipo de datos booleano (C _Bool) y vincularlos con otra biblioteca (C++ bool). Prácticamente, esto puede no importar, pero teóricamente, probablemente sí (puede haber algún sistema oscuro en alguna parte que haciendo esto haga que el universo se voltee al revés).
Supongo que podría usar un int y usar 0 para falso y 1 para verdadero, y escribirlo con algo como typedef int mybool
, pero parece poco atractivo.
¿Hay una forma mejor/idiomática/estándar para hacer esto?
Haga que el comentario sea una respuesta, 'bool' es como' _Bool' está pensado para ser utilizado normalmente. –
Entonces, ¿no necesito preocuparme por el universo girando de adentro hacia afuera? –