jjzjj

nullptr_t

全部标签

【C++】: auto关键字(C++11)+基于范围的for循环(C++11)+指针空值nullptr(C++11)

auto关键字(C++11)随着程序越来越复杂,程序中用到的类型也越来越复杂,经常体现在:类型难于拼写含义不明确导致容易出错#include#includeintmain(){std::mapstd::string,std::string>m{{"apple","苹果"},{"orange","橙子"},{"pear","梨"}};std::mapstd::string,std::string>::iteratorit=m.begin();while(it!=m.end()){//....}return0;}//intmain()//{// inta=0;// intb=a;// autoc=

c++ - 在使用自定义弱指针的一对多关系中清除 nullptr

我有一个一对多的map类-MyMap1N.按照设计,它应该存储与游戏相关的实例的弱指针。粗略地说,它被称为:-MyMap1N,WeakPtr>map;WeakPtrroom=create();WeakPtrbody=create();map.add(room,body);MyArray>bodys=map.getAllChildren(room);通过分析,我发现std::unordered_map太慢了。因此,我必须找到另一种方法来实现它。我决定在unordered_map中创建一个数组(而不是Room).为了提高查询速度,我还注入(inject)了indexInArray存储在Ri

c++ - nullptr 的类型是什么?

标准规定,nullptr是类型为std::nullptr_t(2.14.7)的指针文字。而18.2p9通过定义了nullptr_tnamespacestd{typedefdecltype(nullptr)nullptr_t;}根据7.1.6.2p4decltype(nullptr)是表达式nullptr的类型,根据定义std::nullptr_t(因为表达式nullptr是一个纯右值)。将其代入nullptr_t的定义会导致typedefnullptr_tnullptr_t另一方面,typedef说明符不会引入新类型,它只是另一种现有类型的名称。那么,nullptr_t到底是什么?我无

c++ - Netbeans 讨厌 nullptr 但仍然工作正常

我看到过关于此的类似帖子,但无法让Netbeans在正常工作时停止在我的代码中显示错误消息"Unabletoresolveidentifiernullptr"。我已正确启用C++11,不确定问题出在哪里? 最佳答案 对于Netbeans7.4在项目属性中:将编辑器的“CStandard”设置为“C11”,编译器的“AdditionalOptions”添加“-std=c++0x”在我的例子中,我不得不关闭并重新加载文件,错误标记消失了。编辑:抱歉,这不是100%有效的解决方案。 关于c++

c++ - 当 QObject 被销毁时,Qt 可以安排将 QObject* 设置为 nullptr 吗?

Qt框架有一个signalforallQObjectswhichisemmitedbeforedestruction那个QObject。此事件可用于在它指向的对象被销毁时自动清空一些QObject*变量。但是要做到这一点,您需要使用相对较多的代码。您需要注册一个信号并将其链接到变量。在我看来不是很方便。我可以安排(通过Qt)当QObject被销毁时自动清除指向QObject的指针吗? 最佳答案 没有原始指针,不,但是Qt提供了一个模板化的QPointer完全符合您所描述的类。 关于c++

c++ - 逗号运算符、return 语句和 nullptr 没有副作用吗?

这个问题在这里已经有了答案:gccnullptrissue(1个回答)关闭6年前。我有以下测试代码:#include#includeenumclassResult:std::uint32_t{SUCCESS=0,INSUCCESS=1};void*func(Result&result){//worksgreat/*result=Result::INSUCCESS;returnNULL;*///error:invalidconversionfrom‘longint’to‘void*’[-fpermissive]/*returnresult=Result::INSUCCESS,NULL;*

c++ - 为什么 unique_ptr 有一个 nullptr_t 构造函数?

我不清楚有什么好处。如果我有:Foo*foo=nullptr;std::unique_ptrunique_foo(foo);在那种情况下是否调用了nullptr_t构造函数?或者仅当您这样做时:std::unique_ptrunique_foo(nullptr);谢谢!有一些讨论here这是为了允许你传入nullptr_t,否则它不会编译,因为它不会转换为类型指针。所以我的问题可能是为什么它不转换? 最佳答案 一个可能的原因是采用unique_ptr::pointer参数的unique_ptr构造函数是显式。这意味着在没有uniqu

c++ - 如何在LLVM中了解 'nullptr'的源代码?

最近,我想知道nullptr的工作原理。我在http://www.stroustrup.com/N1488-nullptr.pdf中找到了代码(对不起,我没有10个声誉,因此我无法在此处发布图片,您可以点击上面的链接,代码位于第3页。)代码很酷。然后我再次在Woboq中搜索了关键字nullptr,发现LLVM中的源代码与上面的不同,我将它们复制到下面。struct_LIBCPP_TEMPLATE_VISnullptr_t{void*__lx;struct__nat{int__for_bool_;};_LIBCPP_ALWAYS_INLINE_LIBCPP_CONSTEXPRnullpt

c++ - "Backporting"nullptr 到 C++-pre-C++0x 程序

或多或少如标题所暗示的那样。当我notyetusingC++0x我想为它的发生做好准备,我还想减少为使用它的某些功能而必须重写的代码量。这样我就可以一次性获得向后和向前的兼容性。我发现的最有趣的一个是nullptr,我最近经常使用它。检查“官方解决方法”和Meyer'ssuggestion后,我决定在我的C++和future的C++0x程序中都使用它。第二部分很简单——作为关键字,nullptr将得到简单支持。但是第一部分让我有些不舒服。Meyers提案的功能如下:classnullptr_t{//←thisismyissue//definitionofnullptr_t}nullpt

c++ - 取消引用一个等于 nullptr 的指针是标准未定义的行为吗?

一位博客作者提出了关于空指针解引用的讨论:http://www.viva64.com/en/b/0306/我在这里提出了一些反驳论点:http://bit.ly/1L98GL4他引用标准的主要推理是这样的:The'&podhd->line6'expressionisundefinedbehaviorintheClanguagewhen'podhd'isanullpointer.TheC99standardsaysthefollowingaboutthe'&'address-ofoperator(6.5.3.2"Addressandindirectionoperators"):Theop