【发布时间】:2018-08-18 20:30:42
【问题描述】:
在 Effective Modern C++,“Iterm 8:Prefer nullptr to 0 and NULL.”,第 59 页,它说:
nullptr的实际类型是std::nullptr_t,并且,在一个奇妙的循环定义中,std::nullptr_t被定义为nullptr的类型。
一个奇妙的循环定义?
这是怎么来的?
【问题讨论】:
-
这是编译器本身的一个技巧
-
实际?这是一个错误的引用吗?
-
你可以找到一些解释here
-
这句话具有误导性。虽然
nullptr的类型是std::nullptr_t,但是标准并没有用它来定义nullptr。所以没有循环定义。nullptr和std::nullptr_t的行为由分散在标准中的各种语句定义。 -
@Eljay:这将产生一个非空的
std::nullptr_t *。