nullptr相关内容
我使用的是g ++ 4.4.1,并且想要使用 nullptr ,但我无法找到需要包含哪个头文件。它似乎也不是关键字,因为我的尝试使用它被拒绝作为 错误:'nullptr'未被声明在这个范围内$ G $ 4.4 $不支持 解决方案 code> nullptr 。 在GCC 4.6中添加了对 nullptr 的支持.0: http://gcc.gnu.org/gcc-4.6 /
..
我厌倦了等待编译器支持 nullptr ( 因此,作为一个停止间隙,直到 nullptr 是完全支持我决定模仿它。有两个仿真示例:一个来自此处,一个来自 wikibooks 。 值得注意的是,两个实现都没有提到 operator == 。但是,如果没有其他代码,将无法编译。 int * ptr = nullptr; assert(ptr == nullptr); //错误在
..
想象一下情况: CComPtr pGraph; HRESULT hr = CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,IID_PPV_ARGS(& pGraph)); if(SUCCEEDED(hr)) { CComPtr pContro
..
似乎 nullptr 是在默认全局命名空间中声明的。 std 命名空间是否有意义? 解决方案 nullptr 是一个C ++ 11关键字(与无关,如果, public , true , void 等),因此命名空间不适用。 / p>
..
可能重复: 究竟是什么nullptr? 我以为这是一个关键字。我目前的gcc不以不同的阴影突出显示 nullptr 。为了验证这一点,我写了以下: void *& p = nullptr; 所以我从错误中得到了一些线索: 错误:类型为'void *&'的非常量引用的初始化无效从'std :: nullptr_t'类型的右值 b
..
以下代码愚弄了 nullptr 指针和引用: #include void printRefAddr(int& ref){ printf(“printAddr%p\\\ ”,& ref); } int main(){ int * ip = nullptr; int& ir = * ip; // 1.获取nullptr引用的地址 print
..
好的,所以首先一些可能相关的事情: 我使用Clang 3.1编译器,在C ++ 11模式下,使用标准库集到libc ++。 我想让自己熟悉C ++ 11,在这样做时,我遇到了似乎奇怪的行为。它可能是一个怪癖的Clang或libc ++,但我不能说C ++ standardese,我无法访问其他编译器与C + + 11支持,所以我不能真正检查它,我已经搜索互联网和Stack Overfl
..
现在C ++ 0x几乎在这里,我一直在试验它,特别是使用nullptr。 任何帮助都是值得赞赏的。 解决方案 不需要标题。它是一个内置的关键字(§[lex.nullptr])。 2.14.7指针字面量 [lex.nullptr] 指针文字: nullptr 指针字面值是关键字 nullptr 。它是 std ::
..
如果nullptr_t有一个默认的构造函数,我不能从C ++ 11标准。换句话说,以下是有效的: nullptr_t n; GCC和VC ++允许上述代码,但是clang没有。我找不到任何在标准中规定它没有默认构造函数,我可以找到的建议,它应该。这对我很重要,因为我正在编写一个基本的fallback实现的nullptr旧的编译器支持,需要知道是否需要给它一个默认的构造函
..
我使用Qt Creator使用C ++ 11. “warning:identifier'nullptr' C ++ 11 [-Wc ++ 0x-compat]“ ”错误:'nullptr'未在此范围中声明“ 这是在其他地方工作的代码,相关部分是: ... = nullptr; 可能有什么问题? 解决方案 打开您的 .pro 文
..
我在许多最顶层的头文件中看到下面的宏: #define NULL 0 // C ++ 03 在所有代码中, NULL 和 0 可互换使用。如果我将它更改为。 #define NULL nullptr // C ++ 11 会产生不良的副作用吗?我可以想到唯一的(良好的)副作用,如下面的用法会变得不合理: int i = NULL;
..
标准规定 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
..
我学到了 nullptr ,除了可以转换为任何指针类型(但不是任何整数类型)也有自己的类型 std :: nullptr_t 。所以有可能有一个方法重载接受 std :: nullptr_t 。 如果多个重载接受指针类型,则 std :: nullptr_t的重载需要 解决方案 必须接受 nullptr 参数。如果没有 std :: nullptr_t 重载,那么在传递 nullptr
..
C ++ 11实现是否将 NULL 定义为 nullptr ? 这是新的C ++标准规定的吗? 解决方案 $ b C.3.2.4宏NULL [diff.null] 1 / 在 , , , ,, 或 是一个实现定义的C ++
..
最近尝试下面的程序,它编译,运行良好,产生预期的输出,而不是任何运行时错误。 #include class demo { public: static void fun() { std :: cout
..
在C ++ 98中,空指针由文字 0 (或实际上任何值为零的常量表达式)表示。在C ++ 11中,我们更喜欢 nullptr 。但这不适用于纯虚函数: struct X { virtual void foo )= nullptr; }; 为什么不起作用?这不会完全有道理吗?这只是一个监督吗? 因为语法 0 ,不会修改 或其他非终端匹配 nullptr 。
..
或多或少标题的含义。虽然我尚未使用C ++ 0x 我我喜欢做好准备,当它发生时,我也想减少我必须重写以使用其中的一些设施的代码量。这样我就可以一次得到向后和向前的兼容性。 我发现的一个最有趣的是 nullptr ,我最近一直使用更多。 检查“正式解决方法”和 Meyer的建议,我决定我想在我的C +和未来的C + + 0x程序中使用这个。第二部分很简单 - 是一个关键字, nullpt
..
我看到 nullptr 在Visual Studio 2010中实现。我喜欢这个概念,并希望尽快开始使用它;然而GCC不支持它。我的代码需要在两者上运行(但不必与其他编译器一起编译)。 有没有办法“模拟”它?像: #define nullptr NULL (这显然不会很好,只是为了显示我的意思。) 解决方案 官方提案有一个解决方法 - con
..
只是一个快速问题。我知道在C ++中0x NULL被替换为nullptr在基于指针的应用程序。 在处理指针时,使用nullptr超过NULL是有益的吗? 解决方案 nullptr 始终是指针类型。 0 (又称为C的NULL桥接到C ++)可能导致重载函数解析的不明确性,其中包括: f(int); f(foo *);
..
这段代码在概念上对三个指针(安全指针初始化)有同样的作用: int * p1 = nullptr; int * p2 = NULL; int * p3 = 0; 因此,赋值指针的优点是 nullptr over给它们赋值 NULL 或 0 ? 解决方案 在该代码中,似乎没有优势。但是请看这些重载函数: void f(char const * p
..