gpt4 book ai didi

c++ - std::initializer_list 的语义

转载 作者:搜寻专家 更新时间:2023-10-31 01:00:02 25 4
gpt4 key购买 nike

我正在实现一组侵入式容器,试图尽可能地成为标准库。我在考虑要不要支持std::initializer_list但我不太了解它的语义。

基本上如果我有这段代码:

std::string a = "a";
std::string b = "b";
std::string c = "c";

std::initializer_list<std::string> list = { a, b, c };

// pass list to a container or whatever

从初始化列表传递的对象是对字符串 abc 的实际拷贝或“引用”吗?

最佳答案

来自 this std::initializer_list reference :

An object of type std::initializer_list<T> is a lightweight proxy object that provides access to an array of objects of type const T.

这意味着初始化列表中的对象按 存储。所以要回答你的问题,是的,将制作拷贝。

关于c++ - std::initializer_list 的语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32067875/

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