草庐IT

my_nullptr

全部标签

c++ - 如何定义支持 C++03 和 C++11 的 nullptr?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:“Backporting”nullptrtoC++-pre-C++0xprograms如何定义nullptr同时支持C++03和C++11?下面的代码是否同时使用C++03和C++11编译而没有改变nullptr在C++11编译器中的含义?#include#if!defined(nullptr)#definenullptrNULL#endif

C++: "my text"是 std::string、*char 还是 c 字符串?

我刚刚做了看起来是acommonnewbiemistake的事情:首先我们阅读oneofmanytutorials是这样的:#includeintmain(){usingnamespacestd;ifstreaminf("file.txt");//(...)}其次,我们尝试在我们的代码中使用类似的东西,它是这样的:#includeintmain(){usingnamespacestd;std::stringfile="file.txt";//Orgetthenameofthefile//fromafunctionthatreturnsstd::string.ifstreaminf(fi

c++ - 删除 nullptr - 性能开销?

如果指针为nullptr,运算符delete会自行检查。在不自己检查的情况下调用nullptr上的delete是否有任何性能开销?deleteptr;或if(ptr!=nullptr)deleteptr;如果ptr为nullptr,以上哪个执行得更快? 最佳答案 和往常一样,这取决于编译器。我使用MSVC,它将这两行编译成完全相同的代码。规则说如果指针为空,则删除无效。因此,如果您不检查它,编译器无论如何都必须检查。 关于c++-删除nullptr-性能开销?,我们在StackOverf

c++ - C++ 中的 nullptr 和 nullptr_t 有什么区别?

我应该使用哪一个?如果我使用一个比另一个有什么优势? 最佳答案 nullptr是常量,nullptr_t是它的类型。在分别需要空指针或空指针类型的上下文中使用每一个。 关于c++-C++中的nullptr和nullptr_t有什么区别?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/31036153/

c++ - 混合使用 C 和 C++ 时使用 nullptr 而不是 NULL

我有一个非常简单的问题...我正在使用用C语言编写的SDLAPI。我正在使用C++。我的编译器支持关键字nullptr,我一直在阅读它。似乎使用NULL宏比使用NULL宏更好。当我调用SDL_SetVideoMode时,我假设它在失败时返回NULL,所以如果我这样做:SDL_Surface*test=nullptr;if((test=SDL_SetVideoMode(params))==nullptr){//to-docode}这会准确地检查我在表面测试上的优化是否成功吗? 最佳答案 是的。nullptr与任何其他指针类型的空指针具

c++ - 在函数调用中,为什么 nullptr 不匹配指向模板对象的指针?

这是一个完美运行的代码示例:#include#includetemplateclassC,classA=std::allocator>voidfoo(C*bar,C*bas){std::cout*sample1=nullptr;std::vector*sample2=nullptr;foo(sample1,sample2);return(0);}但是,在下面的代码中,编译器无法将std::vector*与第二个参数的nullptr匹配,甚至无法从第一个参数中扣除模板类型。#include#includetemplateclassC,classA=std::allocator>voidf

c++ - 为什么 nullptr_t 不是关键字

这是nullptr_t的声明在:namespacestd{typedefdecltype(nullptr)nullptr_t;}根据this,std::nullptr_t是一些未指定的基本类型的别名,其中nullptr是一个实例。所以nullptr的实际类型没有名字(好吧,语言没有给它起名字,这个名字是由标准库给出的)。nullptr本身就是一个关键字。但是标准没有为nullptr的类型引入关键字。.而是使用decltype(nullptr)提供。这样做的原因是什么?我发现它很困惑。您需要包含header并指定std::仅使用语言内置功能。这是为了让C++关键字集尽可能小吗?这是专门针

c++ - ->second 是否为迭代器 my_map.end() 定义?

我正在使用std::map.我想测试是否my_map.find(key)返回一个特定的指针。现在我在做;autoiter=my_map.find(key);if((iter!=my_map.end())&&(iter->second==expected)){//Somethingwonderfulhashappened}然而,operator*迭代器的需要返回一个引用。凭直觉我假设它是有效的并且完全初始化?如果是这样,my_map.end()->second将是NULL,并且(因为NULL从来都不是预期的),我可以将我的if语句减少到:if(iter->second==expected

windows - my.bat 不是内部或外部命令,也不是可运行的程序或批处理文件

当我登录到此Windows2008R2服务器并启动CMD窗口时,默认目录是:C:\Users\SVC_asl2trim>所以我将其添加到PATH中,然后发布:C:\Users\SVC_asl2trim>setpathPath=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\ProgramFiles\Hewlett-Packard\HPTRIM\;C:\Users\SVC_asl2trim\PATHEXT=.COM;.EXE;.BA

windows - Dummynet 安装失败 : my_socket failed 2, 无法与内核模块对话 (Windows 7 X64)

我正在尝试使用提供的软件包在64位版本的Windows7上安装IPFWhere我能够使用thisstackoverflowanswer中提供的说明成功地将ipfw+dummynet服务添加到我的网络适配器但是,在执行包中提供的ipfw.exe时,我遇到了以下错误:my_socketfailed2,cannottalktokernelmodule需要帮助来解决这个错误,以便ipfw可以从命令行成功运行。 最佳答案 第一种方法解释here为我工作。我也成功地用第二种方法安装了驱动程序,但我必须先自己签署驱动程序,如解释的那样here.要