问题标签 [nullptr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
36407 浏览

c++ - unique_ptr 可以采用 nullptr 值吗?

此代码片段是否有效?:

也就是说,我可以分配nullptr给 aunique_ptr吗?还是会失败?

我用g++编译器试过这个,它工作正常,但是其他编译器呢?

0 投票
1 回答
193 浏览

c++ - 从 nullptr 推导出的指向模板类型?

考虑到功能:

T为了f(nullptr)什么?

0 投票
1 回答
238 浏览

c++ - C++ - 通过指针表示所有权

在我的游戏引擎中,共有三个类:EntityCharacterEntityVehicleEntityVehicleSeat

在此处输入图像描述

EntityVehicle包含带有指向EntityCharacter实例的指针的座位对象。如果座位对象的目标字符实体指针是空指针,则没有字符坐在该特定座位对象上。EntityCharacter 类实例还具有指向座位对象的指针,指示这些角色实体是否坐在某些车辆中。

换句话说,EntityCharacter 类实例有一个指向 EntityVehicleSeat 的指针,反之亦然:

这样我们就可以通过角色和车辆实体检查这个所有权。

将指针设置为相互指向很简单,但是有一个问题 - 如果另一个对象超出范围,我们最终会在剩余对象中拥有一个无效的指针。

在此处输入图像描述

怎样才能巧妙地表达这种所有权?如何通知另一个对象另一个对象不再存在的事实?

0 投票
3 回答
2135 浏览

c++ - 空 shared_ptr 的语义

我注意到一个关于 shared_ptr 的奇怪事实

我想知道除此之外的语义是什么。为什么 s 和 s2 共享一个 nullptr ?这有什么意义吗?

或者也许这种不常见的情况不值得一个 if 语句(代价高昂?)?

感谢您的任何启发。

0 投票
1 回答
1565 浏览

c++ - gcc nullptr 问题

我正在移植现有代码以在 gcc 4.7.2 下编译,并遇到了一个关于 nullptr 的奇怪问题。我设法将其归结为一个简单的测试用例:

用 g++ test.cpp -o test -std=c++0x 编译它。

我期望的输出是“我在这里 1”,但我得到“原始值”,表明从未调用过 SetMarker。

调用 Test2 或 Test3 会给出预期的输出。

我正在使用的代码使用在 Test3 中看到的模式——最初没有在 NULL 前面进行强制转换——在从 int 到 char* 的无效转换时出现错误,所以我开始将所有这些 NULL 更改为 nullptr。不幸的是,这只是行为不正确。

我可能被迫更改代码以使用 Test2 中的模式(无论如何我更喜欢),但我很想知道这是否是编译器中的错误,或者我是否遗漏了一些东西。

0 投票
4 回答
84855 浏览

c++ - C++11 清除shared_ptr时,我应该使用reset还是设置为nullptr?

我有一个关于 C++11 最佳实践的问题。清除 shared_ptr 时,我应该使用reset()不带参数的函数,还是应该将其设置shared_ptrnullptr?例如:

有什么真正的区别,或者这两种方法都有优点/缺点吗?

0 投票
2 回答
3758 浏览

c++ - nullptr 是否引用了 C++ 中未定义的行为?

以下代码使用nullptr指针和引用来欺骗:

问题:在 C++ 标准中,注释语句 1..3 是有效代码还是未定义行为?

这与不同版本的 C++ 相同还是不同(旧版本当然会使用0文字而不是nullptr关键字)?

额外的问题:是否有已知的编译器/优化选项,实际上会导致上述代码做一些意外/崩溃?例如,是否有任何编译器的标志,它将nullptr为初始化引用的任何地方生成隐式断言,包括从 ? 传递引用参数*ptr


一个好奇的输出示例,没有什么意外:

0 投票
2 回答
26037 浏览

c++ - 使用 Qt Creator C++ 11,nullptr 是关键字?

我正在使用 Qt Creator 使用 C++11。

这是在其他地方工作的代码,相关部分是:

可能是什么问题?

这还不是关键字,不是全局范围吗?

0 投票
3 回答
988 浏览

c++ - 这些是空指针,还是指向地址 0 的指针?

如果我写

p1p2p3(编辑:我添加了p8p9) 中的哪一个是空指针(即== NULL,可能是地址零也可能不是地址零),哪些是地址为零的指针(可能是也可能不是== NULL)?

如果 C 和 C++ 的答案不同,那么它们各自的答案是什么?

0 投票
2 回答
6975 浏览

c++11 - In c++11, does dynamic_cast return nullptr or 0?

I want to check the result of dynamic_cast. In c++11 (or c++0x, for compilers that support nullptr), should I compare against nullptr or 0?

Does it matter, and if so, why?

Is the result compiler-dependent?