学习d未来笔记.

设计目标:
更易写泛型
健壮性
编程准则
方便大规模
并行编程

方法:
无问题
暗角落
工程理念(转换,构造限制,宏中非混杂)

函数参数 定义=数据定义
枚查找规则 =函数指针查找
宏参数与模板参数规则一致
用户定义转换与内置一致

函数&模板重载
void foo(int i)
void foo(T)(T*t)
两者平等,相互重载.
理念:泛型与特殊无缝合作,函数与模板平等.在宏中不能重载函数.

统调:
添加成员函数到库类麻烦
类设计者,可设计最小必要函数,其他人定义自由函数.
类似我就是库作者,
这样的东西,都可以表现得好像是有成员函数,帮助写泛型
非成员函数,改进包装.
类中的封装要尽可能的小.该你才是你.
导入函数时,禁止不同模块的函数名相同,此时,可能有警告
不抛表明函数绝对不抛异常(静态检查,),表明,此为异常安全函数.允许优化异常帧,

纯函数:
不读非常全局数据.不写全局数据.不修改参数可访问的数据.
可能修改自己的参数或自己栈变量.
函数结果,仅依赖参数的值.
优点:可消除公共子表达式.
可记忆(缓存),可重排,可制成表格,编译器可安排,可自动并行,

允许为对象创建引用计数模板包装器
复制值对象:按位,op复制(增加引用计数).
隐式转换器op隐式转换到``op隐式从转换,调整调用传统
数组可扩展,切片不能.
接口类似c++的概念.构/类从接口继承,则必须都实现.
但类/构并不能转换成接口.

不变:
模块性,并行化.
静态参数,类似常数模板参数.简化模板写法.
参数从左至右求值.不折腾.
重载时,优先静态参数(允许常折叠优化,).

枚举值,使用时,要加上枚举的名字.即全名.
return 存储类.可优化一次.主要是返回参数引用(dip)
模板函数不能为虚.
别名本,允许把成员字段,导入结构的名字空间.

终 开关(…):
两种用途:
确保对枚中的每一个值都有一个,帮助是否有漏写什么的.(X&3),都是值.
在加枚成员时,很有帮助.
默认标签,则自动有终的意思.即每个值都考虑了.

编译时反射.
运行时反射在库中通过编译时反射实现.
自动接口,解序/编序,并行层次

ast宏.操纵抽象树.文本宏
静每一.

函数式编程:易于理解,健壮性代码
合约编程:有些只能在运行时检查,合约用来断定数据是正确的.不是用来验证用户输入的.高级优化器用来生成更好代码.
工业质量.(不妥协性能,可扩展,管理工具)
良好性能:
直接映射至内存,(基本类型是典型的本地机器类型,simd)
用现代优化后端(dmd,gdc,ldc)
可扩展:
单独编译,强封装(无全局名字空间,反劫持,伏地魔),高速编译
管理工具(文档生成,单元测试,代码涵盖)

posted @ 2019-10-03 23:04  zjh6  阅读(15)  评论(0)    收藏  举报  来源