草庐IT

Wzero-as-null-pointer-constant

全部标签

c++ - 智能指针删除器和名称为 "using"的 "pointer"关键字

前段时间看到这样一段代码:void*Create(){int*t{newint{10}};returnt;}classDeleter{//uncommentinordertocompile//usingpointer=void*;public:voidoperator()(void*t){deletet;}};unique_ptrptr{Create()};它不编译。对于VS2013,它说:error:C2440:'initializing':cannotconvertfrom'initializer-list'to'std::unique_ptr'Noconstructorcould

c++ - #define NULL 空

#ifndefNULL#defineNULLNULL#endif此代码在gcc中编译,没有警告/错误。有人可以解释预处理器在这里做什么吗? 最佳答案 编译器在任何地方看到文本“NULL”,它都会用文本“NULL”替换它。这就像在您的代码中搜索并替换“NULL”并替换为“NULL”。不违法,只是很奇怪:) 关于c++-#defineNULL空,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questi

c++ - 如何使用#define 定义 NULL

我想在我的程序中重新定义NULL,例如#defineMYNULL((void*)0)但是这个定义在下面的语句中不起作用:char*ch=MYNULL;Error:cannotconvertfromvoid*tochar*定义NULL的最佳方式是什么? 最佳答案 #defineMYNULLNULL是最安全的,我认为没有理由这样做,但如果你真的想要,请继续。以下是C和C++分别执行此操作的方式:#defineNULL0//C++#defineNULL((void*)0)//C一般来说,为NULL定义0是一个坏习惯,你实际上希望它成为语言

c++ - "function"类型的优点是什么(不是 "pointer to function")

阅读C++标准,我看到有“函数”类型和“函数指针”类型:typedefintfunc(int);//functiontypedefint(*pfunc)(int);//pointertofunctiontypedeffunc*pfunc;//sameasabove我从未见过在示例之外使用的函数类型(或者我可能没有意识到它们的用法?)。一些例子:funcincrease,decrease;//declarestwofunctionsintincrease(int),decrease(int);//sameasaboveintincrease(intx){returnx+1;}//cann

Unity 2022 每次打开项目都会弹出“Unity is running as administrator“

在重装了系统后每次打开都弹窗口,试了好几种方式都没解决。UnityisrunningwithAdministratorprivileges,whichisnotsupported.Unityexecutesscriptsandbinarylibrariesinyourprojectthatmayoriginatefromthirdpartysourcesandpotentiallybeharmfultoyourcomputer.Unitymayalsoexecutescriptsandbinarylibrariesthatarestillunderdevelopmentandnotyetful

c++ - 为什么 null std::optional 被认为小于任何值,而不是更多

让nullstd::optional小于任何保持值是否有任何数学意义?或者它只是为了保持一致性而制作的,如果它是“更多”而不是“更少”就不会有任何区别? 最佳答案 直接来自theproposal(强调我的):Anumberofwaysofincludingthedisengagedstateincomparisonshavebeensuggested.Theonesproposed,havebeencraftedsuchthattheaxiomsofequivalenceandstrictweakorderingarepreserv

c++ - GetDC(NULL) 获取主监视器或虚拟屏幕?

环顾网络,我发现大多数人认为GetDC(NULL)将为整个主要监视器(左上角为0,0的监视器)获取设备上下文。但是,我感觉大多数人只是这么说,因为GetDC的msdn页面可能就是这么说的。但是,如果您查看以下两页(至少这两页),似乎在说GetDC(NULL)返回一个覆盖整个虚拟屏幕的设备上下文(包含每个连接到系统的显示器)。(1)https://www.microsoft.com/msj/0697/monitor/monitor.aspx->在页面中搜索“ThisgetstheRECTofthevirtualdesktop”并查看该语句周围的位(特别是其上方的GetDC(NULL))。

c++ - 返回需要由智能指针持有的 'pointer'

我有一个项目,我想更多地使用智能指针。总的来说,我已经成功地实现了这个目标。但是,我遇到了一件事,我不确定“最佳做法”是什么。基本上我想从函数返回一个“指针”,但要求用户将它保存在一个智能指针中。不仅如此,我不想强​​制使用特定的智能指针(共享与作用域)。问题主要在于似乎没有将scoped_ptr升级为shared_ptr的正确方法(我认为这将是理想的解决方案)。我理解他们为什么不这样做,因为这将允许所有权转移,这可能会导致一些问题,例如std::auto_ptr。但是,转让所有权对于这个案例来说似乎是个好主意。所以我的想法是这样的://contrivedexampleoffactor

c++ - Boost.Program_Options : When <bool> is specified as a command-line option, 什么是有效的命令行参数?

鉴于Boost.Program_Options的以下简单使用:boost::program_options::options_descriptionoptions("Options");options.add_options()("my_bool_flag,b",boost::program_options::value(),"Samplebooleanswitch)");...哪些命令行参数将评估为false,哪些评估为true?(即假设程序名为“foo”,并在命令行上执行为:foo-b?...问号是其他一些文本的占位符:所有可能的文本选项将正确评估为false,什么是true?)

c++ - 获取错误 "array bound is not an integer constant before ' ]' token"

我正在尝试使用数组实现堆栈,但收到错误消息。classStack{private:intcap;intelements[this->cap];//cap=5;this->top=-1;};指示的行有这些错误:Multiplemarkersatthisline-invaliduseof'this'attoplevel-arrayboundisnotanintegerconstantbefore']'token我做错了什么? 最佳答案 在C++中,数组的大小必须是编译时已知的常量。如果不是这种情况,您将收到错误消息。在这里,你有inte