可以隐藏(或取消定义)typedef吗
Is it possible to hide (or undefine) a typedef?
为了避免混淆和可能的错误,是否可以隐藏或取消定义typedef。
我同时做了很多c++和java。在java中,布尔类型为boolean
,在c++中为bool
。问题是,在windows c++库的某个地方,有一个:typedef unsigned char boolean;
。这意味着,在我的c++代码中,我将bool
类型错误键入为boolean
,它将进行编译,并可能导致意外错误,因为它是一个无符号字符,而不是真正的bool
。
那么,我可以做些什么来隐藏或取消定义c++中的布尔类型定义呢?
是的,可以使用如下示例中的预编译器指令:
typedef int foo;
#define foo not_to_be_used
int main() {
foo a = 1; // error: unknown type name 'not_to_be_used'
}
基本上,通过这种方式可以取消typedef。如果在预编译器定义之下使用foo
,则上面的代码将发出错误。
实时演示
相关文章:
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 如何重新定义MPI_FLOAT,MPI_DOUBLE以 typedef 的方式
- 使用LASlib时BOOL typedef重新定义
- "typedef"类型名称是否可以像"struct"定义那样声明指向结构的指针?
- 具有未声明/未定义类型的 typedef 结构
- typedef 应该同时在类定义和类声明中吗?
- 定义 ostream 运算符<<用于类中定义的 typedef
- 模板化类,包含由 typedef 定义的类对象的向量.如何称呼它们
- C 通过Typedef定义新类型
- Typedef已定义的功能
- typedef 中的自定义类型为 Qt MetaType
- 错误:使用不同类型的 Typedef 重定义
- 带有STD ::向量的模板Typedef具有自定义分配器
- 在Visual Studio中定义与Typedef枚举发生冲突的原因是什么?
- 如何比较/排序包含自定义 typedef 的列表容器的元素
- 如何为联合成员定义typedef
- 为函数定义 typedef,该函数返回指向类似自身的函数的函数指针
- 在本地范围内重新定义typedef
- 定义Typedef?(UDP数据包)
- 使用基类并从中重新定义typedef