首页 > 解决方案 > 将返回值从函数存储到 const ref

问题描述

函数 GetVec 返回 std::vector。然后我将返回的值存储到 const ref 中。存储在 const ref 中的返回值是否在下一行被销毁。我的印象是它不会。


#include <vector>
#include <iostream>

std::vector<int> GetVec(){
  std::vector<int> vec;

  vec.push_back(1);
  vec.push_back(2);
  vec.push_back(3);

  return vec;
}


void print(const std::vector<int>& arg){
  for(const auto& id : arg){
    std::cout <<id << ",";
  }
  std::cout << std::endl;
}

int main(){
  const std::vector<int>& ret_val = GetVec();

  // is content of ret_val undefined here?
  print(ret_val);
}

输出 :

1,2,3,

标签: c++c++11

解决方案


推荐阅读