文档章节

d语言之模块重载

轻舞凋零
 轻舞凋零
发布于 2016/02/01 14:48
字数 140
阅读 30
收藏 0

d语言之模块重载

参考自d程序设计语言---我的博客http://my.oschina.net/u/218155/blog?fromerr=SwOkb7Sw fllow me

import std.conv;
import std.stdio;
//import std.Exception;

struct CheckedInt(N)if(isIntegral!N){
	private N value;
	this(N value){
		this.value = value;
	}
	ref CheckedInt opUnary(string op)()if(op == "++"){
		assert(value != value.max);
		++value;
		return this;
	}
	ref CheckedInt opUnary(string op)()if(op == "--"){
		assert(value != value.min);
		--value;
		return this;
	}
	CheckedInt opUnary(string op)()
		if(op =="+" || op == "-" || op == "~")
	{
		return CheckedInt(mixin(op~"value"));
	}
	//opt cast
	//string opCast(T)()if(is(T == string)){}
	//opt +-*/
	//CheckedInt opBinary(string op)(CheckedInt){}
	@property void showValue(){
		writeln(value);
	}

}
void main() {
	CheckedInt!int ct = CheckedInt!int(11);
	ct++;
	--ct;
	-ct;
	ct.showValue;
	writeln("t");




}


© 著作权归作者所有

共有 人打赏支持
轻舞凋零
粉丝 13
博文 100
码字总数 16794
作品 0
昌平
程序员
私信 提问
10月编程语言排行榜:不成大器的D语言

【51CTO独家特稿】今天Tiobe发布了2011年10月编程语言排行榜,本期排行榜我们看到Lua这门语言蹿升很快,而传统的竞争对手C#和PHP正在交替自己的位置。Assembly(汇编语言)正在大踏步的向后退...

zjf_sdnu
2011/10/17
0
0
Dlang 2.080.0 版本发布,系统级编程语言

近期D语言在版本发布迭代速度上有明显提升,此次D语言 2.080.0 版本更新特性如下: 增强编译时特性可用性 提供更好的 Objective-C 兼容 废弃一些早期版本不推荐使用的类和方法 对标准库的多方...

冰力
05/13
0
0
系统级编程语言性能大PK的笑话-Go语言

喜欢和不喜欢Go语言的都喜欢拿性能PK说事. 流传比较广的是benchmarksgame的PK数据: http://benchmarksgame.alioth.debian.org/u64q/go.php 在 benchmarksgame测试中, Go语言的性能已经由之前...

chai2010
2013/08/06
0
7
LDC 1.9.0 发布,基于 LLVM 架构的 D 语言编译器

Kinke 代表LDC团队,很高兴地宣布LDC 1.9,这个版本的重点是: 编译器兼容 dlang 2.079.1 (引入了新的 -i 参数来支持最小D语言运行时); 支持 llvm 6,用于所有预构建包(Win32除外); 可...

冰力
05/13
0
3
Hunt framework 1.0.0 正式版,三年来最大更新

Hunt framework 通过三年的不断完善,HuntLabs 所有成员很高兴的对外宣布 hunt 1.0.0 正式版,经过了 0.4.x / 0.5.x / 0.7.x / 0.9.x / 0.10.x 的一些重要分支,我们改进了很多不方便使用的地...

冰力
06/04
0
23

没有更多内容

加载失败,请刷新页面

加载更多

Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
12分钟前
0
0
可重入锁和非可重入锁

广义上的可重入锁指的是可重复可递归调用的锁,在外层使用锁之后,在内层仍然可以使用,并且不发生死锁(前提得是同一个对象或者class),这样的锁就叫做可重入锁。 可重入锁: ReentrantLoc...

狼王黄师傅
17分钟前
1
0
2018-11-20学习笔记

1. python数据类型: 给变量赋值什么样的值,变量就是什么样的类型 给变量赋值整数,变量就是整数类型 给变量赋值字符串,变量就是字符串类型 123 和“123”一样吗? 在python中 单引号 与双...

laoba
31分钟前
0
0
使用 React 和 Vue 创建相同的应用,他们有什么差异?

在工作中应用 Vue 之后,我对它有了相当深刻的理解。 不过,俗话说「外国的月亮比较圆」,我好奇「外国的」 React 是怎么样的。 我阅读了 React 文档并观看了一些教程视频,虽然它们很棒,但...

阿K1225
40分钟前
2
0
2天闭门培训|以太坊智能合约从入门到实战(北京)

2天培训 16个课时 探寻技术原理,精通以太坊智能合约开发 以太坊智能合约是现在应用的最广泛的区块链应用开发方式,HiBlock区块链社区针对以太坊智能合约的学习特别推出2天闭门研修班,通过2...

HiBlock
58分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部