gpt4 book ai didi

c++ - move 构造函数和 char 数组参数

转载 作者:行者123 更新时间:2023-11-30 01:59:57 26 4
gpt4 key购买 nike

struct Foo
{
char data[100];

template<int T>
Foo(char (&&var)[T])
{
data = std::move(var);
var = 0;
}
};

int main()
{
char v[100];
//..init v
Foo f( std::move(v) ); //error C2664: 'Foo::Foo<100>(char (&&)[100])' : cannot convert parameter 1 from 'char [100]' to 'char (&&)[100]'
return 0;
}

我不明白为什么 MSVC 对行 Foo f( std::move(v) ) 不满意? (也许这段代码毫无意义)

最佳答案

您可以使用 std::move算法,来自 <algorithm>标题。

auto it = std::move(data, data + T, var);

检查后 T不大于 100。但 move char与仅复制相比并没有太多好处。

关于c++ - move 构造函数和 char 数组参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15641776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com