nullptr相关内容

在g ++中使用nullptr需要包含哪些头文件?

我使用的是g ++ 4.4.1,并且想要使用 nullptr ,但我无法找到需要包含哪个头文件。它似乎也不是关键字,因为我的尝试使用它被拒绝作为 错误:'nullptr'未被声明在这个范围内$ G $ 4.4 $不支持 解决方案 code> nullptr 。 在GCC 4.6中添加了对 nullptr 的支持.0: http://gcc.gnu.org/gcc-4.6 / ..
发布时间:2018-04-18 20:22:21 其他开发语言

完全模仿nullptr

我厌倦了等待编译器支持 nullptr ( 因此,作为一个停止间隙,直到 nullptr 是完全支持我决定模仿它。有两个仿真示例:一个来自此处,一个来自 wikibooks 。 值得注意的是,两个实现都没有提到 operator == 。但是,如果没有其他代码,将无法编译。 int * ptr = nullptr; assert(ptr == nullptr); //错误在 ..
发布时间:2016-11-06 03:07:03 C/C++开发

在空指针的情况下,删除器的标准行为是否在shared_ptr和unique_ptr之间不同?

好的,所以首先一些可能相关的事情: 我使用Clang 3.1编译器,在C ++ 11模式下,使用标准库集到libc ++。 我想让自己熟悉C ++ 11,在这样做时,我遇到了似乎奇怪的行为。它可能是一个怪癖的Clang或libc ++,但我不能说C ++ standardese,我无法访问其他编译器与C + + 11支持,所以我不能真正检查它,我已经搜索互联网和Stack Overfl ..
发布时间:2016-10-23 13:28:59 C/C++开发

什么C ++ 0x头应该定义nullptr?

现在C ++ 0x几乎在这里,我一直在试验它,特别是使用nullptr。 任何帮助都是值得赞赏的。 解决方案 不需要标题。它是一个内置的关键字(§[lex.nullptr])。 2.14.7指针字面量 [lex.nullptr] 指针文字: nullptr 指针字面值是关键字 nullptr 。它是 std :: ..
发布时间:2016-10-23 12:10:19 C/C++开发

是nullptr_t默认可构造类型吗?

如果nullptr_t有一个默认的构造函数,我不能从C ++ 11标准。换句话说,以下是有效的: nullptr_t n; GCC和VC ++允许上述代码,但是clang没有。我找不到任何在标准中规定它没有默认构造函数,我可以找到的建议,它应该。这对我很重要,因为我正在编写一个基本的fallback实现的nullptr旧的编译器支持,需要知道是否需要给它一个默认的构造函 ..
发布时间:2016-10-23 11:24:54 C/C++开发

它是安全的#define NULL nullptr?

我在许多最顶层的头文件中看到下面的宏: #define NULL 0 // C ++ 03 在所有代码中, NULL 和 0 可互换使用。如果我将它更改为。 #define NULL nullptr // C ++ 11 会产生不良的副作用吗?我可以想到唯一的(良好的)副作用,如下面的用法会变得不合理: int i = NULL; ..
发布时间:2016-10-22 18:02:45 C/C++开发

什么是nullptr的类型?

标准规定 nullptr 是类型 std :: nullptr_t (2.14.7)的指针文字。和18.2p9定义 nullptr_t 由 命名空间std { typedef decltype(nullptr)nullptr_t; } 通过7.1.6.2p4 decltype(nullptr)是表达式 nullptr 的类型,按照定义 std :: nullptr_t ..
发布时间:2016-10-19 20:45:19 C/C++开发

std :: nullptr_t类型的用法是什么?

我学到了 nullptr ,除了可以转换为任何指针类型(但不是任何整数类型)也有自己的类型 std :: nullptr_t 。所以有可能有一个方法重载接受 std :: nullptr_t 。 如果多个重载接受指针类型,则 std :: nullptr_t的重载需要 解决方案 必须接受 nullptr 参数。如果没有 std :: nullptr_t 重载,那么在传递 nullptr ..
发布时间:2016-10-19 20:05:48 C/C++开发

纯虚函数在C ++ 11

在C ++ 98中,空指针由文字 0 (或实际上任何值为零的常量表达式)表示。在C ++ 11中,我们更喜欢 nullptr 。但这不适用于纯虚函数: struct X { virtual void foo )= nullptr; }; 为什么不起作用?这不会完全有道理吗?这只是一个监督吗? 因为语法 0 ,不会修改 或其他非终端匹配 nullptr 。 ..
发布时间:2016-10-17 09:52:31 C/C++开发

“后端” nullptr到C ++ - 前C ++ 0x程序

或多或少标题的含义。虽然我尚未使用C ++ 0x 我我喜欢做好准备,当它发生时,我也想减少我必须重写以使用其中的一些设施的代码量。这样我就可以一次得到向后和向前的兼容性。 我发现的一个最有趣的是 nullptr ,我最近一直使用更多。 检查“正式解决方法”和 Meyer的建议,我决定我想在我的C +和未来的C + + 0x程序中使用这个。第二部分很简单 - 是一个关键字, nullpt ..
发布时间:2016-10-14 21:10:26 C/C++开发

可以在gcc中模拟nullptr吗?

我看到 nullptr 在Visual Studio 2010中实现。我喜欢这个概念,并希望尽快开始使用它;然而GCC不支持它。我的代码需要在两者上运行(但不必与其他编译器一起编译)。 有没有办法“模拟”它?像: #define nullptr NULL (这显然不会很好,只是为了显示我的意思。) 解决方案 官方提案有一个解决方法 - con ..
发布时间:2016-10-13 12:01:59 C/C++开发

NULL对nullptr(为什么它被替换?)

只是一个快速问题。我知道在C ++中0x NULL被替换为nullptr在基于指针的应用程序。 在处理指针时,使用nullptr超过NULL是有益的吗? 解决方案 nullptr 始终是指针类型。 0 (又称为C的NULL桥接到C ++)可能导致重载函数解析的不明确性,其中包括: f(int); f(foo *); ..
发布时间:2016-10-11 22:34:58 C/C++开发

使用nullptr有什么优点?

这段代码在概念上对三个指针(安全指针初始化)有同样的作用: int * p1 = nullptr; int * p2 = NULL; int * p3 = 0; 因此,赋值指针的优点是 nullptr over给它们赋值 NULL 或 0 ? 解决方案 在该代码中,似乎没有优势。但是请看这些重载函数: void f(char const * p ..
发布时间:2016-10-11 21:54:40 C/C++开发