`nullptr_t`应该成为全局名称空间的一部分吗?

莫蒂

我看到微软的stddef.h定义是nullptr_t这样的:

namespace std
{
    typedef decltype(__nullptr) nullptr_t;
}

using ::std::nullptr_t;

usingdecleration内喷射nullptr_t到全局命名空间。我在标准中找不到任何可以做到的事情。

我还看到GCC nullptr_t 中没有全局名称空间。

两种实现都可以被允许还是其中一种错误? 不好意思,GCC的行为与CL相同


编辑:与相同cstddef,下面的代码也可以用VC编译(也在线)。

#include <cstddef>

int main()
{
    nullptr_t nil = nullptr;
}
用户名

它必须在全局名称空间中。

D.5 C标准库头文件[depr.c.headers]

2每个C头(每个头具有形式的名称)的name.h行为就像将由相应cname放置在标准库名称空间中的每个名称都放在全局名称空间范围内一样。[...]

对于C ++而言,这里的名称也不例外。如果C ++为<cstddef>C所<stddef.h>不提供的名称添加了名称,则C ++<stddef.h>仍需要提供它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么nullptr是核心语言的一部分,而nullptr_t是STL的一部分?

OOP-事件可以并且应该成为抽象的一部分吗?

char16_t和char32_t是std名称空间的一部分吗?

fabsf是C ++ 11中std名称空间的一部分吗?

具有位置:相对的元素不应该成为常规文档流的一部分吗?

这些TLOG文件是什么?这些应该成为我的源代码管理的一部分吗?

Uber Cadence活动是否应该成为服务实施的一部分?

一个节点可以成为多个厨师环境的一部分吗

“使名称成为路径的一部分”是什么意思?

CloudFront 缓存,“request.uri”可以成为缓存键的一部分吗?

聚合可以成为域事件的一部分吗?

动作可以成为 MVVM 的 ViewModel 的一部分吗?

xml文件可以成为QT qrc资源文件的一部分吗

如何使#if #endif成为宏的一部分

是否使anchortext成为href的一部分?

JavaScript成为数组的一部分

PSC是全局Cell ID的一部分吗?

创建View应该是View或ViewModel [MVVM]的一部分吗?

环境变量是内核空间的一部分吗?

DDD - 乐观并发属性(etag 或时间戳)是否应该成为域的一部分?

nuget .props和.targets文件是否应该成为源代码存储库的一部分?

两个std :: atomic可以成为一个工会的一部分吗?

外键可以成为另一个表的组合主键的一部分吗?

删除名称列表的一部分

排序名称的一部分

PowerShell:删除显示名称的一部分

如何使连续线的一部分成为连续线的另一部分的列?

Stanford coreNLP:句子中的单词可以成为多个共指链的一部分吗

编程语言可以成为平台的一部分吗?(与C#和Java相关)