草庐IT

non-null

全部标签

c++ - 前向声明的类型和 "non-class type as already been declared as a class type"

我对以下代码有疑问:templatevoidfoo(structbar&b);structbar{};intmain(){}它在GCC上编译成功,但在MSVC(2008)上编译失败并出现以下错误:C2990:“bar”:已声明为类类型的非类类型是代码错误还是MSVC中的错误?如果我在模板定义之前添加structbar;就可以了。 最佳答案 我们有我们的赢家:https://connect.microsoft.com/VisualStudio/feedback/details/668430/forward-declared-type-

解决kubelet报failed to get imageFs info: non-existent label \“docker-images\“

问题:一环境主机重启后,查看kubelet日志经常有大量无法回收镜像文件报错,会导致kubelet的pleg不健康,从而导致kubelet发生重启。报错如下:解决办法解决方法一:systemctlstopdockersystemctlstopkubeletsystemctlstartdockersystemctlstartkubelet解决方法二:在kubelet的kubelet.service文件中,添加如下参数:[Unit]After=docker.service原因总结:主机重启后,kubelet比docker先启动,会对不健康的pod进行一个资源回收的过程,这个时候docker还没正常

加载配置文件在Java中产生null

我正在尝试从路径自定义方式加载配置文件。加载文件时,我不会遇到错误,但是当我引用加载值时,我会收到null,当我尝试关闭文件时,我会得到NullPoInterException。这是一切:主要课程Confighandler课加载文件:test:onehello:twoworld:three控制台输出:nullnullnullnullExceptioninthread"main"java.lang.NullPointerExceptionatconfig.ConfigHandler.closeConfig(ConfigHandler.java:54)atmain.Main.main(Main.j

c++ - 为什么将成员函数指针与 NULL 进行比较会产生警告?

以下代码在Windows、Mac和iOS上编译时没有警告:classMyClass{SomeOtherClass*m_object;void(SomeOtherClass::*m_callback)();public:MyClass(SomeOtherClass*_object,void(SomeOtherClass::*_callback)()=NULL):m_object(_object),m_callback(_callback){}voidDoStuff(){//generateswarning:NULLusedinarithmeticwhencompilingwiththeA

c++ - C++ 中的对是否有 NULL 等价物?

如果我在C++中有一个未分配的对,我想使用什么而不是NULL?例如,假设我有如下(伪)代码:pairbestPair;//GlobalvariableupdateBestPair(vectora,vectorb){bestPair=NULL;for(/*loopthroughaandb*/){if(/*pair(a,b)isbetterthanbestPairandbetterthansomebaseline*/)bestPair=make_pair(a,b);}if(bestPair!=NULL)//Foundanacceptablebestpairfunction(bestPair

c++ - 哪个 Clang 警告等同于 GCC 的 Wzero-as-null-pointer-constant?

我们的项目使用C++11/14,我们希望使用nullptr而不是0或NULL指针,即使0(作为整数文字)是允许的。我有以下代码:intmain(){int*ptr1=nullptr;//#1int*ptr2=0;//#2}如果我使用GCC(5.3.0)和标记-Wzero-as-null-pointer-constant进行编译,它会在#2中发出警告,但我可以'在Clang中找不到类似的标志。如果我使用Clang(3.7.1)和标志-Weverything编译代码,我不会收到任何关于#2的警告。那么,有什么办法可以在Clang中得到类似的警告吗? 最佳答案

C++ allocator<X>::deallocate(NULL,1) 允许吗?

free(NULL)和::operatordelete(NULL)都是允许的。分配器概念(例如std::allocator是否也允许deallocate(NULL,1),或者是否需要自己保护它? 最佳答案 您需要添加自己的支票。根据§20.4.1.1/8,deallocate要求:pshallbeapointervalueobtainedfromallocate().nshallequalthevaluepassedasthefirstargumenttotheinvocationofallocatewhichreturnedp.a

c++ - Delphi 中 C++ NULL 的等效常量是什么?

我需要将我的C++代码迁移到Delphi。在C++代码中有许多检查来检查给定句柄​​(HANDLE)是否为NULL。可以在Delphi中使用的等效常量是什么?Delphi中的null似乎与C++中的NULL不同。 最佳答案 在WindowsC++头文件中,NULL是一个扩展为0的宏.这意味着NULL可以在数字和指针上下文中使用,因为C++语言支持这种用法。但是,对于Delphi,值0用于数字上下文,值nil在指针上下文中使用。WindowsHANDLE值在Delphi中声明为数字类型,因此代替C++NULL你应该使用0在德尔福。

c++ - C++ 中 NULL 是如何定义的?

在C中,NULL通常是#defined为0或((void*)0).我希望这在C++中是相似的,并且关于堆栈溢出的许多答案似乎也表明情况也是如此。但是,当我尝试编译以下程序时:#includevoidf(intx){printf("void*\n");}voidf(void*x){printf("int\n");}intmain(void){f(0);//intf((void*)0);//void*f(nullptr);//void*f(NULL);//whyisthisambiguous?return0;}我的编译器告诉我f(NULL)是不明确的。具体来说,我的编译器说:sample.

c++ - 编译错误 : base operand of ‘->’ has non-pointer type ‘Token’

我在尝试编译我的C++代码时遇到标题中提到的错误。我无法理解我在这里做错了什么。编译器在我执行booloperator==(Token)函数时出现问题。我认为这是使运算符(operator)重载的方法。关于为什么编译器不喜欢我提到的任何线索this->terminal还是this->lexeme?classToken{public:tokenTypeterminal;std::stringlexeme;Token*next;Token();booloperator==(Token&t);private:intlexemelength,line,column;};boolToken::o