草庐IT

action_move

全部标签

c++ - 在 C++11 中访问 move 对象时发出警告

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:WhatcanIdowithamoved-fromobject?在您调用std::move并将结果传递给函数后,您通常必须假设稍后访问move的对象将导致未定义的行为。是否有工具可以检测这些访问并警告您。例如:{Widgetw;foo(std::move(w));//wmaybeundefinedatthispointw.doSomething();//WARN}至少,gcc4.7.2和clang3.2和-Wall不会提示。更新:回顾这个问题,关键是编译器无法判断一个对象在被移出后是否仍然有效。如果建议N403

c++ - 在 C++11 中访问 move 对象时发出警告

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:WhatcanIdowithamoved-fromobject?在您调用std::move并将结果传递给函数后,您通常必须假设稍后访问move的对象将导致未定义的行为。是否有工具可以检测这些访问并警告您。例如:{Widgetw;foo(std::move(w));//wmaybeundefinedatthispointw.doSomething();//WARN}至少,gcc4.7.2和clang3.2和-Wall不会提示。更新:回顾这个问题,关键是编译器无法判断一个对象在被移出后是否仍然有效。如果建议N403

c++ - 为什么 move 构造函数既没有用clang声明也没有删除?

考虑以下类。structwith_copy{with_copy()=default;with_copy(with_copyconst&){}with_copy&operator=(with_copyconst&){return*this;}};structfoo{with_copyc;std::unique_ptrp;};with_copy有复制构造函数吗?是的。它是明确定义的。with_copy是否有move构造函数?不会。显式复制构造函数会阻止生成它。with_copy是否有已删除的move构造函数?不,没有move构造函数与删除构造函数不同。已删除的move构造函数会尝试move

c++ - 为什么 move 构造函数既没有用clang声明也没有删除?

考虑以下类。structwith_copy{with_copy()=default;with_copy(with_copyconst&){}with_copy&operator=(with_copyconst&){return*this;}};structfoo{with_copyc;std::unique_ptrp;};with_copy有复制构造函数吗?是的。它是明确定义的。with_copy是否有move构造函数?不会。显式复制构造函数会阻止生成它。with_copy是否有已删除的move构造函数?不,没有move构造函数与删除构造函数不同。已删除的move构造函数会尝试move

c++ - 即使 move-assignment 是 noexcept,std::move_if_noexcept 也会调用 copy-assignment;为什么?

我试图尽可能接近强异常保证,但是在玩弄std::move_if_noexcept时,我遇到了一些看似奇怪的行为。尽管下面的类中的移动赋值操作符被标记为noexcept,复制赋值操作符在被调用时被调用带有相关函数的返回值。structA{A(){/*...*/}A(Aconst&){/*...*/}A&operator=(Aconst&)noexcept{log("copy-assign");return*this;}A&operator=(A&&)noexcept{log("move-assign");return*this;}staticvoidlog(charconst*msg){

c++ - 即使 move-assignment 是 noexcept,std::move_if_noexcept 也会调用 copy-assignment;为什么?

我试图尽可能接近强异常保证,但是在玩弄std::move_if_noexcept时,我遇到了一些看似奇怪的行为。尽管下面的类中的移动赋值操作符被标记为noexcept,复制赋值操作符在被调用时被调用带有相关函数的返回值。structA{A(){/*...*/}A(Aconst&){/*...*/}A&operator=(Aconst&)noexcept{log("copy-assign");return*this;}A&operator=(A&&)noexcept{log("move-assign");return*this;}staticvoidlog(charconst*msg){

c++ - 如果不使用 C++11,Anthony William 的 "C++ Concurrency in action"是一本合适的书吗?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭10年前.我愿意从并发中学习更多,我发现这本书有很多好评。但是看了前言,怕是很关注C++11才有的STD函数。由于C++11还不是很常用,而且在我的工作场所根本没有,我需要知道在我应该阅读另一本书时阅读这本书是否会浪费时间。我专注于Windows开发,但我喜欢在UNIX和Windows中使用标准库。对这本书有什么建议或说明吗? 最佳

c++ - 如果不使用 C++11,Anthony William 的 "C++ Concurrency in action"是一本合适的书吗?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭10年前.我愿意从并发中学习更多,我发现这本书有很多好评。但是看了前言,怕是很关注C++11才有的STD函数。由于C++11还不是很常用,而且在我的工作场所根本没有,我需要知道在我应该阅读另一本书时阅读这本书是否会浪费时间。我专注于Windows开发,但我喜欢在UNIX和Windows中使用标准库。对这本书有什么建议或说明吗? 最佳

c++ - 为什么要在单例中删除 move 构造函数和 move 赋值运算符?

我有以下单例策略类实现:templateclassSingleton{Singleton(){};//sowecannotaccidentallydeleteitviapointersSingleton(constSingleton&)=delete;//nocopiesSingleton&operator=(constSingleton&)=delete;//noself-assignmentsSingleton(Singleton&&)=delete;//WHY?Singleton&operator=(Singleton&&)=delete;//WHY?public:staticT

c++ - 为什么要在单例中删除 move 构造函数和 move 赋值运算符?

我有以下单例策略类实现:templateclassSingleton{Singleton(){};//sowecannotaccidentallydeleteitviapointersSingleton(constSingleton&)=delete;//nocopiesSingleton&operator=(constSingleton&)=delete;//noself-assignmentsSingleton(Singleton&&)=delete;//WHY?Singleton&operator=(Singleton&&)=delete;//WHY?public:staticT