草庐IT

final_msg

全部标签

c++ - BOOST_STATIC_ASSERT_MSG - 缺少错误信息

我在让BOOST_STATIC_ASSERT_MSG发出有意义的错误消息时遇到问题。我把它归结为:#includenamespaceStaticChecks{BOOST_STATIC_ASSERT_MSG(false,"Whereismyerrormessage?");}指定的错误信息无处可见。相反,我得到以下信息:c:\tryit>x86_64-w64-mingw32-g++-O0-g-m64-Wall-IC:\boost_1_50_0-IC:\MinGW-W64\msys\includecompiletimechecks.cpp-c-ocompiletimechecks.cpp.o

c++ - 带有尾随返回类型的 final、override、const 的语法

我正在尝试覆盖虚拟,但也使用关键字override、final和const,以及尾随返回类型。问题似乎出在派生类中,编译器错误(说我没有指定尾随返回类型)并没有太大帮助。代码在这里:https://wandbox.org/permlink/zh3hD4Ukgrg6txyE也贴在下面。我玩过不同的顺序,但似乎仍然无法正确处理。任何帮助将不胜感激,谢谢。#includeusingstd::cout;usingstd::endl;usingstd::ostream;////////////////////////////////////////////////BasestuffclassBa

c++ - 为什么 GCC 给我一个错误 : no unique final overrider?

在下面的代码中,我收到以下警告和错误:test.cpp:15:warning:directbase'B'inaccessiblein'D'duetoambiguitytest.cpp:15:error:nouniquefinaloverriderfor'virtualvoidA::f()'in'D'但是如果我从A中移除B的虚拟继承(即structB:publicA),我只会得到警告,没有错误。structA{virtualvoidf()=0;};structB:publicvirtualA{voidf(){}};classC:publicB{};structD:publicC,virt

c++ - 'afx_msg' 是做什么的? - MFC

免责声明:我是MFC的新手,具有C++的基础知识我的问题:我遇到了以下由VisualStudio自动生成的代码:afx_msgvoidOnBnClickedOk();afx_msg有什么作用,还有其他类似的吗?据我所知,只有少数访问说明符,如:public、private、protected。还有virtual。我找到了答案here但我还是不清楚。 最佳答案 afx_msg是一个在afxwin.h中#define的空宏://Typemodifierformessagehandlers#ifndefafx_msg#defineafx_

c++ - 是 ISO/IEC 14882 :2011 the final draft?

抱歉,我只是想确定一下,因为我正在考虑在某个时候购买它。是这个吗?C++11是否会有任何后续更改,或者该标准现在正式成为C++语言?(当然不包括最终的C++18、C++2x等。)维基百科说C++11waspublishedas"ISO/IEC14882:2011"[4]inSeptember2011但我对这个过程还不够熟悉,无法真正确定我的问题的答案。 最佳答案 是的,ISO/IEC14882:2011是最终标准(不再是草案)。 关于c++-是ISO/IEC14882:2011thefi

c++ - 在 C++0x 中模拟 finally block

灵感来自theothertopic,我写了这段代码来模拟finallyblock:#include#includestructbase{virtual~base(){}};templatestructexec:base{TLambdalambda;exec(TLambdal):lambda(l){}~exec(){lambda();}};classlambda{base*pbase;public:templatelambda(TLambdal):pbase(newexec(l)){}~lambda(){deletepbase;}};classA{inta;public:voidstar

c++ - 有没有一种方法可以在不重新实现的情况下将子类的父虚函数标记为final

如果我有代码:structParent{virtualvoidfn();};structChild:publicParent{virtualvoidfn()overridefinal{Parent::fn();}};有没有办法让Parent::fn只有在通过Child访问时才成为final而无需重新实现fn,以便其他一些class在从Parent派生时可以覆盖fn,但在从Child派生时不能?喜欢:structChild:publicParent{virtualvoidfn()overridefinal=Parent::fn;};还是其他一些语法? 最佳答案

java final 方法 vs c++ 非虚函数

Javafinal方法和C++非虚拟方法是不同的还是相同的?怎么办? 最佳答案 它们是不同的。C++非虚拟方法不会被分派(dispatch),也不会覆盖任何东西。Javafinal方法被分派(dispatch),并且可以覆盖其类父类(superclass)中的方法。但是,它们的相似之处在于C++非虚拟方法和Javafinal方法都不能被覆盖。它们在某种意义上也很相似,如果您有一些静态类型是所讨论类型的对象,则运行时系统不需要分派(dispatch)方法调用。为了说明差异,请考虑这两个Java类:publicclassA{public

c++ - Winsock MSG_DONTWAIT 等效项

在Windows下移植unixC++代码并使用sockets/winsockAPI时,我在服务器端遇到了这个问题:recv(ClientSocket,recvbuf,recvbuflen,MSG_DONTWAIT);//UNIXcode我从here找到WSA的MSG_DONTWAIT标志等效于使用ioctlsocket将套接字设置为非阻塞模式:使用arg!=0(hereisthedocumentation)调用FIONBIO。在服务器端,我有两个套接字:连接服务器的套接字:SOCKETListenSocket=socket(...)bind(ListenSocket,...)liste

c++ - 视频录制在 IMFSinkWriter->Finalize() 上挂起;

我在使用MediaFoundation将视频录制完成为.mp4时遇到问题,其中对IMFSinkWriter->Finalize();的调用永远挂起。它并不总是发生,并且几乎可以在任何机器上发生(在Windows服务器上看到,7、8、10)。Flush()预先在音频和视频流上调用,并且在Flush和Finalize之间没有添加新样本。关于什么可能导致Finalize永远挂起的任何想法?我尝试过的事情:记录所有HRESULT以检查任何问题(在继续下一行代码之前已经检查过)EverythingcomesbackasS_OK,notseeinganyissues在流中添加了IMFSinkWri