例子:
int main()
{
typedef int Oranges;
typedef int Apples;
/* ... a lot of other code */
Oranges not_apples = 10;
Apples apples = not_apples; // ??? confusing
}
问题:我们能否禁止对通过 typedef 声明的变量进行隐式转换?
最佳答案
typedef
实际上只是创建了一个基本类型的别名,因此您创建的两种类型实际上只是 int
的别名。您正在寻找的是 boost::strong_typedef
。
关于c++ - Typdef 和隐式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9510185/