草庐IT

send_this_email

全部标签

c++ - 错误 : 'std::this_thread' has not been declared

我尝试使用std::this_thread::sleep_for()函数但出现错误错误:“std::this_thread”尚未声明。包含标志_GLIBCXX_USE_NANOSLEEP。还需要什么来强制它工作?MinGW==>gcc版本4.7.2(GCC)中南合作:#includeintmain(){std::this_thread::sleep_for(std::chrono::seconds(3));}命令行:g++-D_GLIBCXX_USE_NANOSLEEP-std=gnu++0xssce.cpp-ossce.exe编译结果:ssce.cpp:Infunction'intm

c++ - "#define new DEBUG_NEW"和 "#undef THIS_FILE"等真的有必要吗?

当您创建新的MFC应用程序时,向导会在几乎每个CPP文件中创建以下代码块:#ifdef_DEBUG#definenewDEBUG_NEW#endif有时它还会添加:#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;如果这段代码是多余的,我想从我的CPP文件中删除它。我在VS2008上使用带有C++/CLI的MFC应用程序。从CPP中删除这段代码后,我尝试在Debug中运行,它似乎工作正常。"new"变量工作正常,没有泄漏,ASSERT对话框显示正确的文件名并跳转到有问题的行。谁能告诉我它的作用以及删除它是否安全? 最

c++ - `*this` 外部成员函数体?

在C++标准[expr.prim.general]的5.1.1/3Unliketheobjectexpressioninothercontexts,*thisisnotrequiredtobeofcompletetypeforpurposesofclassmemberaccessoutsidethememberfunctionbody.Onlyclassmembersdeclaredpriortothedeclarationarevisible.然后这个例子:structA{charg();templateautof(Tt)->decltype(t+g()){returnt+g();}

c++ - enable_shared_from_this 和堆栈上的对象

有没有办法阻止shared_from_this()调用堆栈分配的对象?基类列表中的enable_shared_from_this是类用户的强指标,但有没有办法强制正确使用?示例代码:classC:publicenable_shared_from_this{public:shared_ptrmethod(){returnshared_from_this();}};voidfunc(){Cc;shared_ptrptr=c.method();//exceptioncomingfromshared_from_this()} 最佳答案 因此

c++ - 为什么 operator = 返回 *this?

假设我想覆盖operator=这样我就可以做类似的事情Polyp1;//anobjectrepresentingapolynomialPolyp2;//anotherobjectofthesametypep2=p1;//assignsallthecontentsofp1top2然后在我的operator=实现中,我有这样的东西:Poly&Poly::operator=(constPoly&source){//Skippingimplementation,italreadyworksfine…return*this;}不要介意实现,它已经运行良好。我担心的是当您返回*this时会发生什么

c++ - 区别 b/w Objective C 的 self 和 C++ 的 this?

有人能说出Objective-C的self和C++this指针之间的区别吗? 最佳答案 主要区别是this是一个关键字,而self是一个变量。这样做的结果是,虽然this总是引用正在执行特定方法的对象,但Objective-C方法可以自由修改self在执行期间。这有时被构造函数使用,它在失败时设置self=nil。这样做的原因是:这样子类(使用self=[superinit]链式初始化器)可以看到初始化失败的时间,并且知道不要在自己的初始化器中继续。组合对象可以看到失败并知道它们没有有效的组件。一些初始化器会将self设置为一个不同

c++ - C++ 中 this* 的类型

这听起来可能很愚蠢。在C++prime第5版P258中,它说:bydefault,thetypeofthisisaconstpointertothenonconstversionoftheclasstype.forexample,bydefault,thetypeofthisinaSales_datamemberfunctionisSales_data*const.我可以理解,因为this*是一个const指针,这意味着它指向的对象一旦初始化就不能改变。但是它说:althoughthisisimplicit,itfollowsthenormalinitializationrules,w

c++ - 使用 this-> 访问成员是否有任何开销?

当访问某个类的成员时,我可以使用例如:this->myVar=10或者我可以写:myVar=10我喜欢使用this->,因为它显式声明变量是此类的成员,但与仅使用变量名本身相比,它会产生任何开销吗?作为替代方案,我可以为变量添加一个唯一的前缀,例如_TmyVar,但我已经使用this->很长时间了,所以我只是想知道。 最佳答案 没有开销。编译器将为两个版本生成完全相同的代码。 关于c++-使用this->访问成员是否有任何开销?,我们在StackOverflow上找到一个类似的问题:

c++ - 为什么即使模板类没有基类, `this` 也是类型依赖表达式?

下面的代码可以编译无误:templatestructA{voidf(){this->whatever;}//whateverisnotdeclaredbefore};intmain(){Aa;}我知道这是因为this是一个类型相关的表达式,它为whatever进行名称查找被推迟,直到知道实际的模板参数。由于成员函数f()在这种情况下从未使用过,因此没有实例化A::f存在,并为whatever查找名称永远不会执行。我可以理解this如果类模板有一个依赖于类型的基础,那么它是依赖于类型的:templatestructB{Twhatever;};templatestructA:B{voidf

c++ - 是否有正当理由不从复制赋值运算符返回 *this ?

这个问题在这里已经有了答案:Whymustthecopyassignmentoperatorreturnareference/constreference?(8个答案)关闭7年前。设foo是一个带有复制赋值运算符的结构或类:structfoo{foo&operator=(constfoo&);//orwithsomeotherreturntype?};曾经是否有合理的理由从operator=()返回*this以外的任何内容?将它用于与赋值无关的事情并不合理。