微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 返回初始化列表机制

涉及什么机制,如果返回的类型是可从初始化程序列表中构建的,那么我不指定我正在返回的类型,如:
std::array<int,3> make_array()
{
  return { 1,2,3 };
}

代替

std::array<int,3> make_array()
{
  return std::array<int,3>{ 1,3 };
}

如果我没有指定类型返回初始化程序列表,是否涉及任何性能损失?我实际上是返回一个数组,它被转换成一个std ::数组?

解决方法

没有涉及到性能处罚.返回值被构造为等效于
std::array<int,3> x = { 1,3 };

std :: array实例甚至没有一个单一的复制或移动.

原文地址:https://www.jb51.cc/c/113952.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐