gpt4 book ai didi

c++ - 如何完善转发成员变量

转载 作者:IT老高 更新时间:2023-10-28 21:51:01 25 4
gpt4 key购买 nike

考虑以下代码:

template<typename T> void foo(T&& some_struct)
{
bar(std::forward</* what to put here? */>(some_struct.member));
}

在转发整个结构的情况下,我会做 std::forward<T>(some_struct) .但是转发成员时如何获取正确的类型呢?

我的一个想法是使用 decltype(some_struct.member) ,但这似乎总是产生该成员的基本类型(在结构定义中定义)。

最佳答案

成员(member)访问权限为 value category preserving .如果对象表达式是左值,则成员访问也是,否则它是 xvalue(如 std::move 的结果)。转发对象结果的成员访问也是如此。

std::forward<T>(some_struct).member

关于c++ - 如何完善转发成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54709377/

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