确保使用自定义类型

时间:2011-06-25 21:58:16

标签: c++ types typedef

考虑this answer typedefs对基本类型及其使用原因的好处,是否有任何方法可以确保在项目中不使用基本类型并使用typedef对应项?

3 个答案:

答案 0 :(得分:8)

如果你真的,绝对想要禁止原生类型但允许typedefs,我想你总是可以这样做:

#include <stdint.h>

#define int please_use_stdint_typedefs_rather_than_native_types

int main()
{
    int32_t good;  // Good typedef.
    int evil;      // Evil native type.
}

$ gcc -c int_forbidden.c 
int_forbidden.c: In function ‘main’:
int_forbidden.c:8: error: ‘please_use_stdint_typedefs_rather_than_native_types’ undeclared (first use in this function)
int_forbidden.c:8: error: (Each undeclared identifier is reported only once
int_forbidden.c:8: error: for each function it appears in.)
int_forbidden.c:8: error: expected ‘;’ before ‘evil’

那就是说,我不认为在一般情况下彻底禁止原生类型是个好主意。

答案 1 :(得分:5)

您可以按照此提升库中的建议制作这些typedef Strong Typedef:http://www.boost.org/doc/libs/1_40_0/boost/strong_typedef.hpp

答案 2 :(得分:0)

考虑到typedef只是一个类型的同义词而实际上并没有创建一个新类型,我认为没有任何可靠的方法来确保这一点。您可以编写一个脚本来运行代码,并查找原始类型与预期的typedef对应项的出现次数。