首页 > 其他分享 >std::initialize_list<T>作为返回值

std::initialize_list<T>作为返回值

时间:2023-04-22 11:45:00浏览次数:39  
标签:std 返回 intialize list 编译器 initialize 返回值

正常情况,我们应该返回一个 vector<T>,但是呢,因为我这是嵌入式,我不想动态开辟。于是我突发其想,返回个intialize_list,在写这个代码时,我就觉得可能不正确,因为intialize_list类中没有个数。抱着试一试的心态,我还是写了这个代码。结果,果然是不正确的。

原因是这样的,intialize_list实际是创建了一个临时的数组,然后把数据的指针和大小,给了initialize_list,返回initialize_list时,实际是在被调函数中创建了一个临时数组,然后把这个临时数组的指针给返回了。当然就不好使了。实际上编译器可以优化这个,至少可以处理一级返回值,但是不幸编译器并没有这样做。

标签:std,返回,intialize,list,编译器,initialize,返回值
From: https://www.cnblogs.com/windtail/p/17342688.html

相关文章

  • Java:ArrayList初始化赋值
    测试环境$java-versionjavaversion"1.8.0_251"Java(TM)SERuntimeEnvironment(build1.8.0_251-b08)JavaHotSpot(TM)64-BitServerVM(build25.251-b08,mixedmode)方式一:常规方式List<Integer>list=newArrayList<>();list.add(1);list.add(......
  • 关于若依框架实现list数据导出到excel并实现下载(简单实现)
    https://www.cnblogs.com/jdearfaust/p/16661595.html没看源码,仅仅会用先是在需要导出的实体类上添加若依自带的@Excel的注解,注解中主要的两个参数一个是name用于生成excel中的字段名,一个是sort用于在excel中字段的排序@Excel(name="车辆id",cellType=Excel.ColumnType.N......
  • QT中在使用QMediaPlaylist类的insertMedia函数插入新播放文件后,出现播放顺序错误的分
    我下面的这段代码的意图是:当前的播放队列中插入一个播放文件到队首,使其为下一个播放文件。但是并没有达到我的预期。于是在代码中加入一段调试程序,将当前的播放文件的序号打印出来。 调试之后的结果如下:发现无论向播放队列中插入几次,当前的播放序列都是1。如果想要在播放......
  • c++编译报错 error: parse error in template argument list
    [57%]BuildingCXXobjectdnet/CMakeFiles/dnet.dir/dconfig/dconfig_manager.cpp.oInfileincludedfrom/home/vi/git/dos/dnet/dconfig/dconfig_manager.cpp:1:/home/vi/git/dos/dnet/./dconfig/dconfig_manager.h:Inmemberfunction‘Tdnet::dconfig_manager::get_......
  • C++11之std::future对象的基本用法
    1、//futureexample#include<iostream>//std::cout#include<future>//std::async,std::future#include<chrono>//std::chrono::milliseconds//anon-optimizedwayofcheckingforprimenumbers:boolis_prime......
  • 【快应用】list-item组件的正确隐藏
    【关键词】list组件 if/show 【问题背景】list组件中给list-item使用show属性后,再设置为false后,会有一个空白位置留出,感觉位置好像还是被占据着,这种情形我们该如何处理?如下图所示:​​ 【问题原因】引擎list组件的实现就是这样的,show为false时只是将控件设置为隐藏,dom......
  • docker安装FastDFS教程
    以下是在Docker中安装FastDFS集群的详细教程,适用于生产环境:下载FastDFS镜像文件:dockerpullseason/fastdfs创建一个网络用于容器之间的通讯:dockernetworkcreatefastdfs启动tracker容器:dockerrun-d--nametracker--netfastdfs--restartalwaysseason/fastdfstracke......
  • FastDDS implementation
    TheDCPSconceptualmodelDDSisaData-CentricPublishSubscribe(DCPS)model,andthreekeyapplicationentitiesaredefinedinitsiimplementation:publiucationentitiesSbuscriptionentitiesconfigurationentitiesPublisher:ItimplementsDataWriter......
  • std::any
    #include<iostream>#include<any>voidread1(std::any&data){data=std::move("no");}voidread2(std::any&data){data=std::move(std::string("yes"));}intmain(){std::anya;......
  • FastDFS服务搭建
    以下是搭建FastDFS集群服务的详细文档教程:准备工作在准备开始前,需要准备好以下环境和软件:CentOS764位系统FastDFSv5.11FastDHTv5.11Nginxlibfastcommonv1.0.43安装libfastcommon下载并解压libfastcommon源码包,执行以下命令编译和安装:wgethttps://github.com/hap......