我遇到了以下代码,我无法理解它的含义:
typedef int INT;
5 .INT::~INT();
Run Code Online (Sandbox Code Playgroud)
注意:数字5和小数之间有一个空格.
问题:
1.有人可以解释上面两条线的确切含义吗?2.如果没有typedef,为什么它不起作用?它背后的任何原因?5 .int::~int()抛出错误.
Che*_*Alf 16
.INT::~INT()是一个伪析构函数调用,对模板化代码很有用.
请注意,如果没有该typedef类型,则无法使用它.
Standardese:
C++03§5.2.4"伪析构函数调用":
- 在点或箭头运算符后使用伪析构函数名称表示由type-name命名的非类型类型的析构函数.结果只能用作函数调用运算符的操作数,并且这种调用的结果具有类型.唯一的效果是在点或箭头之前评估后缀表达式.
.->()void