gpt4 book ai didi

c++ - 如何验证返回的 `auto` 变量是否为引用

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:21:09 29 4
gpt4 key购买 nike

<分区>

在进行代码维护时,我发现了这样的代码:

auto networkEntry = _networkEntries[key];
networkEntry.port = port;
networkEntry.scope = scope;

用于_networkEntries 的 map 数据类型有两个重载版本的operator[]:

template<class T>
class Map {
// ... simplified STD compatible container ...
T & Map::operator[](const Key & key);
const T Map::operator[](const Key & key) const;
};

map 中使用的数据类型是一个简单的struct

现在我只是想知道,auto 的返回值可能是数据结构的拷贝,或者是对数据结构的引用。如果返回一个拷贝,分配将不会影响 map 中存储的值。

对于这个案例我有三个相关的问题:

  • 我能否知道或测试使用了哪个版本的operator[]
  • 哪些 C++ 规则在这里适用?
  • 有没有办法使用 auto 来确保引用被使用?

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