【发布时间】:2016-04-11 11:45:53
【问题描述】:
所以,我知道您可以使用以下类型对类型进行别名:typedef int *intPtr
但是 C++ 编译器无法区分它们:
typedef int foo
typedef int bar
foo x = 5;
bar y = 7;
int z = x + y; // checks out
我知道 C++ 没有没有一些诡计 (How can I create a new primitive type using C++11 style strong typedefs?),但我发现所说的诡计难以阅读和理解。
我发现唯一可行的解决方案是使用 Boost 库,但我对使用外部库有strong厌恶。
那么,是否有任何易于理解的技巧来制作强大的 typedef?
【问题讨论】:
-
为什么不为每个类创建一个?
-
“我非常讨厌使用外部库”——为什么?这听起来像是“这里不发明”综合症的严重案例。重用已经编写(更不用说经过审查和测试)的代码可以节省您解决尚未解决的问题的时间,而不是重复一百万次重新发明轮子。
-
您是否正在尝试解决某个特定问题?
-
C++ 中没有强类型定义。