D语言的 TypeTuple既然可以按数组的方式操作,我觉得应该可以对其增加更多的算法,下面的 RemoveIf就是一个例子:
1 module dust.meta.tuple;
2
3 import std.typetuple;
4
5
6 template RemoveIf(alias PredTempl, TList...)
7 {
8 static if (TList.length == 0)
9 alias TList RemoveIf;
10 else static if (PredTempl!(TList[0]))
11 alias RemoveIf!(Size, TList[1 .. length]) RemoveIf;
12 else
13 alias TypeTuple!(TList[0], RemoveIf!(Size, TList[1 .. length])) RemoveIf;
14 }
15
16 template Foreach(alias PredTempl, TList...)
17 {
18 static if(TList.length == 0)
19 alias TList Foreach;
20 else
21 {
22 private alias PredTempl!(TList[0]) Dummy_;
23 alias Foreach!(PredTempl, TList[1 .. length]) Foreach;
24 }
25 }
26
27
28 template Size(T)
29 {
30 const bool Size = T.sizeof == char.sizeof;
31 }
32
33 template Print(T)
34 {
35 const int Print = 0;
36 pragma(msg, T.stringof);
37 }
38
39 void main()
40 {
41 alias TypeTuple!(int, long, char) T;
42 alias RemoveIf!(Size, T) T2;
43 alias Foreach!(Print, T2) forEach;
44
45 }
这个RemoveIf模板的效果几乎和C++ STL 中的 remove_if 一样,提供一个谓词:PredTempl,RemoveIf最终得到处理后的TypeTuple。类似还可以实现 sort,unique等等算法,方便 TypeTuple的使用。
分享到:
相关推荐
《抛砖引路单片机》是一本针对初学者的单片机学习指南,旨在引领读者逐步走进单片机的世界。书中的内容分为四个主要部分,涵盖了从理论基础到实践操作的各个环节,对于想要深入了解单片机技术的人来说,无疑是一份...
使用简单的梯形图与SCL语言编写,通俗易懂,起到抛砖引玉的作用,比较适合有动手能力的入门初学者。 软件环境: 1、西门子编程软件:TIA Portal V15(博图V15) 2、FactoryIO 2.4.0 内容清单: 1、FactoryIO中文说明...
在当今这个快速发展的科技时代,笔记本电脑已成为我们日常生活和工作中不可或缺的一部分。Acer 4736z作为一款经典型号,很多人因其出色的性能而选择了它。然而,长时间的使用往往会使笔记本内部积聚灰尘,进而影响...
3. 操作流程演示:在WMS系统中,用户可以按照以下步骤进行主生产计划编辑、审核及抛砖操作:首先,用户需要编辑主生产计划,然后审核计划,最后抛砖计划。 ### 主生产计划变更功能 主生产计划变更功能允许用户对已...
发源代码的目的是抛砖引玉(小弟我抛砖,有玉的尽量砸过来)。AI算法是通用的,并不局限于某种棋,你可以取其精华去其糟粕,少走很多不必要的弯路。 源码也方便了那些一心只想搞算法而不想花心思在界面上...
10_类模板语法_数据类型和算法的分离_抛砖 11_单个类模板基本语法 12_类模板_派生_普通类语法 13_类模板_派生_类模板语法 14_中午知识点梳理 15_复数类_所有函数都写在类的内部 16_复数类_所有函数都写在类的外部_上...
所以那我就写了这么一个例子,以望对学习多线程编程起到引玉抛砖的作用。有个易懂的例子学起来总是容易很多。近来我正在复习那几个排序算法,于是就把这些算法写到了这里来作为线程的例子。同时也对几个通用的排序...
PHP简洁函数 主题:类菌体PHP简洁函数 简述:PHP简单明了函数语法 适合人群:对开源社区感兴趣,对php感兴趣,有一点时间了解下php 备注:希望大家抛砖,仍蛋,呵呵 1、与mysql相关 mysql_connect 建立一个与MySQL...
代码如下,仅作交流使用,期望起到抛砖迎玉的效果,matlab其强大功能需要我们一起发觉。:D urlread获取的源文件貌似不支持中文字符,不知道怎么解决,求交流解决办法。 % 本程序用于获取网站中的表格 % written ...
本文将通过一个简单的示例来解释SQL注入的工作原理和演示如何利用它。 首先,我们需要理解SQL的基本概念。SQL,全称Structured Query Language,即结构化查询语言,是用于管理和操作关系型数据库的标准语言。当我们...
基于SuperSocket的服务器 和 客户端程序 所需要的DLL 服务器端<控制台Console程序> (.Net4.0)需要引用 ...本人菜鸟一枚,抛砖引入,欢迎一起来研究这个Socket开发框架 QQ:2360450496 SuperSocket官方QQ群373076764
纯c语言实现的一个多任务小程序,标准C语言编写,模拟多任务运行的状态,可以移植到任意平台,代码写的很简单,适合C初学者,只是抛砖,作为启发只用,高端C开发人员可以忽略,不喜勿喷
示例只是一个示范,还存有很多缺陷,如:口令没有加密、输入页面没有美化、网页之间调用没有安全机制……等等,正如前文所言,笔者抛砖,网友引玉,有待大家完善! 笔者目前取得的小小成绩,得益于很多前辈的书籍、...
借鉴的另一个人的代码,我这里抛砖引。 这个项目是要连接数据库,获取并展示文物信息,那么就让单独一个database.py文件获取到后,一直保留着就可以了。咱也不知道数据量有多大,炸了再说。 那没数据库也不是跑不了...
Moba等游戏中,需要进行框选物体,但是如果地面不平整,用常规的BOX就无法制作...贴花还有很多用途,比如制作技能范围展示等等,这里只是抛砖引用。文章链接:https://blog.csdn.net/sdhexu/article/details/114289843
近义词如“抛砖引美”,也有类似的含义。 文档中列出了一系列的近义词,这些词汇对于学习汉语和提升语言表达能力非常有帮助。例如: - **茂盛—茂密**:这两个词都形容植物生长繁茂,但“茂盛”多用于形容生命力...
背景: 精易模块可以全面支持一下unicode嘛? 对此,我便基于:精易模块[v8.4.0] ,进行了部分命令Unicode化。(内部大部分源码来自易语言Unicode...对于更多命令,我无心去Unicode化了,该代码权当是抛砖迎玉罢了。
4. **传砖与物品投掷**:禁止向上抛砖或物体,人力传递砖块时,架子要稳固,人员位置错开,防止砖块掉落砸伤。严禁向下扔灰斗或物件,以防伤人。 5. **脚手架搭建与使用**:脚手架要求平稳牢固,桥枋搭接良好,避免...
对于把XP装进U盘或移动硬盘一直是个让人感兴趣的话题,对于要经常使用几台...发此帖的目的是为了让更多的人了解"USBOOT",希望能起到个抛砖的作用。至于这个系统可以用来干嘛?自己可以思考。下面先看看做好的系统:
利用超文本浏览框的即将跳转事件作为中转,就可以获得从网页上点击后要跳转的地址,这个地址将作为exe要执行什么操作的指令...本例程只做抛砖之用,高手飘过。。。。。。@易语言源码分享站。Tags:易语言超文本浏览框。