假设我有一个头文件test.h
。
#pragma once
extern uint64_t a;
void foo( uint64_t );
在我的情况下,uint64_t
用于表示Bitboard,这是我的象棋引擎的一部分test.h
自然,我将在所有地方都使用uint64_t
。我想为uint64_t
创建类型别名,即Bitboard
。所以我做了
using uint64_t = Bitboard;
但是由于这是一个头文件,现在Bitboard
到处都定义了,因为该头文件几乎被项目的所有其他文件使用。问题是我只想在
test.h
中使用此别名。 问题
该项目并不小,而且
Bitboard
并不是一个非常独特的标识符,我觉得像这样的全局别名会引起一些冲突,因此我想严格将其保留在test.h
中。有什么办法可以让我仍然在头文件中使用创建的东西,而不会泄漏到项目的所有其他文件中?
最佳答案
最好的办法是使用丑陋的C #define
#pragma once
#define Bitboard uint64_t
extern Bitboard a;
void foo(Bitboard);
...
#undef Bitboard
关于c++ - 我可以在C++头文件中 “hide”定义吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64639837/