腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
1
回答
clang
-
Wglobal-
关于
复制
/
移动
构造
函数
的
构造
函数
行为
、
、
、
、
这段代码产生一个警告:“声明需要一个全局
构造
函数
-Wglobal-constructors” // Compile with -Wglobal-constructors public相反,创建
复制
构造
函数
constexpr就是这样做
的
,这让我感到困惑。这同样适用于move
构造
函数
(如果有)。
浏览 19
提问于2020-04-20
得票数 0
2
回答
为什么
移动
构造
函数
既不声明也不用
clang
删除?
、
、
、
、
它得到了明确
的
定义。 with_copy有已删除
的
移动
构造
函数
吗?不是的。没有
移动
构造
函数
与删除
构造
函数
是不一样
的
。删除
的
移动
构造
函数
将尝试
浏览 5
提问于2013-12-16
得票数 17
2
回答
未实现
的
临时
函数
是否需要可访问
的
析构
函数
?
、
、
)=default; { //GCC error: A::~A() is private in this context.这种
行为
是"c++17保证(
复制
省略,而不是相关
的
RVO或NRVO)“
的
一部分。GCC不编译这个代码,但是
Clang
编译。哪一个是错
的
?也许这一段说bot
Clang
和GCC是符合标准
的
class.temporary 当类X<e
浏览 1
提问于2017-10-03
得票数 5
回答已采纳
1
回答
在
Clang
上禁用“当
移动
构造
函数
可用时删除
复制
构造
函数
”
、
、
、
在StackOverflow上,我发现在
Clang
++上使用C++11标准时,如果你为你
的
类定义了一个
移动
构造
函数
,那么隐式
构造
函数
的
生成将被禁用,即
复制
构造
函数
被“显式删除”。有什么方法可以禁用此
行为
吗? 另外,这种
行为
是标准化
的
吗?因为我在GCC身上没有这样
的
表现。
浏览 0
提问于2012-01-10
得票数 0
回答已采纳
2
回答
MSVC不能返回可以
复制
但不能
移动
的
对象
、
、
、
、
在摆弄
复制
省略时,我遇到了这个奇怪
的
行为
: GCC和
Clang
接受此代码,并且能够在这两种情况下使用
复制
省略。 在f1()中,MSVC抱怨它不能返回o,因为Obj
的
移动
构造
函数
被删除了。但是,我希望它能够依赖于
复制
构造
函数
。这是MSVC中
的
一个bug,还是这种期望
的
行为
(我不理解)和GCC /
Clang</e
浏览 55
提问于2021-02-28
得票数 23
回答已采纳
2
回答
为什么删除
移动
语义会导致std::vector
的
问题?
、
在做了一些研究之后,我发现
的
分配器要求类型是可
移动
的
/可
复制
的
。我确信这是造成这个问题
的
原因,但是我对删除和未声明
的
移动
语义之间
的
行为
感到困惑。下面的代码无法在MSVC12和
Clang
上编译:{ Copyable() = default; Copyable::可
复制</e
浏览 5
提问于2014-10-21
得票数 12
回答已采纳
1
回答
涉及模板化转换运算符和隐式
复制
构造
函数
的
歧义
、
、
、
、
“
clang
”和“gcc”对以下代码
的
行为
不同:{}; {}; { foo f{w};
clang
接受此代码,并调用foo(int)
构造
函数
。然而,gcc抱怨foo(int)
构造
函数
与隐式生成
的
浏览 0
提问于2013-04-17
得票数 22
回答已采纳
2
回答
在c++17中使用-声明可以继承
复制
/
移动
构造
函数
吗?
、
、
、
、
::B; B b(5); return 0;在12.9 copy. in /p3中,c++14显式地从继承
的
构造
函数
中排除了
复制
/
移动
构造
函数
。对于候选
的
一组继承
构造
函数
中
的
每个非模板
构造
函数
(不包括没有参数
的
<e
浏览 5
提问于2020-05-05
得票数 4
回答已采纳
2
回答
何时实例化模板类
的
特殊成员
函数
?
、
、
、
、
何时实例化模板类
的
特殊成员
函数
(特别是
复制
/
移动
构造
函数
和
复制
/
移动
赋值操作符)?当类本身被实例化时,还是只在需要它们
的
时候?template class 'pair<int, S>' requested here ^ 建议它在类被实例化后立即尝试实例化
复制
构造
<
浏览 5
提问于2012-04-29
得票数 9
回答已采纳
2
回答
使用
移动
ctor
的
constexpr对象数组
、
、
、
我有一个带有constexpr值
构造
函数
的
类,但是没有
复制
或
移动
ctor。一个问题是,我希望这个对象是不可
移动
的
(为了测试目的),但我想“好吧,好吧,我会添加一个
移动
构造
函数
。”,在gcc下,所有的操作都是,但是当我使用
clang
时,它会抱怨,因为
移动
构造
函数
没有标记为constexpr。constexpr,它在gcc和
clang</em
浏览 0
提问于2014-12-04
得票数 9
回答已采纳
1
回答
结对:限制性太强
的
构造
函数
?
、
我偶然发现了新
的
std::pair
构造
函数
的
一个令人惊讶
的
行为
,它是在C++11中引入
的
。我在使用std::pair<int, std::atomic<int>>时注意到了这个问题,并且出现了这个问题,因为std::atomic既不能
复制
也不能
移动
。但是,当我删除foobar
的
复制
构造
函数
时,编译失败。它适用于分段
构造
,但
浏览 2
提问于2014-05-18
得票数 14
回答已采纳
1
回答
可选
的
非平凡析构
函数
使用要求
、
、
、
使用C++ 20声明可选
的
非平凡析构
函数
的
正确方法是什么?对于
复制
构造
函数
和
移动
构造
函数
,我首先声明了非平凡
的
复制
/
移动
构造
函数
,然后声明了默认声明,但对于析构
函数
,我得到了奇怪
的
行为
:#include <type_traits
浏览 16
提问于2021-12-22
得票数 1
回答已采纳
1
回答
如果删除
复制
构造
函数
,是否没有隐式
移动
构造
函数
?
以下是不编译
的
(尝试了
clang
和gcc){ Foo(const Foo&std::vector<Foo> foovec;} 但是如果我不删除
复制
构造
函数
,或者如果我默认
移动
构造</
浏览 2
提问于2014-11-07
得票数 4
回答已采纳
4
回答
Clang
和GCC对MSVC和ICC:
复制
/
移动
构造
函数
中
的
static_assert是否需要工作,如果
复制
/
移动
省略也适用?
、
、
、
、
我在我
的
模板结构
的
移动
构造
函数
中有一个static_assert。这个static_assert是否需要编译器考虑,即使
复制
省略是可能
的
?这是一个被剥离
的
场景:struct X X(X&&) { static_assert(std::is_same) -> X<int>; auto tes
浏览 5
提问于2016-04-02
得票数 25
回答已采纳
3
回答
如果禁用异常,std::vector<T>可以使用T
的
移动
构造
函数
吗?
当std::vector<T>不在emplace_back()
的
存储区时,如果T
的
移动
构造
函数
不是noexcept,它会使用
复制
构造
函数
将元素
复制
到新
的
存储中。该程序打印copy!}; std::vector<T> v; v.emplace_back();如果我用noexcept标记
移动</e
浏览 3
提问于2020-04-24
得票数 3
回答已采纳
3
回答
复制
构造
函数
与转发
构造
函数
之间
的
冲突
、
、
、
这个问题基于GCC-4.6上为我工作
的
代码,但对于
CLang
-3.0
的
另一个用户则不是这样,它们都是在C++0x模式下。
构造
函数
模板IIUC取消自动定义
的
默认
构造
函数
.但是,由于模板可以接受零参数,所以它将充当显式定义
的
默认
构造
函数
(只要default-constructible).IIUC,是T,那么类
的
复制
构造
策略就会忽略
构造</em
浏览 0
提问于2012-02-15
得票数 11
1
回答
移动
构造
函数
,非
复制
构造
函数
,列表在VS2010中
的
位置
我刚开始
移动
构造
函数
,并与VS2010
行为
非常混淆。我设计了一个
移动
构造
函数
(A类),据我所知如下所示:当我使用list‘instance并放置A类
的
一个实例时: mylist.emplace(a);不调用我
的
移动
构造
函数
,而是调用一个非const
复制
构造
函数
:
浏览 2
提问于2010-12-15
得票数 1
回答已采纳
1
回答
在C++0x中,非静态数据成员初始化器是否覆盖隐式
复制
构造
函数
?
、
、
、
根据与相关
的
,非静态数据成员初始化器可以被显式定义
的
构造
函数
覆盖,但对于隐式定义
的
复制
构造
函数
似乎有点模糊。下面的程序返回输出"1",这表明
复制
构造
函数
忽略了右侧,取而代之
的
是新
的
非静态数据成员初始化器(在本例中,X::a
的
布尔真值)。,如果您注释掉string1: // std::string s
浏览 2
提问于2011-11-21
得票数 14
回答已采纳
2
回答
为什么当我什么都不动
的
时候,
clang
抱怨删除了一个
移动
控制器?
、
、
、
、
ABC(ABC&& aa) = delete; ABC b{ABC{}};}
Clang
- Apple LLVM version 8.1.0 (
clang
-802.0.42)观察
Clang
抱怨删除
的
移动
构造
函数
。对于gcc,我知道如果您只是简单地同时初始化lva
浏览 0
提问于2018-05-17
得票数 3
回答已采纳
2
回答
需要满足
的
要求是什么?
、
、
、
、
call to deleted constructor/function in both gcc and
clang
编辑: compiled with -std=c++2
浏览 1
提问于2021-06-18
得票数 5
回答已采纳
点击加载更多
热门
标签
更多标签
云服务器
ICP备案
腾讯会议
云直播
对象存储
活动推荐
运营活动
广告
关闭
领券