问题标签 [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.
c++ - unique_ptr 可以采用 nullptr 值吗?
此代码片段是否有效?:
也就是说,我可以分配nullptr
给 aunique_ptr
吗?还是会失败?
我用g++编译器试过这个,它工作正常,但是其他编译器呢?
c++ - 从 nullptr 推导出的指向模板类型?
考虑到功能:
是T
为了f(nullptr)
什么?
c++ - C++ - 通过指针表示所有权
在我的游戏引擎中,共有三个类:EntityCharacter、EntityVehicle和EntityVehicleSeat。
EntityVehicle包含带有指向EntityCharacter实例的指针的座位对象。如果座位对象的目标字符实体指针是空指针,则没有字符坐在该特定座位对象上。EntityCharacter 类实例还具有指向座位对象的指针,指示这些角色实体是否坐在某些车辆中。
换句话说,EntityCharacter 类实例有一个指向 EntityVehicleSeat 的指针,反之亦然:
这样我们就可以通过角色和车辆实体检查这个所有权。
将指针设置为相互指向很简单,但是有一个问题 - 如果另一个对象超出范围,我们最终会在剩余对象中拥有一个无效的指针。
怎样才能巧妙地表达这种所有权?如何通知另一个对象另一个对象不再存在的事实?
c++ - 空 shared_ptr 的语义
我注意到一个关于 shared_ptr 的奇怪事实
我想知道除此之外的语义是什么。为什么 s 和 s2 共享一个 nullptr ?这有什么意义吗?
或者也许这种不常见的情况不值得一个 if 语句(代价高昂?)?
感谢您的任何启发。
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 中的模式(无论如何我更喜欢),但我很想知道这是否是编译器中的错误,或者我是否遗漏了一些东西。
c++ - C++11 清除shared_ptr时,我应该使用reset还是设置为nullptr?
我有一个关于 C++11 最佳实践的问题。清除 shared_ptr 时,我应该使用reset()
不带参数的函数,还是应该将其设置shared_ptr
为nullptr
?例如:
有什么真正的区别,或者这两种方法都有优点/缺点吗?
c++ - nullptr 是否引用了 C++ 中未定义的行为?
以下代码使用nullptr
指针和引用来欺骗:
问题:在 C++ 标准中,注释语句 1..3 是有效代码还是未定义行为?
这与不同版本的 C++ 相同还是不同(旧版本当然会使用0
文字而不是nullptr
关键字)?
额外的问题:是否有已知的编译器/优化选项,实际上会导致上述代码做一些意外/崩溃?例如,是否有任何编译器的标志,它将nullptr
为初始化引用的任何地方生成隐式断言,包括从 ? 传递引用参数*ptr
?
一个好奇的输出示例,没有什么意外:
c++ - 使用 Qt Creator C++ 11,nullptr 是关键字?
我正在使用 Qt Creator 使用 C++11。
这是在其他地方工作的代码,相关部分是:
可能是什么问题?
这还不是关键字,不是全局范围吗?
c++ - 这些是空指针,还是指向地址 0 的指针?
如果我写
p1
、p2
和p3
(编辑:我添加了p8
和p9
) 中的哪一个是空指针(即== NULL
,可能是地址零也可能不是地址零),哪些是地址为零的指针(可能是也可能不是== NULL
)?
如果 C 和 C++ 的答案不同,那么它们各自的答案是什么?
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?