gpt4 book ai didi

c++ - 完美转发

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:32 27 4
gpt4 key购买 nike

如果我们有以下内容:

template <class T>
struct B{
T data;
}

struct A{
int data_array[100];
}

int main()
{
A x;
const A x_const;

auto y1 = f(A());
auto y2 = f(x);
auto y3 = f(x_const);
auto y4 = f(std::move(x));
}

我想知道一个 f(最好是函数,但宏也可以)这样:

decltype(y1) == B<A>
decltype(y2) == B<A&>
decltype(y3) == B<const A&>
decltype(y4) == B<A&&>

也就是说,f 完美地将x 转发到B 的对象中。

最佳答案

这是不可能的。对于 y1y4,它们都采用类型 A 的右值,但您希望它们返回不同的类型。 f 应该如何知道要返回什么?

关于c++ - 完美转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6287221/

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