腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
为什么
这个
结构
的
移动
赋值
操作符
被删
除了
?
c++
当我创建此
结构
的
数组并尝试擦除前2个成员时,它会生成一个编译器错误(Visual Studio 2019): struct A { virtual void unimplemented() =Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\include\xutility 3907 我假设当向量重新排列它
的
元素时调用了
移动
赋值
操作符
,但我不明白
为什么
它会
被删<
浏览 12
提问于2020-04-15
得票数 2
回答已采纳
3
回答
带有复制运算符
的
r值
c++
、
c++11
考虑一下
这个
简单
的
类{ Foo() = default; Foo & operatorreturn 0; 当我编译上面的例子时,我得到了error: use of deleted function 'Foo& Foo::operator=(Foo&&)' 如果只提供副本
赋值
,则所有参数类别都会选择它(只要它以值作为参数或引用const,因为
浏览 1
提问于2016-07-29
得票数 15
回答已采纳
2
回答
尝试引用
结构
构造函数上
的
已删除函数
c++
这是我
的
结构
,我得到了错误注意:编译器在此处生成了“LandCell::LandCell” AnimatedBitmap sprite;};我读到,如果你定义自己
的
移动
/复制构造函数,就会发生这种情况,但在这种情况
浏览 0
提问于2017-01-29
得票数 0
1
回答
什么意思
移动
操作从未被定义为已删除
的
函数?
c++
、
copy-constructor
、
move-constructor
除了
一个重要
的
例外,当合成
的
移动
操作被定义为删除时
的
规则类似于复制操作
的
规则(第13.1.6节,第508页): 与复制构造函数不同,如果类
的
成员定义了自己
的
复制构造函数,但也没有定义
移动
构造函数,或者类
的
成员没有定义自己
的
复制操作同样,对于move-assignment.The
移动
构造函数或
移动
赋值
操作符
,如果类
的</
浏览 1
提问于2020-02-02
得票数 0
2
回答
除了
在
赋值
操作符
中如何使用to与复制和交换成语?
c++
、
c++11
、
noexcept
、
copy-and-swap
移动
赋值
操作符
通常应该声明为to (即将类型存储在STL容器中)。但是复制和交换成语允许在一段代码中定义复制和
移动
赋值
操作符
。在这种情况下,
除了
说明符之外,还有什么用呢?复制
结构
可以抛出,但我怀疑它是否能违反不例外说明符。 // Is it correct considering that T copy constructor can throw?
浏览 2
提问于2013-09-17
得票数 19
回答已采纳
3
回答
琐碎
的
可复制类-在C++20中发生了什么变化?
c++
、
c++20
、
trivially-copyable
,(1.3)具有一个平凡
的
、非删除
的
析构函数(class.dtor)。例如,一个具有平凡
的
复制构造函数和复制
赋值
操作符
的
类,以及显式删除
的
移动
构造函数和
移动
赋值
操作
浏览 18
提问于2022-07-18
得票数 5
回答已采纳
3
回答
如何确保使用
移动
构造函数
c++
、
c++11
、
move-constructor
、
move-assignment-operator
下面的代码给出了错误:现在,我知道这是因为通过指定
移动
构造函数(有意)隐式删
除了
复制构造函数,并且复制向量会导致对(已删除
的
)复制构造函数
的
调用。我也理解
为什么
要使用向量
的
复制构造函数和
赋值
操作符
。显然,我希望使用move构造函数和
赋值
操作符
:
移动
对象,因此也要
移动
它包含
浏览 4
提问于2016-02-12
得票数 6
回答已采纳
2
回答
为什么
基类中
的
复制和交换导致在派生类中隐式删除复制
赋值
操作符
?
c++
、
c++17
、
deleted-functions
、
copy-and-swap
、
defaulted-functions
仅在和中测试,基类中存在按值传递
的
副本
赋值
操作符
(在实现复制和交换(或复制和
移动
)成语时有用),这将导致派生类中
的
复制
赋值
操作符
被隐式删除。 Clang和GCC在这一点上达成了一致;,
为什么
会这样?
浏览 5
提问于2019-12-21
得票数 1
回答已采纳
2
回答
默认
的
移动
构造函数是否被视为用户声明
的
?
c++
、
c++11
问题是,正如我
的
标题所述。 T有一个用户声明
浏览 2
提问于2015-08-06
得票数 9
回答已采纳
1
回答
当需要
移动
赋值
运算符时,编译器
为什么
要寻找副本
赋值
操作符
?
c++
if (ptr) delete[] ptr;}; A a1; a2 = std::move(a1);GCC 11抱怨删
除了
副本
赋值
操作符
constructor or move assignment operator | ^然后,在我定义了
移动
赋值
运算符(而不是复制
赋值
运算符)之后,它编译得很好。然后,这
浏览 3
提问于2021-12-10
得票数 2
回答已采纳
1
回答
预期move_assignment将
被删
除
c++
、
metaprogramming
我试图编写一个包装类,它有条件地禁用四个特殊
的
成员函数(复制构造、
移动
构造、复制分配和
移动
分配),下面是我用于测试目的
的
快速草稿: enum class special_member : uint8_t具体来说,下面代码中
的
断言失败了,这使我相信,在move_ctor部分专门化
的
_disabled_wrapper中,由于某些原因,默认
的
移动
赋值
运算符没有
被删
除,尽管它
的
非静态成员_parent<em
浏览 5
提问于2022-06-16
得票数 3
回答已采纳
6
回答
“逐值即动”是一个糟糕
的
成语吗?
c++
、
c++11
、
move-semantics
、
pass-by-value
、
rvalue-reference
由于我们在C++中有
移动
语义,所以现在通常这样做。理由是,如果a是一个rvalue,拷贝将
被删
除,并且只会有一个动作。似乎会有一个复制
结构
,然后是一个
移动
赋值
(假设A有一个适当
的
移动
赋值
操作符
)。如果对象有太多
的
成员变量,
移动
分配可能会付出很大
的
代价。
浏览 1
提问于2014-01-10
得票数 80
回答已采纳
1
回答
(隐式声明)不能引用--它是已删除
的
函数。
c++
、
c++11
、
constructor
return ret;错误: 如何解决此错误?
浏览 91
提问于2020-04-26
得票数 7
回答已采纳
2
回答
C++会使用复制
赋值
运算符中
的
移动
构造函数吗?
c++
、
c++11
、
rvalue-reference
、
move-semantics
假设我有一个简单
的
结构
,它包含一个向量并定义了一个复制
赋值
操作符
,还有一个函数返回
这个
结构
,如下所示:{ { }据我所知,因为我声明了一个复制
赋值
操作符
,所以编译器不会自动
浏览 0
提问于2012-02-24
得票数 1
回答已采纳
2
回答
我怎么会误解C++标准关于“琐碎
的
可复制”?
c++
、
language-lawyer
下面代码中
的
静态断言失败。(6.1)如果每个复制构造函数、
移动
构造函数、复制
赋值
操作符
和
移动
赋值
运算符(class.copy、over.ass)都
被删
除或删除, (6.2)至少有一个未删除
的
复制构造函数、
移动
构造函数、复制
赋值
运算符或
移动
赋值
浏览 3
提问于2021-05-26
得票数 15
3
回答
为什么
remove_if( .,lambda )表达式需要
赋值
操作符
?
c++
、
c++11
、
stl
、
lambda
、
operator-overloading
to reference a deleted function实际上,我已经删
除了
operator=类中
的
Session,如下所示:我
的
问题是:
为什么
使用lambda表达式
的
remove_if需要
赋值
操作符
?更新
浏览 5
提问于2014-06-06
得票数 2
回答已采纳
2
回答
我是否可以强制默认
的
特殊成员函数为to除外?
c++
、
c++11
、
noexcept
以下
结构
无法在C++11下编译,原因是我已将
移动
赋值
操作符
声明为noexcept{ foo& operator=(foo&&) noexcept = default;编译器生成
的
默认
移动
赋值
操作符
是noexcept(false),因为std::vector<int>
的
移动
赋值<
浏览 3
提问于2013-09-11
得票数 9
回答已采纳
1
回答
std:使用多态
移动
赋值
操作符
移动
和内存安全
c++
、
inheritance
、
memory
、
polymorphism
、
move-semantics
换句话说,当other从Child::operator(Child&&)传递给Parent::operator=(Parent&&)时,整个对象是通过父调用“
移动
”了,还是仅仅是底层
的
Parent对象?
浏览 1
提问于2022-06-22
得票数 0
回答已采纳
1
回答
编译器声明
的
隐式
移动
构造函数
c++11
根据C++11 12.8.9,
这个
(非平凡
的
)类X没有隐式声明
的
移动
构造函数,因为X有一个用户声明
的
复制ctor,一个用户声明
的
复制
赋值
操作符
,一个用户声明
的
dtor: ~X() { --xc; /* ... */ } int p;但
浏览 2
提问于2015-11-21
得票数 2
2
回答
如果我们只定义复制构造函数/ defined =,
为什么
移动
构造函数/
移动
分配没有被隐式声明并被定义为已删除?
c++
、
c++11
按照C++标准12.8.7: 我想知道
为什么
移动
构造函数/
移动
分配没有被隐式声明和定义为已删除(在本例中
浏览 2
提问于2015-02-16
得票数 3
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
仙人指路,引而不发,Go lang1.18入门精炼教程,由白丁入鸿儒,Golang中New和Make函数的使用背景和区别EP16
C/C+基础知识总结
最精炼的编程语言学习步骤
是谁吃掉了我的外部变量?
Python 基础语法介绍(一)
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券