2312d,把alloca注入调用者域

news/2024/12/23 4:34:18/

原文
有以下技巧.因为无法推导长度,因此不理想,但这成功地把alloca注入到调用者域中.

import core.stdc.stdlib:alloca;
import std.range:ElementType;
import core.lifetime:moveEmplace;
struct VLA(T,alias len){T[] storage;this(R)(R initializer,return void[] storage=alloca(len*T.sizeof)[0..len*T.sizeof]){this.storage=cast(T[])storage;foreach(ref element;this.storage){assert(!initializer.empty);auto init=initializer.front;moveEmplace!T(init,element);initializer.popFront();}}ref T opIndex(size_t i)return{ return storage[i]; }T[] opSlice()return{ return storage; }
}
auto vla(alias len,R)(R initializer,void[] storage=alloca(len*ElementType!R.sizeof)[0..len*ElementType!R.sizeof]){return VLA!(ElementType!R,len)(initializer,storage);
}
void main(){import std.stdio,std.string,std.conv,std.range;int x=readln.strip.to!int;writeln(vla!x(2.repeat(x))[]);
}

http://www.ppmy.cn/news/1267754.html

相关文章

[Linux] LAMP架构

一、LAMP架构架构的概述 LAMP 架构是一种流行的 Web 应用程序架构,它的名称是由四个主要组件的首字母组成的: Linux(操作系统): 作为操作系统,Linux 提供了服务器的基础。它负责处理硬件资源、文件系统管理…

不需要联网的ocr项目

地址 GitHub - plantree/ocr-pwa: A simple PWA for OCR, based on Tesseract. 协议 mit 界面 推荐理由 可以离线使用,隐私安全

外包干了3年,技术退步太明显了。。。。。

先说一下自己的情况,本科生生,18年通过校招进入武汉某软件公司,干了差不多3年的功能测试,今年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能…

【NSX-T】4.搭建NSX-T环境 —— 部署三节点 NSX 管理集群

目录 4.[模拟] 部署三节点 NSX 管理集群4.1 准备工作4.2 部署第二个 NSX Manager 设备(1)Appliance Information(2)Configuration(3)Access & Credentials 4.3 部署第三个 NSX Manager 设备4.4 配置虚拟…

轻松搭建FPGA开发环境:第二课——UE 安装与配置说明

工欲善其事必先利其器,很多人想从事FPGA的开发,但是不知道如何下手。既要装这个软件,又要装那个软件,还要编译仿真库,网上的教程一大堆,不知道到底应该听谁的。所以很多人还没开始就被繁琐的开发环境搭建吓…

bootstrap:下拉菜单

<!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>下拉菜单DEMO</title> <link rel"stylesheet" type"text/css" href"/cdn.bootcss.com/bootstrap/3.3.2/css/bootstrap.min.css"…

14:00面试,14:08就出来了,问的问题有点变态。。。。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到5月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

基于SSM的小儿肺炎知识管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…