WG21 (ISO C++ 委员会) 成员
以下是 ISO C++ 委员会的一些个人成员。
Bryce Adelstein Lelbach (NVIDIA)
您为 C++ 做过什么?
我认为我为 C++ 所做的最好的事情不是技术成就,而是我帮助和指导的那些优秀且有才华的人。我特别为 C++Now 学生志愿者计划感到自豪,它一直是 C++ 委员会非常有效的招聘渠道!
在 C++ 委员会中,我个人参与了并发原语、并行算法、future、executors、senders/receivers、多维数组和模块的工作。我还偶尔为 Boost C++ 库做出了贡献。
您的其他主要成就包括哪些?
我花了十多年时间开发编程语言和软件库。我是 NVIDIA 的 HPC 编程模型架构师,负责领导编程语言标准化工作,并推动 NVIDIA HPC 编译器和库的技术路线图。
我是 HPX 并行运行时系统的初始开发人员之一,我还帮助启动了 LLVMLinux 计划。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
bool is_word_beginning(char l, char r) { return std::isspace(l) && !std::isspace(r); }
std::size_t word_count(std::string_view s) {
if (s.empty()) return 0;
return std::transform_reduce(std::execution::par_unseq,
s.begin(), s.end() - 1, s.begin() + 1,
std::size_t(!std::isspace(s.front()) ? 1 : 0),
std::plus(),
is_word_beginning
);
}
示例用法
int main() {
std::string_view frost = "Whose woods these are I think I know.\n"
"His house is in the village though; \n"
"He will not see me stopping here \n"
"To watch his woods fill up with snow.\n";
return word_count(frost);
}
Matt Austern (Google, SG8 Concepts 主席)
您为 C++ 做过什么?
我自 1996 年在 SGI 工作以来就参与了标准化项目。我是 SGI STL 的实现者之一,并编写了大部分文档。我是《泛型编程与 STL》一书以及多篇关于 C++ 的杂志文章的作者。
我曾担任标准委员会库工作组的主席,也是 C++ 库扩展技术报告(“TR1”)的项目编辑。我现在是 Google 的委员会代表之一,并担任标准委员会关于概念研究组的主席。
您的其他主要成就包括哪些?
我在 Google 的主要工作是编写分布式数据处理框架,主要使用 C++。
我是 Pregel 的作者之一,Pregel 是一个用于大规模图计算的框架;我还参与了 MapReduce 和其他工具的工作。
在加入 Google 之前,我是 Apple 编译器团队的成员,在那里我参与了 GCC 的工作。
工作经历
Google (2005 至今)
Apple (2001-2005)
AT&T 研究院 (2000-2001)
SGI (1995-2000)
教育
麻省理工学院物理与数学学士
加州大学伯克利分校物理学博士
个人信息
我在匹兹堡长大,但现在已经在加州生活了半辈子。我现在和妻子女儿住在帕洛阿尔托。
网址:lafstern.org
Aaron Ballman (Intel, SG22 C/C++ Liaison 主席, SG12 Undefined/unspecified behavior 助理主席)
您为 C++ 做过什么?
我是 SG22 C 和 C++ 兼容性研究组主席,SG12 未定义行为研究组助理主席,以及核心工作组的成员。我从事标准工作的主要动力是改进编程语言,使其更容易用 C 和 C++ 编写安全、正确的代码。作为 WG14 (C) 委员会的成员,我心中也有一席之地,致力于保护 C 和 C++ 的交集,尽可能减少语言之间的不兼容性。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
// What do you mean by "C++ syntax is crazy?"
void f() {
return [ ] [ [ ] ] ( ) [ [ ] ] { [ [ , , , ] ] ; } ( ) ; // Seems obvious, no?
}
工作经历
英特尔高级编译器工程师,主要负责维护 Clang 编译器前端。
个人信息
休闲游戏玩家(电脑和桌面游戏),康复中的轮滑德比裁判,园艺帮手,丈夫,以及两只狗、三只猫、无数只鸡和一匹马的照护者。
网址:Twitter
JF Bastien (EWG Evolution 工作组主席, SG17 Evolution 工作组名誉主席)
您为 C++ 做过什么?
我目前主持语言演进工作组(EWG)。
我最初对 C++ 的贡献与并发和并行有关,最近则致力于修复令人惊讶的事情,例如字节的大小、有符号整数的补码表示、`volatile` 的含义以及无限循环是否是未定义行为。我努力将通常不参加委员会会议的领域专家的观点带到委员会,例如关于安全性、安全、音频、图形。我也是双关纸张名称的常备资源。
最喜欢的 C++ 短代码片段是什么?
int main() {
*(char*)0 = 0;
return 0;
}
我曾为此做过一次完整的演讲!
网址:主页,Twitter,Bsky,Mastodon
Dean Michael Berris (Google)
您为 C++ 做过什么?
我是 *cpp-netlib* 库的主要开发人员和最初的维护者,我在 *cplusplus-soup.com* 上撰写文章,并在 Google 参与一些内部 C++ 库的工作。我向 Evolution 工作组提交了关于富指针和反射的提案。我还为 Boost C++ 库项目做出了贡献。
您的其他主要成就包括哪些?
我使用 C++ 重写了一个社交网络的后端服务,以适应每秒数千个请求。由此产生的产品是 memcache++ 开源 C++ 库。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
std::cout << "Hello, world!" << std::endl;
这一行代码让我进入了 C++ 编程的世界,它非常有力的展示了我是如何让计算机完成工作的。
工作经历
Google 软件工程师
Friendster 软件工程师
教育
菲律宾大学洛斯巴诺斯分校计算机科学学士。
个人信息
C++ 狂热者,丈夫,父亲,谷歌人——按此顺序。
网址:plus.google.com
Hans Boehm (Google, SG5 Transactional Memory 主席, SG1 Concurrency 名誉主席)
您为 C++ 做过什么?
Hans Boehm 领导了为 C++11 提供一个清晰的线程“内存模型”的工作,即 C++11 中共享变量的含义。
并发研究组(又称 SG1)前十年主席。
您的其他主要成就包括哪些?
著名保守垃圾回收库的作者。
ACM 杰出科学家和前 ACM SIGPLAN 主席。
工作经历
软件工程师,Google
研究经理,惠普实验室
教育
博士,计算机科学,康奈尔大学
学士,数学和计算机科学,华盛顿大学
网址:主页
Chandler Carruth (Google)
您为 C++ 做过什么?
我是 LLVM 和 Clang 编译器项目的主要开发人员之一,并帮助推动了 Clang 对 C++ 的支持。我领导了基于 Clang 构建的 C++ 工具和自动化重构系统的设计,这些系统现在是 Clang 项目的一部分。
我在 C++ 标准委员会中代表 Clang 和 Google。我提出了一些小的 C++ 库提案,希望它们能最终标准化。
在 Google 内部,我领导了将基于 Clang 的自动化重构工具扩展到我们整个代码库(超过 1 亿行 C++ 代码)的工作。我们可以在 20 分钟内分析并应用重构到整个代码库。我也是 C++ 的积极倡导者之一,帮助塑造我们的一些核心库,并推动 Google 代码库中 C++ 编写风格和惯例的进步。
您的其他主要成就包括哪些?
近年来,我推动了几项 LLVM 优化,重点是显著提高 LLVM+Clang 编译器优化现代 C++ 代码的效率。
在过去,我曾帮助构建 Google 的分布式构建系统,并构建了我们开发人员处理代码库的几个关键基础设施。在加入 Google 之前,我创办了一家注定失败的游戏技术公司。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
// Not C++ yet, but am committed to being able to do in a future version of C++ efficiently, and with no extra copies.
vector<tuple<Machine, Job>> pickMachines(vector<Machine>&& machines,
vector<Job>&& jobs) {
return zip(reverse(sort(machines, by([](const Machine& m) { return m.load(); }))),
sort(jobs, by([](const Job& j) { return j.cost(); })));
}
工作经历
我领导 Google 的 Clang 和 LLVM 团队。
教育
我获得了维克森林大学计算机科学学士和硕士学位。
个人信息
白天我经常喝樱桃可乐零度,晚上则喜欢品鉴单一麦芽威士忌。
Stephen D. Clamage (Oracle, PL22.16 名誉主席)
您为 C++ 做过什么?
C++ 委员会的创始成员。
自 1996 年以来担任美国 C++ 委员会主席。
在 1990 年代每月发表“C++ Oracle”专栏。
帮助创建了 comp.std.c++
Usenet 新闻组;我是创始版主。
您的其他主要成就包括哪些?
共同开发了第一个不基于 Cfront 的商用 C++ 编译器(1988 年)。该编译器被用于各种 C++ 编译器,并构成了当前 Sun/Oracle C++ 编译器的基础。
自 1998 年起担任 Sun Microsystems(现为 Oracle 公司)的 C++ 技术负责人
工作经历
TauMetric Corp 联合创始人
Sun Microsystems,后被收购于……
甲骨文公司 (Oracle Corporation)
教育
加州理工学院 (CalTech) 电子工程学士
南加州大学计算机科学硕士
个人信息
两个孩子,四个孙子
舞厅舞者
网址:Oracle Solaris Studio
Ben Craig (NI, Library Evolution 工作组助理主席)
您为 C++ 做过什么?
目前正在重新定义独立实现,使其对内核、微控制器和 GPU 开发人员更有用。
我还对各种错误处理策略进行了大量基准测试。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
我喜欢将这样的代码
void use_two_resources(int file_descriptor, int db_descriptor);
替换为这样的代码
struct FileDescriptor {int val;};
struct DBDescriptor {int val;};
void use_two_resources(FileDescriptor f, DBDescriptor db);
通过这种方法,您可以通过极小的代码投入获得大量的类型安全和表达能力。
工作经历
NI 首席软件工程师
教育
密西西比州立大学计算机科学硕士
个人信息
我在 #include Discord 服务器 (https://www.includecpp.org/) 上很活跃。
网址:电子邮件
Guy Davidson (Creative Assembly)
您为 C++ 做过什么?
共同创立了 #include 多样性小组
工作经历
Creative Assembly 首席编码经理
教育
英国萨塞克斯大学数学与计算机科学学士学位
个人信息
喜欢弹钢琴、在布莱顿节日合唱团唱歌以及写作。
Hana Dusíková (捷克共和国国家主席, EWG 助理主席, SG7 编译时编程主席)
您为 C++ 做过什么?
捷克共和国 NB 驻 WG21 委员会代表团团长,SG7 “编译时编程”或“反射”研究组主席,EWG “语言演进”工作组助理主席。
您的其他主要成就包括哪些?
我设计了 CTRE 库(编译时正则表达式),它极大地推动了将字符串字面量作为模板参数的允许。并在雇主的帮助下,我于 2020 年 2 月初组织了布拉格 WG21 会议。
最喜欢的 C++ 短代码片段(正好 10 行)是什么?
constexpr auto range_of_pairs(std::string_view in) noexcept {
return in | ctre::split<"\r?\n"> | ctre::match<"([0-9]+),([0-9]+)"> | std::ranges::views::transform([](const auto & piece) {
auto [_, x, y] = piece;
return std::pair{x.to_number(), y.to_number()};
});
}
void print_pairs(std::string_view in) noexcept {
for (auto [x,y]: range_of_pairs(in)) fmt::print("{}.{}\n", x, y);
}
工作经历
由丰田编织。
研究科学家。主要工作是让事情变得更简单、更快。
个人信息
我养了一只意大利灰狗,喜欢风景摄影。
网址:LinkedIn, GitHub, Twitter
Stefanus Du Toit (WG21 项目编辑名誉主席)
您为 C++ 做过什么?
我是 C++14 的项目编辑。在这个职位上,我的职责是确保标准的整体一致性和清晰度。我在这个角色上的第一个主要贡献是在 github 上公开了标准草案源代码,以便于为标准提供编辑贡献并简化论文的编写。
我还于 2009 年至 2011 年担任 C++ 委员会秘书。
您的其他主要成就包括哪些?
2004 年,我与人共同创立了 RapidMind,这是滑铁卢大学的一个衍生公司。RapidMind 是第一家将 GPGPU 技术商业化的公司,它提供了一个高级平台,可以用 C++ 编写并行程序,这些程序可以映射到多核 CPU、GPU 和 IBM Cell 宽带引擎等多种处理器上。RapidMind 于 2009 年被 Intel 收购。
工作经历
软件开发经理,英特尔滑铁卢。
曾任 RapidMind Inc. 首席架构师。
教育
滑铁卢大学计算机科学学士,2004年。
个人信息
18 岁时,我已经在四大洲居住过。我出生在南非,在那里度过了六年,然后随家人搬到德国。1998 年,我在东南亚文莱居住了不到三年,并在那里完成了高中学业。然后我在 16 岁时搬到加拿大,在滑铁卢大学学习计算机科学。在加拿大,我很快就扎下了根,现在与两个可爱的孩子幸福地结婚,仍然住在基奇纳-滑铁卢地区。不工作或与家人在一起时,我喜欢滑雪、开快车和看好电影。
Glen Fernandes
您为 C++ 做过什么?
我是 Boost Align 库的作者,Boost 智能指针和核心库的主要贡献者,我还为其他几个 Boost 库(包括 Mp11、Type Traits、IO、Functional、Circular Buffer、Dynamic Bitset、Multi Array 等)做出了贡献。
我是 ISO C++ 标准的贡献者,至少有四项功能被 C++20 新标准采纳(P0674R1、P0653R2、P1020R1、P1357R1)。
工作经历
英特尔
微软
教育
悉尼大学
个人信息
我与妻子 Caroline 和女儿 Aeryn 住在美国,毕业于澳大利亚悉尼大学,在那之前,我住在新西兰。
网址:主页
Marco Foco (NVIDIA, 意大利国家机构主席)
您为 C++ 做过什么?
首先(自 2012 年起)在意大利共同组织 C++ 会议,然后是意大利 C++ 大会(自 2014 年起)。
为 SG14 的创建做出了贡献,后来又为 SG19 的创建做出了贡献。
组织了意大利代表团参加 2020 年的会议。
您的其他主要成就包括哪些?
自 2017 年起,我开始研究可微编程,并于 2019 年在 SG19 内部开始撰写一篇论文,旨在在 C++ 中探讨语言层面可微性的想法(P2072)。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
这是一个我在 C++11 课程中使用的简短片段,旨在让学生们放心,新关键字 'final' 和 'override' 的引入不会对遗留代码造成问题。
namespace override {
class override {};
class override_final {
::override::override override;
public:
virtual ::override::override & final() { return override; }
};
}
namespace final {
class final final : public override::override {};
class final_override final : public override::override_final {
::final::final override;
public:
::final::final & final() override final { return override; }
};
}
工作经历
目前担任 NVIDIA 高级经理,负责 Omniverse 项目中的 AI/CV 应用。
过去,我曾担任顾问(包括自由职业和为我创立的一家小型公司),为安全、网络和汽车行业的计算机视觉和信号处理开发和维护 C++ 库。
教育
意大利米兰理工大学软件工程学士+硕士学位 (2003)。
网址:主页, LinkedIn
J. Daniel Garcia (西班牙)
您为 C++ 做过什么?
自 2008 年起,我作为西班牙代表团团长,代表西班牙参加 ISO C++ 标准委员会。我是西班牙 C++ 标准工作组 (SC22/GT21) 以及编程语言分委会 (SC22) 的创始主席(并仍担任主席)。尽管我是在 C++11 标准化的最后一轮期间后期加入的,但我有机会在向标准库的许多章节添加 noexcept 规范时享受了一些乐趣。我尽力为 C++ 添加合同支持。
自 1989 年开始用 C++ 编程以来,我一直是一位 C++ 推广者。我在学术界和工业界都做过很多演讲和教程。我在西班牙创建了一个 C++ 活动 usingstdcpp.org。
您的其他主要成就包括哪些?
我自 1989 年以来主要使用 C++ 进行软件开发。相关系统包括采矿设施的安全系统、双向公路的道路控制系统、土木工程管理系统以及计算机断层扫描机的组件。2001 年,我加入了卡洛斯三世大学,在那里我使用 C++ 进行研究,用 C++ 构建了几个分布式系统模拟器,并将其用于航空航天、能源和金融领域的原型开发。我还撰写了一个 C++ 并行模式库 (GrPPI)。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
他们中的许多人。
#include <iostream>
auto add(auto x, auto ... y) {
return x + (y + ...);
}
int main() {
std::cout << add(1,2,3,4) << "\n";
}
工作经历
自 2002 年起,我在马德里卡洛斯三世大学计算机科学与工程系工作,2006 年成为副教授,2020 年成为正教授。
1989 年至 2001 年,我担任软件工程师和系统工程师,参与了不同行业的公司项目:AITEMIN(采矿)、FCC 和 TOOL(均为土木工程)、西门子(医疗设备)、DMR Consulting(IT 咨询)、Telefonica 和英国电信(电信)。
教育
马德里卡洛斯三世大学计算机科学博士。
马德里理工大学计算机科学学士(六年制)。
个人信息
在美丽的马贝拉市(西班牙最南端)长大。自 1987 年起居住在马德里。幸福地结婚,有两个孩子。
网址:主页
Peter Gottschling (德国)
您为 C++ 做过什么?
德国驻 ISO C++ 委员会代表团团长。
在德国标准化协会(DIN,如同纸张尺寸 DIN A4、DIN A3 等),我担任编程语言小组的副主席。我在德累斯顿成立了 C++ 用户组。
我写了几份演进和库提案,希望能在未来的标准中看到它们。
我在不同大学教授 C++ 多年:德累斯顿工业大学、印第安纳大学和柏林工业大学。
您的其他主要成就包括哪些?
我是 Matrix Template Library version 4 (MTL4) 的作者,这是一个广泛使用的线性代数通用库。我还是 Parallel Boost Graph Library、ANGEL:一个基于图的自动微分转换库,以及 ParGraph:另一个并行图库的作者或合著者。
由于将 MTL4 移植到 CUDA,我的公司成为德累斯顿 CUDA 卓越中心的一员。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
template <typename T> inline T minimum(const T& t) { return t; }
template <typename T, typename ...P>
inline auto minimum(const T& t, const P& ...p)
{
using res_type= std::common_type_t<T, P...>;
return std::min(res_type(t), res_type(minimum(p...)));
}
这个小小的函数模板允许我们计算任意数量不同类型值的最小值。这不是高深科学,但却是一个可爱的例子,展示了 C++11 如何比(大多数?)其他语言和 C++03 更强大。欢迎您尝试一下。与 C++11 不同,在 C++14 中,我们不再需要冗余声明结果类型和更繁琐的 `common_type` 特性,我们 благодаря `auto` 返回类型推导和 C++14 中的 `common_type_t` 替换了它们。”
工作经历
SimuNova 创始人兼总经理,Stillwater Supercomputing 软件研究总监。
教育
德累斯顿工业大学计算机科学博士 (Dr. rer. nat.)
TUD 计算机科学硕士
TUD 数学预备文凭
个人信息
我在莱比锡(当时的东德)出生长大,计划今年回去。目前我住在德累斯顿,曾多年在柏林和印第安纳州布卢明顿居住。我已婚,有四个孩子。
网址:Simunova
Bernhard Manfred Gruber (CERN)
您为 C++ 做过什么?
我是 WG21 的一个大部分时间保持沉默的成员,但我密切关注委员会,以了解 C++ 的演进。我尝试通过代码审查和培训,以及在 CERN 和合作科学机构教导学生的过程中,将这些知识传达给我的同行。这让我理解了非软件工程师或科学家所面临的困境,他们经常被 C++ 的复杂性所困扰。
凭借在科学和高性能计算方面的背景,我将精力集中在与数据布局优化、并发、SIMD、元编程和反射相关的提案上。在可能的情况下,我会修补并提供对提案实现的反馈,例如反射、std::mdspan 或 std::simd。只要遇到问题,我都会为开源库贡献补丁。
您的其他主要成就包括哪些?
我教授了几百名年轻科学家关于现代 C++ 的知识。
我为 clang-tidy 贡献了 modernize-use-trailing-return-type 检查。对那些不喜欢它的人说声抱歉 :D
世界上最大的粒子加速器,CERN 的 LHC,运行着我的几个程序。
作为我博士研究的一部分,我正在开发一个数据布局抽象库,它可以在 CPU 和 GPU 上运行,包括流行的数据布局,如数组结构 (SoA),以及即时混合精度、位打包、内存访问自定义等等。改进设计引出了关于反射、智能和代理引用、`operator.`、推导 `this` 和 ADL 的新问题(敬请期待!)。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
我有一个关于数据布局独立算法的,但我们首先需要推出反射 :)
工作经历
目前:CERN 博士生,与亥姆霍兹德累斯顿-罗森多夫中心和德累斯顿工业大学合作。
之前:CERN 研究员和 RISC Software GmbH 软件工程师
教育
奥地利应用科学大学软件工程硕士
个人信息
幸福地结婚,两只猫,热爱湖泊、森林和山脉
网址:Github, LinkedIn
Michael Hava (奥地利国家机构主席)
您为 C++ 做过什么?
奥地利 C++ 工作组的创始成员和代表团团长。
促进现代 C++ 在各个工程领域的应用。澄清关于 C++ 的(过时的)误解,并展示现代 C++ 如何简单、安全和高效。
推动现代 C++ 在教育中的使用。
您的其他主要成就包括哪些?
自其成立以来,我一直担任 VML 的技术负责人,引导其从研究项目走向工业应用。此外,我还为多个(内部)项目提供了并行化、优化、API 设计和 ABI 稳定性机制方面的咨询。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
仅仅
}
一些“现代”语言放弃了 C++ 默认的确定性清理设计,后来不得不添加显式语法进行自动清理,这一事实仍然令我惊讶。
工作经历
高级软件架构师 – RISC Software GmbH (2011 至今)
兼职讲师 – 奥地利上奥地利应用科学大学 (2016 至今)。
教育
奥地利应用科学大学工程学硕士。
个人信息
狂热的游戏玩家(PC 和复杂桌面游戏),休闲地编程 C++。
网址:GitHub, LinkedIn
Howard Hinnant (库工作组名誉主席)
您为 C++ 做过什么?
我为 C++11 引入移动语义起到了关键作用。这包括右值引用以及将移动语义回溯到现有 C++03 库中,尤其是容器和算法。作为这项工作的一部分,我引入了 `unique_ptr` 和 `move_iterator`。
我领导了 `thread`、`mutex`、`unique_lock` 和 `condition_variable` 标准化团队。我发明了 `condition_variable_any`。
我领导了 `chrono` 团队,负责将常见的持续时间与模板化的持续时间框架统一起来。
我于 2005-2010 年担任图书馆工作组主席。
您的其他主要成就包括哪些?
我编写了两个完整的标准库实现,其中一个实现了 C++11 并且是开源的 (http://libcxx.llvm.org)。
我还与 Marshall Clow 共同编写了一个独立的 Itanium ABI 实现 (http://libcxxabi.llvm.org)。
我希望标准化 `chrono` 持续时间的共享(读/写)锁和 I/O。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
std::shared_mutex mut; // proposed
std::condition_variable_any cv;
...
void get_data() {
std::shared_lock<shared_mutex> sl(mut); // proposed
// mut is locked here
// ...
while (not_ready_to_proceed()) cv.wait(sl); // mut unlocked while waiting
// mut is locked here
// ...
} // mut.unlock_shared()
上述代码以读取模式锁定了一个读/写互斥量,然后使用该读/写互斥量等待条件变量。尝试在 POSIX 中这样做!然而这一切都建立在 POSIX 互斥量和条件变量之上,并且也具有异常安全性。
工作经历
目前担任 Ripple Labs 高级软件工程师。
Apple、Freescale、Motorola 和 Metrowerks 的高级软件工程师(并非同时)。
陆军文职研究员,与 Nasa Langley 和 Nasa Ames 共同工作。
研究旋翼机动力学。
教育
斯坦福大学航空航天硕士。
德克萨斯 A&M 大学航空航天工程学士。
个人信息
已婚,育有四个孩子,居住在纽约州伊萨卡。在德克萨斯州达拉斯长大,曾居住在加利福尼亚州和弗吉尼亚州。爱好包括滑雪和编写 C++ 代码。
网址:主页
Tom Honermann (Intel, SG16 Unicode/text 主席)
您为 C++ 做过什么?
我于 2015 年开始参加 WG21 会议,并自 2018 年 SG16 Unicode 和文本处理研究组成立以来,一直担任其主席。我提出了 `char8_t` 类型。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
尽管今天并非标准 C++,但以下内容代表了 Unicode 改进的可能方向,旨在简化可移植性以及与程序环境的交互。这是对传统的“Hello, world”示例的现代化,它演示了可移植地访问程序的命令行和环境变量,并支持实现辅助的转码到所需编码(当然是 UTF-8!)。不再需要担心命令行或环境变量的编码是什么;只需以您喜欢的编码请求它们(`as_u8string()`),或者对于那些顽固地不与任何特定编码关联的文件名,将其作为 `std::filesystem::path` 对象(`as_path()`)。`std::print()`(具有隐式 `stdout` 目的地的 `std::format()`)提供了一个现代的类型安全格式化工具,它正确处理 UTF-8,并避免了 `std::cout` 带来的冗长和区域设置问题。
#include <program_arguments>
#include <environment>
#include <print>
int main() {
std::print(u8"
👋
🌍\n"); // Hello world in the universal language of emoji!
std::print(u8"Hello {}!\n", environment["USER"].as_u8string());
std::print(u8"This program is {}\n", program_arguments[0].as_path());
}
工作经历
Synopsys 软件工程师,负责 Coverity 静态分析器的 C、C++、Objective-C 和 CUDA 前端(2011 年至今)。
Oracle 软件工程师,负责 PeopleSoft PeopleTools 应用服务器(2000 年 - 2011 年)。
教育
威斯康星大学麦迪逊分校计算机科学学士(1998 年毕业)。
个人信息
我出生于明尼苏达州,曾居住在威斯康星州、加利福尼亚州、俄勒冈州,目前居住在弗吉尼亚州。我在加利福尼亚州生活时认识了我的妻子 Jen,于 2004 年结婚,我们共同抚养着两个可爱的儿子和一只名叫 Sadie 的可爱狗。在时间允许的情况下,我喜欢与家人一起去海滩,与妻子一起参观酿酒厂,与孩子们玩游戏和阅读,带着我的狗散步,阅读科幻小说,以及纯粹为了乐趣而编程。
网址:Twitter, GitHub, 博客
Erich Keane (NVIDIA, EWG Evolution 工作组助理主席, SG17 Evolution Incubator 助理主席)
您为 C++ 做过什么?
目前担任 Evolution 工作组的助理主席,以及 SG17-Evolution Incubator 的主席。
我是 C23 `_Bitint` 精确位宽类型功能的实现者和设计者,目前已在 Clang 中实现。还实现了 Clang 的函数多版本支持。我还是 Clang 社区模板和属性的代码所有者。
工作经历
自 2007 年大学毕业以来,我一直在英特尔工作,自 2016 年以来,我一直是一名编译器前端工程师,从事 Clang 和各种下游 Clang 编译器的工作。
教育
温特沃斯理工学院计算机科学学士(2007 年)
个人信息
我是一位丈夫,一位蹒跚学步的父亲,一位汽车爱好者,一位前私人飞行员,以及一位业余机械师。虽然主要在新泽西州长大,但我现在住在美丽、阳光明媚/多雨的俄勒冈州!
网址:GitHub
Kyle Kloepper (Riverbed, WG21 秘书名誉主席)
您为 C++ 做过什么?
曾担任 C++ 委员会秘书 (2011-2014) 并主持网络研究组 (SG4) (2012-2014)。
您的其他主要成就包括哪些?
我曾经完全用 C++ 编写了一个用户空间 Linux 网络驱动程序,用于线速 10 GbE 数据包处理(性能仅受系统内存带宽限制)。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
凭借丰富的语法和日益广泛的库,C++ 是精确指定接口的最佳语言,而无需牺牲效率或清晰度。只要小心,几乎任何接口都可以变得简单易用,同时将任何不当使用显示为编译时错误。
class Stopwatch {
using clock = std::chrono::high_resolution_clock;
bool is_running() const { return stop_time_ == clock::time_point::min(); }
clock::time_point end_time() const { return is_running() ? clock::now() : stop_time_; }
clock::time_point begin_time_{clock::now()}, stop_time_{clock::time_point::min()};
public:
void stop() { if (is_running()) stop_time_ = clock::now(); }
clock::duration elapsed() const { return end_time() - begin_time_; }
};
工作经历
在孟山都公司做了三个夏天蛋白质微生物学研究之后。我决定尝试编程,接下来的两个夏天在 NuParadigm 努力学习 C#。
大学毕业后,2007 年,我开始在 Riverbed 担任 QA 工程师,然后是 QA 负责人,最终转为技术人员,目前担任 CTO 办公室的技术总监。
教育
伊利诺伊大学香槟分校计算机工程学士
个人信息
我与美丽的妻子和超级可爱的女儿住在伊利诺伊州香槟。编程之余,我积极参与 Illini Life Christian Fellowship,喜欢航海,不喜欢过山车,系鞋带很快(如果你不知道我在说什么,可以谷歌一下)。
Dietmar Kühl (彭博社)
您为 C++ 做过什么?
我是 *comp.lang.c++.moderated* 的创始版主之一,并在新闻组和 Stackoverflow 的 C++ 标签上回答了许多关于 C++ 的问题。在 C++ 标准委员会中,我通常参加库工作组的会议。目前,我正在提议将十进制浮点数添加到 C++ 标准中。
您的其他主要成就包括哪些?
在彭博社,我实现了许多连接到主要欧洲和中东交易所的 Feed,并帮助改进了整体基础设施。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
template<typename T, size_t Size> T* begin(T (& array)[Size]) { return array; }
template<typename T, size_t Size> T* end (T (& array)[Size]) { return array + Size; }
这只是一种获取内置数组迭代器的可爱方式。
工作经历
我担任过各种职位,从事软件开发工作。工作内容包括实际编写软件以及帮助和指导他人。
教育
我获得了柏林工业大学数学文凭。
个人信息
我在[当时的]西柏林长大,并在那里开始学习。我在统一后的柏林完成了学业,尽管在我学习的最后几年里在康斯坦茨大学工作。之后,我作为承包商(受雇于各种小公司)为德国的几家银行和德国铁路(当时的 TLC)的软件公司工作。自 2006 年以来,我在伦敦的彭博社工作。
网址:dietmar-kuehl.de
Inbal Levi (以色列国家主席, SG9 Ranges 主席, SolarEdge)
您为 C++ 做过什么?
我是以色列 NB 的创始人兼主席,也是 CoreC++ 聚会和会议的共同组织者。
我也是 Ranges 研究组(SG9)的主席,库演进工作组的联合主席,并领导一个“执行器”审查组。
您的其他主要成就包括哪些?
我最近加入了 Standard C++ Foundation (isocpp.org, CppCon) 的董事会,希望能推动 C++ 的可用性和使用。
我还是“Hamakor”非政府组织(以色列最大的开源组织)的董事会成员。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
auto vec_sum = ranges::view::zip_with(plus<>{}, ranges::view::zip_with(plus<>{}, vec1, vec2), vec3); // vec_sum: [3,3,3]
这是一个展示 `zip_with` 用法的片段(基于 P1035R4: Input range adaptors 中的一个示例)。我在一次关于 C++20 元编程的演讲中展示了它。
这行代码(迄今为止尚未支持)在演讲结束时展示,与旨在编译时实现相同功能的复杂方法形成对比,强调了范围的优势。
工作经历
SolarEdge Technologies 高级软件工程师。
教育
耶路撒冷希伯来大学物理学学士。(HUJI)
个人信息
我住在以色列。我热爱科技、数学、科学、天文学和古典音乐。我还喜欢潜水、骑马,热爱飞机和飞行。
Lisa Lippincott (Tanium)
您为 C++ 做过什么?
直接来说,我致力于使 C++ 标准更加精确。有人告诉我,我擅长撰写标准语言——我想我第一个出现在标准中的短语是“原始对象的类型不是 const-qualified,并且,如果是类类型,不包含任何类型为 const-qualified 或引用类型的非静态数据成员。”
不那么直接地,我讲授 C++,并致力于解决如何经济地将具有 C 接口的库应用于高质量 C++ 代码的问题。
我的目标是改进 C++,使其程序能够例行地包含经过计算机验证的正确性证明。为此,我最近的大部分工作都在寻找与人们已经成功地对过程式编程进行推理的方式非常匹配的数学。
您的其他主要成就包括哪些?
我提供了初步设计并帮助创建了 Tanium 和 BigFix,这两个系统用于管理和保护大量的计算机。
说个轻松点的,我获得了 MacHack 梦寐以求的 A-trap 奖,因为我破解了 Macintosh Finder,为其添加了“撤消”功能。(是的,它是用 C++ 编写的。)
最喜欢的 C++ 短代码片段是什么?
以 `try {throw;}` 开头的函数以我的名字命名,但我更以此为荣
result_type function_name( parameter_list... )
{
claim proper( parameters... );
// No undefined behavior so far!
implementation;
claim proper( parameters... );
claim proper( result );
claim destructible( result ); // When result_type is an object type
// No undefined behavior so far!
}
那还不是 C++。它是我的函数基本接口候选的缩写版本;详情请参阅我的讲座“什么是基本接口?”
工作经历
我目前受雇于 Tanium;我过去的工作单位包括 BigFix 和 Software Ventures。
教育
我拥有芝加哥大学数学学士学位,以及加州大学伯克利分校的数学博士学位。我研究的是范畴论方法下的数理逻辑。我的论文“A Complete System of Proof for Diagrammatic Languages”考察了通过示例和反例的排列来传达意义的语言,其方式类似于交换图或乐高积木说明书。
William M. (Mike) Miller (Edison Design Group, Core 工作组主席)
您为 C++ 做过什么?
我是 X3J16 的创始成员,X3J16 是 ISO WG21 和 INCITS PL22.16 的前身委员会。我曾两次担任 J16 的副主席,两次担任核心语言工作组的主席,这也是我目前担任的职位。
我在 Edison Design Group 工作,负责 EDG C/C++ 编译器前端,该前端被世界各地的许多编译器、源代码分析器等用作基础。在 C++ 标准化的早期,我为《C++ Journal》撰写定期专栏,解释标准委员会的审议和决策。
工作经历
1974-77: SofTech
1977-80: Prime Computer (PL/I 和 Fortran 编译器、运行时和调试器)
1980-86: Stratus Computer (各种应用程序和系统软件)
1986-89: Software Development Technology (C++ IDE、库、培训)
1989-91: Glockenspiel (C++ 库、编译器、IDE、标准化)
1991-99: Software Emancipation Technology (C++ IDE, 标准化)
1999-2003: OnDisplay/Vignette (Web 开发工具)
2003-04: The MathWorks (C++ 开发基础设施)
2004 至今:Edison Design Group (C++ 编译器前端,标准化)
教育
麻省理工学院 (MIT) 计算机科学学士,1974 年
个人信息
在田纳西州孟菲斯(猫王故居格雷斯兰附近)出生长大,但现在已在马萨诸塞州居住了 40 多年。
Clark Nelson (英特尔;PL22.16 副主席名誉;Feature Test Study Group 主席名誉)
您为 C++ 做过什么?
自 2001 年以来,我一直担任 INCITS/ANSI C++ 技术委员会的副主席。从 1996 年到 2005 年,我(有时也)是国际代表和美国 WG21 代表团团长。我自 1991 年以来一直在委员会中。
我最大的技术贡献是重新制定了排序规则(以前是“序列点”,现在是“先于”),以及制定了并行程序的内存排序模型。
我还做了大量工作,以在适当的情况下保持 C++ 与 C 的同步:除了排序/内存模型领域,还有预处理器的描述和程序源代码中非 ASCII 字符的使用。我也是核心工作组的长期贡献者;有一段时间,我实际上是 C++ 语法的拥有者。
工作经历
我一直在英特尔从事各种 C/C++ 编译器前端的开发,并自 1987 年以来一直持续参与 C 和/或 C++ 的标准化工作。
教育
普渡大学计算机科学学士 (1983)
个人信息
我是一位幸福的丈夫,一位虔诚的基督徒,一位歌手,一位自由主义者,一位前私人飞行员,以及甜辣食物的忠实粉丝。我最喜欢的作家是罗伯特·海因莱因、C.S.刘易斯、J.R.R.托尔金和拉里·尼文。
Eric Niebler
您为 C++ 做过什么?
Eric 是 Boost.org 的长期贡献者,包括作为库作者、发布经理和 Boost 指导委员会成员。迄今为止,他最有影响力的代码可能是他(臭名昭著的)`BOOST_FOREACH` 宏,现在幸运的是它已被 C++11 的基于范围的 `for` 语句取代。请使用它。
他还是 ISO C++ 标准化委员会的成员,曾多次参加会议,并撰写了多篇委员会论文。Eric 关于 C++ 的文章曾发表在《C/C++ Users’ Journal》、MSDN Magazine、InformIT、《The C++ Source》和《C++Next》上;他还在世界各地的各种会议上就 C++ 发表过演讲,包括 SD West、C++ Connections、BoostCon/C++Now 和 OOPSLA。他曾共同主讲阿斯托利亚研讨会。
目前,Eric 正在推动 C++11 的边界,以改善 C++ 库开发人员及其用户的体验。他还提交了大量编译器错误。
您的其他主要成就包括哪些?
Eric 坚信低开销抽象的力量,并积极推广领域特定语言的设计、实现和使用。他致力于通过他的 Boost.Proto 库将这种设计方法引入主流,该库用于在 C++ 中构建领域特定语言。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
以下是我用于在 C++ 中构建领域特定语言的 Boost.Proto 库的一个简单用法。它构建一个表示表达式的树,然后将该树漂亮地打印到标准输出流。
#include <iostream>
#include <boost/proto/proto.hpp>
namespace proto = boost::proto;
int main()
{
// Create a Proto terminal that wraps a string.
// Let's be cheeky and call it "cout_".
proto::literal< char const * > cout_( "cout" );
// Create an expression tree and pass it to display_expr
// for pretty-printing.
proto::display_expr(
cout_ << "hello" << ' ' << "proto!"
);
}
表达式模板现在看起来没那么难了吧?
工作经历
独立顾问。
Intentional Software 高级软件开发员兼领域分析师。
BoostPro 顾问。
Microsoft (Visual C++) 库开发人员。
微软研究院 (自然语言处理) 软件开发人员。
微软 (Windows 2000) 测试软件开发人员。
教育
弗吉尼亚大学机械工程学士。
个人信息
Eric 在纽约长岛长大,就读于弗吉尼亚大学,在那里他获得了足够的计算机科学教育,得以在微软找到一份工作。在阅读了 Andrei Alexandrescu 的《Modern C++ Design》后,他决定将 C++ 作为职业,从此再也没有回头。
Eric 生命中另一本重要的书是 H.D. 梭罗的《瓦尔登湖》,它促使 Eric 质疑任何通常被认为是值得尊敬的事物。他最终辞去了日常工作,建立了一家独立咨询公司,这使他可以自由旅行,卖掉了自己的财产,并花了 2.5 年时间在路上旅行和工作。他现在正慢慢地回到西雅图的文明社会,在那里你通常可以在咖啡馆里安静地编程 C++。
网址:ericniebler.com
Roger Orr (英国)
您为 C++ 做过什么?
我目前主持英国标准协会 C++ 小组的会议,并作为英国代表团团长定期出席 WG21 会议。我使用 C++ 多年,也为 C++ 程序员提供过培训。我帮助运营 ACCU,包括杂志和年度会议。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
我最喜欢的 C++ 片段就是
}
C++ 关于对象块作用域的规则为确定性终结提供了钩子。当我使用其他编程语言时,我怀念这种自动且非侵入性的资源管理。
工作经历
合同制计算机程序员,主要为投资银行工作。
教育
牛津圣约翰学院数学系毕业。
个人信息
我参加了当地剧团 “The Dulwich Players” 的业余戏剧表演,并在当地教堂 All Saints Peckham 积极参与活动。
网址:主页
P.J. Plauger (Dinkumware, 召集人名誉主席)
您为 C++ 做过什么?
我参加了 1989 年 7 月 X3J16 的组织会议,但直到 1992 年 3 月才开始定期参加会议。如果我没记错的话,从那以后我只错过了一次会议。我的妻子 Tana 于 1995 年组织了 Dinkumware, Ltd.,以许可我开发的标准 C++ 库。我们最早的客户包括 Microsoft、IBM、Green Hills Software 和 IAR。我们仍然从马萨诸塞州康科德的家中运营 Dinkumware,但最近我们将重点转移到支持我们的长期客户,他们是主要的 C++ 编译器供应商。我们是第一个推出 C++98、C++03 和 C++11 完整库的公司。
您的其他主要成就包括哪些?
我从 1963 年开始以编程为生。我有幸在贝尔实验室工作,当时 C 和 UNIX 才刚刚起步。Brian Kernighan 和我一起写了我们最初的几本书,包括《编程风格的要素》和《软件工具》。此后我撰写了十几本书,涉及软件开发的各个方面,以及数百篇贸易杂志文章。我自 1980 年以来一直积极参与标准工作。偶尔我也会抽空写科幻小说。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
这是 Intro Sort 的内循环,使用整数算术来测试与对数复杂度的偏差
for (; _ISORT_MAX < (_Count = _Last - _First) && 0 < _Ideal; ) {
pair<_RanIt, _RanIt> _Mid = _Unguarded_partition(_First, _Last);
_Ideal /= 2, _Ideal += _Ideal / 2; // allow 1.5 log2(N) divisions
if (_Mid.first - _First < _Last - _Mid.second) {
_Sort(_First, _Mid.first, _Ideal);
_First = _Mid.second;
} else {
_Sort(_Mid.second, _Last, _Ideal);
_Last = _Mid.first;
}
}
工作经历
1995 至今:Dinkumware, Ltd. 总裁。
1988-1995:独立作家
1978-1988:Whitesmiths, Ltd. 总裁。
1975-1978:Yourdon Inc. 副总裁。
1969-1978:贝尔实验室技术人员。
教育
1965-1969:密歇根州立大学回旋加速器实验室核物理学博士。
1961-1965:普林斯顿大学物理学学士。
1957-1961:巴尔的摩理工学院高中毕业。
个人信息
我尚未因任何职业活动而被起诉。
网址:plauger.com
Antony Polukhin (俄罗斯国家机构主席)
您为 C++ 做过什么?
俄罗斯驻 ISO C++ 委员会代表团团长,俄罗斯 C++ 标准工作组主席。我对 C++ 标准最重要的贡献是 std::stacktrace。
我是 Boost 的长期贡献者;Boost 相关书籍的作者;PFR、Stacktrace、DLL 和其他库的维护者和作者。
您的其他主要成就包括哪些?
我们的俄罗斯 C++ 工作组主持 stdcpp.ru 平台,用于讨论提案,并帮助讲俄语的人向 ISO C++ 提出他们的想法。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
它是 PFR/magic_get 库中的一种类型
struct ubik {
template <class Type> operator Type&() const noexcept;
};
那个 `ubik` 可以转换成任何其他类型,并为在 C++17 中对聚合体进行反射提供了一个基本构建块
template <class T> auto structure_as_tuple(const T& value) {
if constexpr (std::is_constructible_v<T, ubik, ubik, ubik, ubik>) {
const auto& [a, b, c, d] = value;
return std::tie(a, b, c, d);
} else if constexpr (std::is_constructible_v<T, ubik, ubik, ubik>) {
const auto& [a, b, c] = value;
return std::tie(a, b, c);
} // else ....
}
工作经历
独立顾问和培训师 (2016 至今)
Yandex 团队负责人,高级软件开发人员 (2015 至今)
Boost C++ 库爱好者 (2011 至今)
各种初创公司 (2007-2015)
教育
莫斯科国立科技大学 (STANKIN) 硕士学位。
个人信息
与一位优秀的妻子 Irina 幸福地结婚,育有两个孩子。
网址:博客
Mateusz Pusz (EPAM Systems, 波兰)
您为 C++ 做过什么?
我努力成为 C++ 社区的活跃成员。您可以在世界各地最大的 C++ 活动中找到我提供讲座和研讨会。我于 2017 年加入 ISO C++ 委员会成为有投票权的成员,我也是波兰国家机构的创始成员之一。
您的其他主要成就包括哪些?
最近,我正在开发 mp-units 库,它未来可能会成为 C++ 标准库的一部分。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
constexpr Speed auto avg_speed(Length auto d, Time auto t) { return d / t; }
int main() {
constexpr Speed auto v1 = avg_speed(220. * km, 2 * h);
constexpr Speed auto v2 = avg_speed(140. * mi, 2 * h);
std::cout << v1 << '\n'; // 110 km/h
std::cout << v2 << '\n'; // 70 mi/h
std::cout << quantity_cast<si::metre_per_second>(v1) << '\n'; // 30.5556 m/s
std::cout << quantity_cast<si::metre_per_second>(v2) << '\n'; // 31.2928 m/s
}
工作经历
EPAM Systems 首席软件工程师兼 C++ 能力中心负责人,领导 C++ 编程语言标准化工作。
Train IT 创始人兼 C++ 培训师,为世界各地的客户提供高质量的现代 C++ 培训和咨询服务。
个人信息
闲暇时,我喜欢进行各种运动、旅行和摄影。
网址:LinkedIn, GitHub, Train IT
Nina Dinka Ranns (英国)
您为 C++ 做过什么?
我将自己视为委员会中的工蜂。我坐在核心小组中,帮助审查新提案的措辞,修复标准中的错误,并通常确保标准尽可能地一致、明确和无歧义。
您是如何加入 C++ 委员会的?
几年前我作为观察员参加了一次英国会议。我好奇地想看看委员会是如何运作的。我的计划是每天在每个工作组中旁听一天,以体验委员会的不同方面。那真是令人大开眼界的一周。
第三天我坐在核心组。他们很好地让我随意在手头的措辞中添加了一些逗号,从那一刻起,我就被迷住了。剩下的就是历史了。
工作经历
我曾为西门子、摩托罗拉、Datasift 和赛门铁克工作。
教育
萨格勒布 FER 计算机科学硕士。
个人信息
当我不享受 C++ 的乐趣时,我通常会喝咖啡(意式浓缩),阅读书籍(带有幽默感的惊悚小说),在健身房锻炼(举重),或者从事其他可以发挥我强迫症行为的活动。我对事物确实非常热情。当我投入时,你肯定会听到我表达我的意见。然而,大多数时候我喜欢安静地坐在背景中观察。
Bill Seymour (USPS)
您为 C++ 做过什么?
非静态数据成员初始化器(最初由 Mike Spertus 提出)
一个有理数库(目前在 numerics SG 中)
一个数据库访问库(目前处于“您对什么感兴趣?”阶段)
您的其他主要成就包括哪些?
早在 1970 年代,当我还在匹兹堡 Allegheny General Hospital 工作,是一名电工时,我设计并建造了一台带有早期微处理器 (TMS9900) 的心电图机。正是在那份工作中,我发现我非常擅长编码,并且基本上再也没有回头。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
我没有偏爱的孩子。
工作经历
在过去的 20 多年里,我一直担任美国邮政局的程序员/分析师。
教育
我是一名受过培训和早期职业生涯的电子技术员,没有任何重要的学术背景;与自学成才的人一样,我的知识更多地反映了我的兴趣而不是我的需求。8-)
个人信息
我热衷于乘坐火车,只要时间允许(并且不必去欧洲或夏威夷),我都会乘火车参加我们的会议。
网址:cstdbill.com
Peter Sommerlad (培训师兼顾问, 瑞士)
您为 C++ 做过什么?
我通常会处理标准化过程中缺失或被遗漏的小部分,并帮助其他人措辞,例如,我贡献了最初的标准库 UDL 运算符、apply、osyncstream、spanstream,甚至修改了 WG14 assert(...) 宏。我使用和教授 C++ 已经 30 多年了。我曾与我的学生和助手努力,在 Eclipse CDT 中为 C++ 获得体面的单元测试、重构和静态分析 IDE 支持,最终形成了 Cevelop。2019 年,我提前从 HSR Rapperswil 的教授职位上退休,此后继续致力于 C++ 的安全标准(AUTOSAR C++、MISRA C++、ISO/IEC JTC-1 SC22 WG23),以及偶尔为 WG21 甚至 WG14 做出贡献。
您的其他主要成就包括哪些?
我与人合著了《面向模式的软件架构卷 1:模式系统》和《安全模式》。我还是其他模式和书籍章节的作者,并通过 Hillside 支持模式社区。在我的研究中,我试图实现“递减式开发”:重构代码以将其大小减小到 10%,同时改进其设计。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
#include "cute.h"
#include "ide_listener.h"
#include "cute_runner.h"
void thisIsATest() {
ASSERTM("start writing tests", false);
}
//...
它继续着。为 C++ 编写单元测试在现代开发世界中至关重要
工作经历
C++ 和软件工程领域的独立培训师和顾问。专长:安全指南、C++ 单元测试(自 1997 年起)和重构。
曾任 FHO HSR Rapperswil 软件学院 (IFS Institute for Software) 教授兼所长,该学院是一所应用科学大学,我在那里教授 C++ 和模式,并三次(2010、2014 和 2018 年)主持 WG21 会议。
苏黎世 itopia 合伙人,领导其软件工程团队,主要创建和使用 C++ Web 应用程序框架,直到我患上白血病。
20 世纪 90 年代在西门子企业研究院担任研究员,从事 IDE、面向对象和软件架构模式研究。
教育
德国法兰克福歌德大学计算机科学硕士。
个人信息
我喜欢高山滑雪,开跑车,并且是白血病康复者(2000 年确诊,2001 年骨髓移植)。
网址:主页
Bryan St. Amour (Maystreet)
您为 C++ 做过什么?
我主要在幕后参与库小组 (LWG) 的工作,在那里我帮助审查标准库规范的措辞。我尽力确保标准库规范简单且明确。
您最喜欢的代码片段是什么?
我喜欢从 C++20 开始,我们可以写出如此美妙的声明,例如
template <auto>
auto otto(auto, auto) -> decltype(auto);
工作经历
我目前在 Maystreet(现为伦敦证券交易所集团的一部分)工作。此前我曾在 Tessonics Inc. 和温莎大学工作。
教育
我拥有温莎大学计算机科学学士和硕士学位。
个人信息
在 C++ 之外,我喜欢和妻子和两个儿子一起玩,阅读科幻小说,以及户外活动。
Bjarne Stroustrup (Morgan Stanley, C++ 创始人, Evolution Working Group 名誉主席)
您为 C++ 做过什么?
C++ 的设计者和原始实现者。大多数早期 C++ 库的设计者或贡献者。
C++ 标准委员会的创始成员,几乎参加了所有会议。
演进工作组主席。推动了 STL 的引入,移动语义,对概念、初始化列表、`constexpr`、`auto` 等做出了贡献。
您的其他主要成就包括哪些?
《The C++ Programming Language》、《The Design and Evolution of C++》、《The Annotated C++ Reference Manual》、《Programming: Principles and Practice using C++》、《A Tour of C++》以及许多流行和学术论文的作者。
美国国家工程院院士。IEEE 和 ACM 会员。
工作经历
摩根士丹利董事总经理,哥伦比亚大学客座教授,德克萨斯 A&M 大学研究杰出教授。
曾任德克萨斯 A&M 大学杰出教授。
曾任 AT&T 贝尔实验室计算机科学研究中心成员。
教育
英国剑桥大学计算机科学博士。
丹麦奥胡斯大学理学硕士。
个人信息
在丹麦奥胡斯出生长大,一个美妙的地方。已婚,两个孩子,四个孙子。现居纽约市。
网址:stroustrup.com
Herb Sutter (Microsoft, WG21 召集人)
您为 C++ 做过什么?
我在 ISO C++ 委员会 WG21 的大部分时间里(2002-2008 年和 2009 年至今)担任召集人(主席),在此之前,从 1998 年到 2002 年担任 WG21 秘书。我迄今为止最大的贡献是主持了除 C++98 之外的所有 ISO C++ 规范的开发,并通过领导或参与并发内存模型、lambda 函数、`async`、futures、`enum class`、`nullptr`、`<=>` (spaceship) 运算符、反射以及其他 ISO C++ 功能的设计,为 C++ 的许多功能做出了技术贡献。
我还是与 Bjarne Stroustrup 合著并编辑了《C++ 核心指南》。我还撰写了 200 多篇文章和四本关于 C++ 的其他书籍,其中包括畅销书《Exceptional C++》系列以及《C++ 编码标准》(与 Andrei Alexandrescu 合著)。我自 1995 年以来一直活跃在 C++ 社区,当时我成为 comp.lang.c++.moderated 的最初版主之一,然后撰写了 Guru of the Week 系列,并担任《C++ Report》(我也曾担任编辑)、《C++ Users Journal》和《Dr. Dobb’s Journal》的专栏作家。最近,我领导创建了标准 C++ 基金会,我在其中担任总裁和董事,设计并创建了 *isocpp.org* 网站,并创建了 CppCon 大会(与 Jon Kalb 合作)。
您的其他主要成就包括哪些?
在微软,我领导了 C++ 扩展的语言设计部分,包括 C++/CLI、C++/CX 和 C++ AMP,这些在当时无法充分表达为 C++ 库。我最近的大部分工作都集中在使标准 C++ 足够强大,以便我们再也不需要进行那种语言扩展,而是可以将它们表达为库,包括使用编译时反射和生成。
这些设计中起源的几项功能演变为 ISO C++ 标准的一部分,例如来自 C++/CLI 的 `nullptr` 和 `enum class`(其版本被 C++11 采用)以及 C++ AMP 中的并行算法(与 NVidia Thrust 一起构成了 C++17 中采用的并行 STL 设计的大部分基础)。
在此之前,在 20 世纪 90 年代,我曾是初创公司 PeerDirect(后来被 Embarcadero 收购)的 CTO,也是 PeerDirect 数据库复制引擎的架构师,用于基于互联网的移动同步,而当时商业互联网对于普通商业世界来说还是一个新概念。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
这实现了完整的引用计数对象缓存,并利用了至少五种不同的 C++11 功能或便利性——函数局部静态的线程安全初始化、`std::mutex`、`std::shared_ptr`、`std::weak_ptr` 线程安全 `.lock` 和 `std::map` 自动插入——只有最后一个在 C++98 中可用,其余的都是 C++11 中新增的。
shared_ptr<widget> get_widget( int id ) {
static map<int, weak_ptr<widget>> cache;
static mutex mut_cache;
lock_guard<mutex> hold( mut_cache );
auto sp = cache[id].lock();
if( !sp ) cache[id] = sp = load_widget( id );
return sp;
}
工作经历
微软软件架构师 (2002 至今)
独立顾问和培训师 (1997 至今)
PeerDirect Inc. 首席技术官 (1995-2001)
各种实习、全职和合同编程职位,主要在金融和公共部门 (1985-1995)
教育
加拿大滑铁卢大学计算机科学学士 (荣誉)。
个人信息
出生并成长于加拿大安大略省的英语城市奥克维尔(靠近多伦多),并感激在一个讲德语的家庭中生活以及能够就读法语沉浸式高中所带来的好处。现在幸福地结婚并居住在美国华盛顿州西雅图附近。我最喜欢多伦多和西雅图的地方是它们都非常多元文化——多样性是美丽的。我第二喜欢西雅图的地方是树木——即使是郊区也充满了高大的树木,感觉就像置身于森林中,这是所有雨水换来的美妙福利。
网址:herbsutter.com
Andrew Sutton (Concepts TS 项目编辑)
您为 C++ 做过什么?
我自 2010 年加入德克萨斯 A&M 大学担任博士后研究员以来,一直参与 C++ 标准化工作,研究与泛型编程和改进泛型编程的语言支持相关的项目。
我与 Bjarne Stroustrup 和 Gabriel Dos Reis 共同提出了 Concepts Lite 作为 C++ 的语言扩展,并且我是 ISO Concepts 技术规范的项目编辑。
您的其他主要成就包括哪些?
我是 Origin C++ 库的作者,这是我用于试验 C++11 和 C++14 中新语言特性及其如何影响泛型库设计的“游乐场”。Origin 中的想法已出现在几项 C++ 库提案中,以及 Bjarne Stroustrup 撰写的一本流行 C++ 书籍中。
我也是 GCC 即将推出的概念支持的主要开发者。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
使用 Concepts Lite 声明距离算法(包括尚未提出的特性)。假设 Signed
和 Input_iterator
是先前已定义的 Concepts。
template<typename I>
concept bool In = Input_iterator<I>;
// Distance algorithm
Signed distance(In first, In last);
工作经历
2013 年至今 艾克朗大学助理教授
2010-2013 年 德克萨斯 A&M 大学博士后研究助理
教育
2010 年 俄亥俄州肯特市肯特州立大学计算机科学博士
2005 年 俄亥俄州肯特市肯特州立大学计算机科学硕士
1999 年 俄亥俄州雅典市俄亥俄大学计算机科学学士
个人信息
我和妻子计划将我们的家改造成一个功能齐全的农场,养山羊和鸡。嗯……也许不养山羊。
网址:sites.google.com/site/andrewnsutton
Daveed Vandevoorde (Edison Design Group)
您为 C++ 做过什么?
在九十年代初期,我发明(或共同发明)了各种基于模板的编程技术,包括表达式模板。1995 年,我将这些技术带到了标准化委员会的“库工作组”,然后被该委员会的核心语言方面所吸引,在那里我主要只是尝试帮助完善语言提案并修复标准中的缺陷。也许我对语言最重大的贡献是一个小小的改动,它消除了连续的闭合尖括号之间对空格的需求(即,你现在可以写 list<complex<double>>
而不是 list<complex<double> >
)。我是《C++ 模板——完整指南》的主要作者,这是一本备受推崇的书,详细介绍了 C++ 模板的工作原理以及如何有效地使用它们。我是 Usenet 群组 comp.lang.c++.moderated 的共同创始人(与 Eric Schweitz)。
您的其他主要成就包括哪些?
我发明了一种最优算法,用于在二维布尔值数组中查找最大的均匀子数组(现在这显然常用于计算机视觉应用中)。大约在同一时间,我还为图像恢复领域做出了一些贡献(特别是关于减少边界误差伪影的一些早期想法)。
工作经历
我目前在 Edison Design Group (EDG, http://www.edg.com) 工作:一家处于 C++ 语言开发前沿的小公司(我们生产了至今仍然是 C++03 语言唯一完整实现的产品)。
此前,我曾领导惠普(HP-UX)的 C++ 编译器团队。
教育
伦斯勒理工学院计算机科学博士和硕士。
布鲁塞尔自由大学电气工程硕士。
个人信息
我住在佛罗里达州坦帕市。
网址:领英
JC van Winkel (荷兰, SG20 教育主席)
您为 C++ 做过什么?
我在荷兰的一家小型课件公司教授 C++ 已经超过 20 年。我出版了两本面向 C 程序员的 C++ 书籍(荷兰语)。自 1997 年以来,我一直担任荷兰标准委员会的 C++ 专家,并主持 SG20,即 C++ 和教育研究小组。
您的其他主要成就包括哪些?
在 10 次 OOPSLA 会议上进行过教程演讲;我曾是荷兰 Unix 用户组 (NLUUG) 的董事会成员 12 年,其中六年担任主席。共同创建了 Google 网站可靠性部门的教育团队。
工作经历
在毕马威(KPMG)EDP 审计师部门从事 UNIX 系统编程和管理 7 年。
在 ATComputing 工作超过 20 年,创建并教授课程。所有课程都在 Unix 和编程领域。
自 2010 年起:Google 网站可靠性工程 (SRE) 部门软件工程师;Google SRE 教育团队 SRE EDU 的创始成员和首席教育者。
教育
丰蒂斯大学埃因霍温分校计算机科学学士
阿姆斯特丹自由大学计算机科学硕士
网址:领英
Vassil Vassilev (保加利亚国家机构主席)
您为 C++ 做过什么?
自 2015 年起负责保加利亚参与 ISO C++ 标准委员会和 JTC1/SC22 的工作。
为各种成功和不成功的 C++ 提案做出了贡献。
为包括 Clang 和 LLVM 在内的各种开源项目做出贡献。
领导了 C++ 模块在高能物理 (HEP) 领域的集成(以及偶尔的增强)。这项任务包括解决问题,这在 CERN 和 FermiLab 等研究机构的工程师以及 Google、Apple 和 Facebook 的大力帮助下得以完成。因此,基于 Clang 的 C++ 模块用于数据分析中的类型内省,在运行时,涉及超过 1 亿行非平凡的科学 C++ 代码。
您的其他主要成就包括哪些?
共同创作了交互式 C++ 解释器 Cling,它促进了高能物理及其他领域科学数据的处理。该解释器是 LHC 实验项目软件工具的重要组成部分,也是 LIGO 实验用于探测引力波的软件的一部分。截至 2020 年,Cling 已帮助分析了 1 艾字节的物理数据,这是在 Nature、Physics Letters 和 Physical Review Letters 等各种科学期刊和会议上发表的 1000 多篇科学出版物的基础。
创作了 C/C++ 自动微分库 Clad,可实现导数和梯度的有效合成。
积极从事数据科学领域的工作,并热情推广用于数据科学的交互式、可微分 C++。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
每一个编译和按预期工作并达到最佳性能的代码片段。
工作经历
目前是普林斯顿大学的研究软件工程师,领导交互式 C++ 方面的工作(compiler-research.org)。
曾在瑞士欧洲核子研究中心(CERN)和美国费米实验室(FermiLab)工作。
教育
2015 年普罗夫迪夫大学“Paisii Hilendarski”视觉编程语言领域计算机科学博士。
网址:主页
Ville Voutilainen (芬兰; 演进工作组名誉主席)
您为 C++ 做过什么?
Bjarne Stroustrup 在演进工作组主席职位上的继任者。在此之前,自 2009 年新泽西峰会会议开始,一直担任芬兰代表团团长。
为显式虚函数覆盖(override、final)做出了大量技术贡献,包括它们的 GCC 实现,为显式默认成员函数(部分 GCC 实现)做出了贡献,在核心工作组处理核心问题花费了大量时间,在会议间隙通过电子邮件帮助库工作组处理库问题花费了大量通宵时间,只要演进工作组召开会议就会出席,部分 GCC 实现的委托构造函数。
您的其他主要成就包括哪些?
声明式 UI 框架(当然是用 C++ 编写的)的架构、设计和实现,该框架已在 2 亿多台移动设备上发布。
广播系统数据库控制器/归档/复制模块(同样是用 C++ 编写的)的架构、设计和实现,该系统已使用了近十年,无需任何架构更改。
最喜欢的 C++ 短代码片段(10 行以内)是什么?
这是 switch
-case
-like 构造的实现的一部分,它可以使用变长模板和 lambda 切换任何与 operator==
可比较的东西。所示的部分进行递归遍历 case,将要切换的值、case 值和 case 主体带入递归终止函数。如果比较为真,终止器只需调用 case-body lambda(或任何函数对象类型)。
template <class X, class T, class U>
void super_case_impl(X val, T val2, U y)
{
if (val == val2) {
y();
}
}
template <class X, class T, class U, class ...Pairs>
void super_case_impl(X val, T val2, U func, Pairs... case_pairs) {
super_case_impl(val, val2, func);
super_case_impl(val, case_pairs...);
}
工作经历
高级软件工程师,Qt 公司(现职)
汽车和半导体行业首席架构师,Symbio
高级系统分析师,Ixonos Plc。
教育
奥卢大学硕士在读(无限期休学)
个人信息
在芬兰科特卡芬兰湾长大,后搬到芬兰奥卢。已婚,育有两子,生活幸福。
网址:Google+
Michael Wong (Codeplay;加拿大代表团团长,也是英国 WGE;SG14 低延迟主席;SG5 事务内存名誉主席)
您为 C++ 做过什么?
加拿大 ISO C++ 委员会代表团团长,Codeplay 在加拿大和英国 C/C++ 委员会的投票代表。
WG21 事务内存研究小组 (SG5) 前主席,现任低延迟/游戏/金融/嵌入式/模拟研究小组 (SG14) 主席。
他是并发 TS 和事务内存 TS 的现任编辑。
设计 C++ 编译器二十年,曾任 IBM XL C++ 编译器和 C 编译器的高级技术架构师和团队负责人,领导他们的 C++11/14 部署以及向基于 clang 的技术重基。
您的其他主要成就包括哪些?
合著了多项 C++/OpenMP/TM 特性,包括通用属性、用户定义字面量、继承构造函数、弱有序内存模型和显式转换运算符。
OpenMP Corporation 首席执行官,这是一个由 24 家成员公司组成的联盟,它们持有 C/C++ 和 FORTRAN 共享内存并行编程规范的事实标准,目前正在领导一项新的使命宣言,支持 OpenMP 的加速器,通过添加 TR 实现更敏捷的发布流程,并启动 OpenMPCon 2015。
加拿大标准委员会编程语言副主席。
经常在各种技术会议上发表演讲,并担任 Boost、IWOMP 和多个加速器研讨会会议的编程委员会成员。
他是并发 TS 和事务内存 TS 的现任编辑。
我目前的研究兴趣集中在并行编程、自动驾驶汽车和低功耗设备的未来编程模型、无锁编程、事务内存、C++ 基准性能、对象模型、泛型编程和模板元编程领域。
工作经历
Codeplay Software 研发副总裁,一家苏格兰公司,生产编译器、调试器、运行时、测试系统和其他专用工具,以帮助异构系统、加速器和专用处理器架构(包括 GPU 和 DSP)的软件开发。
科洛诺斯(Khronos)代表。
OpenMP 首席执行官。
IBM 编译器高级技术策略架构师。
BMO Nesbitt Burns C++ 程序员
Control Data Corporation C 编译器测试员
戴维·邓拉普天文台天文学家/导游
教育
我拥有多伦多大学天体物理学学士学位和滑铁卢大学数学硕士学位。
个人信息
我喜欢学习、观察现实世界以及阅读有关未来、技术和太空旅行的文章。在我的空闲时间不足时,我打网球,曾在一个网球俱乐部担任了 20 年的首席职业选手。现在我已退休,并尝试与我的妻子一起,引导我的两个年幼的孩子对一切事物都保持兴趣和好奇心。
网址:Michael Wong 的主页
Jeffrey Yasskin (Google, 库演进工作组名誉主席)
您为 C++ 做过什么?
我第一次与委员会的互动是帮助弄清楚库应如何根据 C++11 内存模型进行更改。
我曾担任库演进工作组主席和库基础 TS 编辑。
您的其他主要成就包括哪些?
工作经历
Google (2005 至今)
教育
德克萨斯大学奥斯汀分校计算机科学学士
Niall Douglas (爱尔兰)
您为 C++ 做过什么?
Boost.Outcome 的作者,以及一堆其他流行的标准库提议设施的参考实现。
爱尔兰国家标准机构 WG21 和 WG14 委员会成员。
工作经历
自 2009 年以来,主要为大大小小的各种客户提供合同服务,但也曾在 2012 年与 BlackBerry Canada 签订过一份永久合同。
教育
赫尔大学软件工程学士;圣安德鲁斯大学经济学和管理学联合荣誉硕士;科克大学学院商业信息系统硕士;开放大学纯数学研究生证书。
个人信息
三个孩子还在不断增加,所剩无几的时间目前都花在设计我未来的房子上。
网址:Niall Douglas 的主页