草庐IT

move_if_noexcept

全部标签

c++ - 隐藏参数 C++ 的有趣案例(参数未在 if block 中隐藏)

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我今天惊讶地发现下面的代码是完全有效的(gcc4.4.5):intget_int(constint&i){if(i==0){inti=1;returni;}returni;}我真的很惊讶。如果我必须接受它,那么我可以肯定地说它是有道理的,因为新变量在它自己的block中,所以外部的其余代码仍然可以访问该参数,因此该参数并没有真正被隐藏。但这对我来说仍然没有

C#/命令行界面 : Destructor not called if Dispose() used in it

我有一个名为“CTransferManaged”的C++/CLI类,其中实现了终结器和析构函数:CTransferManaged::~CTransferManaged(){this->!CTransferManaged();}CTransferManaged::!CTransferManaged(){//Cleanupresources...}此类由名为“CTransfer”的C#类包装,其中包含类型为CTransferManaged的​​对象m_transfer。如果此类的析构函数仅清除对对象m_transfer的引用,我可以看到调用了析构函数(命中断点):~CTransfer(){

c++ - 按值传递和 move ,或两种方法

这个问题在这里已经有了答案:WhyisvaluetakingsettermemberfunctionsnotrecommendedinHerbSutter'sCppCon2014talk(BacktoBasics:ModernC++Style)?(4个答案)关闭7年前。假设我有以下类,它有一个方法set_value。哪种实现方式更好?classS{public://aset_valuemethodprivate:Some_typevalue;};按值传递,然后movevoidS::set_value(Some_typevalue){this->value=std::move(value

c++ - 我什么时候应该真正使用 noexcept?

noexcept关键字可以适本地应用于许多函数签名,但我不确定何时应该考虑在实践中使用它。根据我目前所读的内容,最后添加的noexcept似乎解决了移动构造函数抛出时出现的一些重要问题。但是,对于一些实际问题,我仍然无法提供令人满意的答案,这些问题促使我首先阅读了有关noexcept的更多信息。有许多我知道永远不会抛出但编译器无法自行确定的函数示例。在所有此类情况下,我是否应该将noexcept附加到函数声明?必须考虑是否需要在每个函数声明后附加noexcept会大大降低程序员的工作效率(坦率地说,这会让人头疼).在哪些情况下我应该更加小心地使用noexcept,在哪些情况下我可以使用

c++ - 将成员声明与 enable_if 一起使用?

我需要有条件地使用成员声明。templatestructB;templatestructB{voidfoo();};templatestructB{};templatestructA:publicB::value>{usingB::value>::foo();voidfoo(int){}};这显然行不通,因为B::foo没有定义在一半的情况下。我怎样才能做到这一点?拥有B::foo()在A中可见foo(int)旁边的作用域?感谢帮助 最佳答案 这是我的解决方案。我敢肯定它不会是最好的,但它可以完成工作。structA{voidfoo

C#如何在不使用file.move的情况下重命名文件

我有一个连接到服务器的C#应用​​程序,获取DataGrid,操纵每一行,然后根据每个更新的行,新行被上传到服务器,每行每行都会在HDD上重命名一个文件。该应用程序的工作状态完全不错,但我与Profiler进行了分析,并意识到这条代码:File.Move(symbolsOldPath,symbolsPath);我的应用程序需要花费80%的时间来完成其任务。如果有一种不同的表现方式,我经历了所有问题和其他问题,但我并没有成功。我发现唯一的另一种方式是实现VB使用重命名方法,但是正如它称为文件一样。移动方法没有改进。你们是否知道另一种表现更好的方式?这是更改数据的类的代码。publicDataTa

无法移动选定的资源组合。 MOVE请求中缺少资源:“ XXX”。

我有一个看起来像这样的资源组:应用程序服务计划UispWestEuServerFarm仅包含单个应用程序:evisserver.当我尝试将Evisserver与UISPWESTEUSERVERFARM一起移动到另一个资源组时,我会发现一个错误:无法移动选定的资源组合。资源:'/blabla/resourcegroups/vyvojari.sk/providers/microsoft.web/sites/vyvojari-sk-dev'来自移动请求中缺少。请选择源订阅和资源组中的所有资源,以便它们可以一起移动。(代码:BadRequest,目标:Microsoft.web/serverfarms

c++ - 为什么 noexcept 说明符不在声明的方法范围内?

试图设计一些无异常的类,我有一个类似于此的继承结构,但我发现noexcept说明符在使用成员函数作为说明符时几乎没有帮助不在函数范围内。classBase{protected:Base()noexcept{}};classDerived:publicBase{public://error:'Base::Base()'isprotectedDerived()noexcept(noexcept(Base{})):Base{}{}//error:'foo'wasnotdeclaredinthisscopeDerived(int)noexcept(noexcept(foo())){}//err

c++ - noexcept 运算符和 enable_if_t : do they work together?

考虑以下类:structS{templatestd::enable_if_t::value>f()noexcept{}templatestd::enable_if_t::value>g()noexcept{}};正如预期的那样,编译:s.f();这个不是:s.g();令我困惑的是,下面的main是用GCC(6.2)编译的,而不是用clang(3.9)编译的:intmain(){static_assert(noexcept(&S::f),"!");static_assert(noexcept(&S::g),"!");}我会说第二个断言失败是因为特化无效。两个编译器不同意这一点。哪个是正确

c++ - move 是 c++ 中的关键字吗?

我正在编写一个程序并有一个名为“移动”的函数。但它在我的代码块中突出显示?move是c++中的保留字吗?如果是,它有什么作用?Ihaveitasvoidmove(doublet,doubleu) 最佳答案 不是关键字,而是有一个常用的标准库函数,叫做std::move;设置IDE语法突出显示的人决定突出显示它。为避免与阅读您的代码的人混淆,将您的函数称为其他名称是个好主意。 关于c++-move是c++中的关键字吗?,我们在StackOverflow上找到一个类似的问题: