安德烈·亞歷山德雷斯庫 (英語:Andrei Alexandrescu ,1969年— ),罗马尼亚裔美国人 ,C++ 和D语言 专家。
从D语言 2.0版本之后,他加入D语言核心开发团队,是继沃爾特·布萊特 之后的最主要设计师。他撰写了《D程序设计语言》一书,全面系统地介绍了D语言的设计和实现。
他因通过模版元程序设计实现基于政策设计的开创性成果而名闻遐迩。他撰写了《现代C++设计》一书阐述了他的理念,首次在他编写的程序库Loki 里加以实现。他在MOJO库里实现了move constructors 。[ 4]
他目前在Facebook 公司就职,担任研究科学家。
他于2004年8月入美国国籍 。[ 5]
教育和职业
亞歷山德雷斯庫1994年7月毕业于布加勒斯理工大学,获得电子工程学士学位。[ 6] [ 7]
1998年9月他在C/C++ Users Journal 上首次发表文章。 从1999年4月至2000年2月在Netzip公司担任程序经理。Netzip公司被RealNetworks公司后,他继续任职到2001年9月。[ 6]
亞歷山德雷斯庫先后于2003年和2009年获得美国华盛顿大学计算机科学硕士和博士学位 。[ 8] [ 9] [ 10]
近年来,他一直协助沃爾特·布萊特 开发D语言 ,于2010年5月出版了《D语言程序设计》。
亞歷山德雷斯庫、Herb Sutter 和斯科特·邁爾斯 三人主持名为 C++ and Beyond 的小型年度技术讨论会议。
著作
书籍
贡献
Expected 作为C++模版类纳入Boost 库[ 11] 。Alexandrescu 建议 [ 12] 使用 Expected<T> 作为一个类用于返回值用来表示要么包含一个类型T或者例外防止其被创建。这是对于要么返回代码要么显示调用例外的一项改进。Expected<T>有如下好处:
关联计算目标和错误关联
自然构成多种例外
在错误处理和抛出例外两种风格中切换
Teleportation possible across thread boundaries, across nothrow subsystem boundaries and across time (现在保存, 之后抛出)
收集、集合和组合例外
例子
他建议采用
Expected<int> parseInt(const string&); // Returns an expected int: either an int or an exception
来代替如下的函数声明。
int parseInt(const string&); // Returns 0 on error and sets errno
或者
int parseInt(const string&); // Throws invalid_input or overflow
参考文献
外部链接