wg21

Save to:
Instapaper Pocket Readability

WG21 (ISO C++ Committee) Members

The following are a few of the individual members of the ISO C++ committee.

Matt Austern (Google, Concepts Study Group Chair)

Matt Austern

What have you done for C++?

I’ve been involved with the standardization project since 1996, when I was working at SGI. I was one of the implementers of the SGI STL, and wrote most of the documentation. I’m the author of the book Generic Programming and the STL, as well as a number of magazine articles about C++.

I served as chair of the standards committee’s Library Working Group, and I was the project editor for the Technical Report on C++ Library Extensions (“TR1”). I’m now one of Google’s committee representatives, and I’m chair of the standards committee’s study group on Concepts.

What are your other major accomplishments?

My main work at Google is writing frameworks for distributed data processing, mostly using C++.

I’m one of the authors of Pregel, a framework for very large scale graph computation; I’ve also worked on MapReduce and other tools.

Before coming to Google I was a member of Apple’s compiler team, where I worked on GCC.

Work positions

Google (2005-present)

Apple (2001-2005)

AT&T Research (2000-2001)

SGI (1995-2000)

Education

S.B. in physics and mathematics, MIT

Ph.D. in physics, UC Berkeley

Personal information

I grew up in Pittsburgh, but I’ve now been in California for more than half of my life. I’m now living in Palo Alto with my wife and daughter.

URL: lafstern.org

Dean Michael Berris (Google)

Dean Michael Berris

What have you done for C++?

I’m the main developer and the original maintainer of the cpp-netlib library, I write on cplusplus-soup.com, and work in Google on some internal C++ libraries. I’ve submitted papers to the Evolution working group for rich pointers and reflection. I also contribute to the Boost C++ Libraries project.

What are your other major accomplishments?

I’ve re-written a back-end service on a social network using C++ to accommodate multiple thousands of requests per second. A product of this is the memcache++ open source C++ library.

What’s a favorite short C++ code fragment (under 10 lines)?

std::cout << "Hello, world!" << std::endl; 

This line got me into the world of C++ programming and is a very powerful demonstration of how I could make computers do things.

Work positions

Software Engineer at Google

Software Engineer at Friendster

Education

BS Computer Science Undergraduate from the University of the Philippines Los Baños.

Personal information

C++ Fanatic, Husband, Father, Googler – in that order.

URL: plus.google.com

Hans Boehm (Hewlett Packard, Concurrency Study Group Chair)

Hans Boehm

What have you done for C++?

Hans Boehm Led the effort to provide a clean threads “memory model”, i.e. meaning of shared variables in C++11.

Chair of the concurrency study group, a.k.a. SG1.

What are your other major accomplishments?

Author of a well-known conservative garbage collection library.

ACM Distinguished Scientist and former Chair of ACM SIGPLAN.

Work positions

Research Manager, HP Labs

Education

Ph.D., Computer Science, Cornell University

B.S., Math and C.S., University of Washington

URL: Home Page

Chandler Carruth (Google)

Chandler Carruth

What have you done for C++?

I’m one of the lead developers on the LLVM and Clang compiler projects, and helped drive Clang’s support for C++. I led the design of C++ tooling and automated refactoring systems built on top of Clang and now part of the Clang project.

I help represent both Clang and Google on the C++ standards committee. I’ve contributed a few small C++ library proposals that I hope to see through to standardization.

Within Google, I led the effort to scale the automated Clang-based refactoring tools up to our entire codebase, over 100 million lines of C++ code. We can analyze and apply refactorings across the entire codebase in 20 minutes. I’m also one of the vocal proponents of C++ helping to shape some of our core libraries and drive the style and conventions used for writing C++ in Google’s codebase forward.

What are your other major accomplishments?

I have driven several LLVM optimizations in recent years, focused on dramatically improving how effectively modern C++ code can be optimized by the LLVM+Clang compiler.

In past lives, I helped build Google’s distributed build system and build several key pieces of our developers’ infrastructure for working with our codebase. Before joining Google I started a doomed game technology company.

What’s a favorite short C++ code fragment (under 10 lines)?

// 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(); })));
}

Work positions

I lead the Clang and LLVM teams at Google.

Education

I received my B.S. and M.S. in Computer Science from Wake Forest University.

Personal information

I am regularly found drinking Cherry Coke Zero in the daytime, pontificating over a single malt scotch in the evening.

Stephen D. Clamage (Oracle, PL22.16 Chair)

Stephen D. Clamage

What have you done for C++?

Founding member of C++ Committee.

Chair of US C++ Committee since 1996.

Published monthly “C++ Oracle” columns in the 1990’s.

Helped create comp.std.c++ Usenet news group; I’m a founding moderator.

What are your other major accomplishments?

Co-developed the first commercial C++ compiler not based on Cfront (1988). Compiler was used in various C++ compilers, and formed the basis of the current Sun/Oracle C++ compiler.

C++ technical lead for Sun Microsystems, now Oracle Corp, since 1998

Work positions

Co-founder of TauMetric Corp

Sun Microsystems, since acquired by …

Oracle Corporation

Education

BSEE California Institute of Technology (CalTech)

MSCS University of Southern California

Personal information

Two children, four grandchildren

Ballroom dancer

URL: Oracle Solaris Studio

Stefanus Du Toit (WG21 Project Editor Emeritus)

Stefanus Du Toit

What have you done for C++?

I was the Project Editor for C++14. In that position, my responsibility was to ensure the overall consistency and clarity of the standard. My first major contribution in this role was to open up the standards draft sources on github to make it easy to provide editorial contributions for the standard and simplify the writing of papers.

I also served as Secretary of the C++ committee from 2009 to 2011.

What are your other major accomplishments?

In 2004, I co-founded RapidMind, a spin-off from the University of Waterloo. RapidMind was the first company to commercialize GPGPU technology, providing a high level platform to write parallel programs in C++ that could be mapped to processors as diverse as multi-core CPUs, GPUs and the IBM Cell Broadband Engine. RapidMind was acquired by Intel in 2009.

Work positions

Software Development Manager, Intel Waterloo.

Formerly Chief Architect, RapidMind Inc.

Education

BMath Computer Science, University of Waterloo, 2004.

Personal information

By the time I was 18, I had lived in four continents. I was born in South Africa, where I spent six years until moving to Germany with my family. In 1998, I spent just under three years living in Brunei, Southeast Asia, where I completed high school. I then moved to Canada at the ripe age of 16 to study computer science at the University of Waterloo. In Canada, I quickly found some roots, and am now happily married with two wonderful children, still living in the Kitchener-Waterloo area. When I’m not working or spending time with my family, I love to snowboard, drive fast cars, and watch good movies.

J. Daniel Garcia (Spain)

J. Daniel Garcia

What have you done for C++?

I represent Spain in WG21. I have been participating in the ISO C++ committee since 2008 as head of the Spanish Delegation. I have also led to the constitution of the Spanish C++ standards committee where I am the chair since its creation. I also represent Spain in the ISO SC22 subcommittee (Programming Languages, their environments and system software interfaces). Although, I joined late during the last round of standardization for C++11, I had the opportunity to have some fun while adding noexcept specifications to a bunch of chapters of the standard library. I have also been a C++ evangelist among colleagues since I started programming in C++ back in 1989. I also wrote a C++ book (with solutions) in Spanish.

What are your other major accomplishments?

I have been developing software mainly in C++ since 1989. Relevant systems includes a safety system for explosion avoidance in mines, a road control system for a bidirectional highway, a management system for civil engineering and components for a computer tomography machine. In 2001 I joined University Carlos III where I have used C++ for research, building several simulators for distributed systems in C++ and using it for prototypes targeted for the aerospace industry.

What’s a favorite short C++ code fragment (under 10 lines)?

I love not needing casts any more for launching threads:

void run_threads() {
    std::thread t1(f1,100);
    std::thread t2([](){ f1(200); });
    t1.join();
    t2.join();
}

Work positions

Since 2001 I am with the Computer Science and Engineering Department at University Carlos III of Madrid where I became an Associate Professor in 2006.

During 2000 and 2001 I was a Lecturer at Pontifical University of Salamanca.

From 1989 to 2001 I worked as software engineer and systems engineers in projects for companies in different sectors AITEMIN (mining), FCC and TOOL (both civil engineering), Siemens (medical equipment), DMR Consulting (IT consulting), Telefonica and British Telecom (Telco).

Education

Ph. D. in Computer in Computer Science from University Carlos III of Madrid.

Computer Science six year Bachelor (Licenciado en Informática) from Madrid Polytechnic University.

Personal information

Brought up in the beautiful city of Marbella (in the very south of Spain). Since 1987 living in Madrid. Happily married and father of two children.

URL: Home page

Peter Gottschling (Germany)

Peter Gottschling

What have you done for C++?

Head of delegation for Germany to the ISO C++ committee.

In the German standardization institute (DIN like the paper formats DIN A4, DIN A3, …), I work as vice-chair of the programming language group. I founded the C++ User Group in Dresden.

I have written several evolution and library proposals which I loved to see in future standards.

I taught C++ for several years in different universities: TU Dresden, Indiana University, and TU Berlin.

What are your other major accomplishments?

I am the author of the Matrix Template Library version 4 (MTL4), a widely used generic library for linear algebra. I am also author or co-author of the Parallel Boost Graph Library, ANGEL: a graph-based library for transformations in automatic differentiation, and ParGraph: another parallel graph library.

Thanks to porting MTL4 to CUDA, my company is member of the Dresden’s CUDA Center of Excellence.

What’s a favorite short C++ code fragment (under 10 lines)?

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...)));
}

This little function template allows us to compute the minimum of an arbitrary number of values of different types. This is not rocket science but a cute example of how C++11 is more powerful than (most?) other languages and C++03. You are invited to try it. Unlike C++11, in C++14 we no longer need the redundant declaration of the result type and the more cumbersome common_type trait which we replaced thanks to auto return type deduction and common_type_t in C++14.”

Work positions

Founder and Managing Director of SimuNova and Director for Software Research at Stillwater Supercomputing.

Education

Ph.D. (Dr. rer. nat.) in Computer Science from TU Dresden

Diplom-Informatiker from TUD

Mathematik-Vordiplom from TUD

Personal information

I was born and raised in Leipzig (then part of the GDR) where I plan to return this year. Currently I live in Dresden and spent several years in Berlin and Bloomington, Indiana. I am happily married and have four children.

URL: Simunova

Howard Hinnant (Library Working Group Chair Emeritus)

Howard Hinnant

What have you done for C++?

I was instrumental in getting move semantics into C++11. This includes the rvalue reference and back-porting move semantics into the existing C++03 library, especially containers and algorithms. As part of this work I introduced unique_ptr and move_iterator.

I led the team on standardization of thread, mutex, unique_lock, and condition_variable. I invented condition_variable_any.

I led the chrono team and am responsible for uniting the common durations with the templated duration framework.

I served as Library Working Group Chairman from 2005-2010.

What are your other major accomplishments?

I’ve written two complete implementations of the standard library, one of which implements C++11 and is open source (http://libcxx.llvm.org).

I’ve also co-authored an independent implementation of the Itanium ABI with Marshall Clow (http://libcxxabi.llvm.org).

I would like to standardize shared (read/write) locking and I/O for the chrono durations.

What’s a favorite short C++ code fragment (under 10 lines)?

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()

The above code is locking a read/write mutex in read mode and then waiting on a condition variable with that read/write mutex. Try doing that in POSIX! And yet this is all implemented on top of POSIX mutexes and condition variables, and is exception-safe as well.

Work positions

Currently Senior Software Engineer at Ripple Labs.

Senior Software Engineer at Apple, Freescale, Motorola and Metrowerks (not all at the same time).

Civilian Research Scientist for the Army, co-located at both Nasa Langley and Nasa Ames.

Studied rotorcraft dynamics.

Education

MS Stanford University, Aeronautics and Astronautics.

BS Texas A&M University, Aerospace Engineering.

Personal information

Married, with four children, living in Ithaca, NY. Grew up in Dallas, TX and have lived in CA and VA. Hobbies include snow skiing and writing C++ code.

URL: Home page

Kyle Kloepper (Riverbed, WG21 Secretary Emeritus)

Kyle Kloepper

What have you done for C++?

Served as secretary of the C++ committee (2011-2014) and chaired the Networking Study Group (SG4) (2012-2014).

What are your other major accomplishments?

One time I wrote a userspace Linux networking driver entirely in C++ for line-rate 10 GbE packet processing (limited in performance only by the memory bandwidth of the system).

What’s a favorite short C++ code fragment (under 10 lines)?

With rich syntax and increasingly broad libraries C++ is the best language to precisely specify an interface without having to sacrifice efficiency or clarity. With care, almost any interface can be made simple and easy to use, while showing up any improper use as a compile time error.

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_; }
};

Work positions

After spending three summers doing protein microbiology at Monsanto. I decided to give programming a shot with the next two summers rocking C# at NuParadigm.

Right out of college, in 2007, I began working for Riverbed as a QA Engineer, then QA Lead, eventually switching to Member of Technical Staff, and currently as Technical Director in the Office of the CTO.

Education

B.S. in Computer Engineering, University of Illinois at Urbana-Champaign

Personal information

I live in Champaign, Illinois with my beautiful wife and super cute daughter. Outside of programming I am actively involved in Illini Life Christian Fellowship, love to go sailing, dislike roller coasters, and tie my shoes fast (if you don’t know what I mean then google it).

Dietmar Kühl (Bloomberg)

Dietmar Kühl

What have you done for C++?

I’m one of the founding moderators of comp.lang.c++.moderated and answered numerous questions on C++ both in newsgroups and on Stackoverflow tag c++. Within the C++ standard committee I’m normally attending the Library Working Group sessions. Currently, I’m proposing decimal floating pointing numbers to be added to the C++ standard.

What are your other major accomplishments?

At Bloomberg LP I have implemented a number of Feeds connecting to major European and Middle Eastern exchanges and helped on improving the infrastructure overall.

What’s a favorite short C++ code fragment (under 10 lines)?

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; } 

This is just a lovely way to get hold of iterators for built-in arrays.

Work positions

I’m working as a software developer in various positions. The work includes actual writing of software as well as helping and teaching others.

Education

I received a Mathematik Diplom from Technische Universität Berlin .

Personal information

I grew up in [then] West-Berlin where I also started studying. I finished studying in united Berlin although I worked during the last few years of my studies at Universität Konstanz. After this I have worked as a contractor (employed by various small companies) for several banks in German and for the software house of the Deutsch Bahn (then TLC). Since 2006 I’m working at Bloomberg LP in London.

URL: dietmar-kuehl.de

William M. (Mike) Miller (Edison Design Group, Core Working Group Chair)

What have you done for C++?

I was a founding member of X3J16, the predecessor committee to ISO WG21 and INCITS PL22.16. I served twice as vice chair of J16 and twice as chair of the Core Language Working Group, the position I currently hold.

I work for Edison Design Group on the EDG C/C++ compiler front end, which is used as the basis for many compilers, source code analyzers, etc., throughout the world. In the early days of C++ standardization, I wrote a regular column for The C++ Journal explaining the deliberations and decisions of the Standard Committee.

Work positions

1974-77: SofTech

1977-80: Prime Computer (PL/I and Fortran compilers, runtime, and debuggers)

1980-86: Stratus Computer (various application and system software)

1986-89: Software Development Technology (C++ IDE, library, training)

1989-91: Glockenspiel (C++ library, compiler, IDE, standardization)

1991-99: Software Emancipation Technology (C++ IDE, standardization)

1999-2003: OnDisplay/Vignette (Web development tools)

2003-04: The MathWorks (C++ development infrastructure)

2004-present: Edison Design Group (C++ compiler front end, standardization)

Education

SBEE (CS), MIT, 1974

Personal information

Born and raised in Memphis, TN (near Elvis Presley’s Graceland mansion), but have lived in Massachusetts for over 40 years now.

Clark Nelson (Intel; PL22.16 Vice Chair; Feature Test Study Group Chair)

What have you done for C++?

I have been Vice Chair of the INCITS/ANSI technical committee for C++ since 2001. From 1996-2005 I was (sometimes also) the International Representative and head of the US delegation to WG21. I have been on the committee since 1991.

My biggest technical contribution has been the reformulation of the sequencing rules (formerly in terms of “sequence points”, now in terms of “sequenced before”), and in the formulation of the memory sequencing model for parallel programs.

I have also done a lot of work in keeping C++ synchronized with C where appropriate: besides the sequencing/memory model areas, also the description of the preprocessor and the use of non-ASCII characters in program source. I am also a long-time contributor to the Core Working Group; there was a period in which I was the de facto owner of the grammar for C++.

Work positions

I have been working on front ends of various C/C++ compilers at Intel, and involved in standardization of C and/or C++, continually since 1987.

Education

BS in Computer Science from Purdue University (1983)

Personal information

I’m a happy husband, a devoted Christian, a singer, a libertarian, a former private pilot, and a big fan of sweet and spicy food. My favorite authors are Robert Heinlein, C.S. Lewis, J.R.R. Tolkien, and Larry Niven.

Eric Niebler

Eric Niebler

What have you done for C++?

Eric is a long-time contributor to Boost.org, including as a library author, a release manager, and as a member of the Boost Steering Committee. His most influential piece of code to date has probably been his (in)famous BOOST_FOREACH macro, which has now mercifully been made obsolete by C++11’s range-based for statement. Please use it.

He is also a member of the ISO C++ Standardization Committee, has attended several meetings, and authored several committee papers. Eric’s articles about C++ have appeared in the C/C++ Users’ Journal, MSDN Magazine, InformIT, The C++ Source and C++Next; and he has spoken about C++ at various conferences around the world including SD West, C++ Connections, BoostCon/C++Now, and OOPSLA. He co-headlined the Astoria Seminar.

Right now, Eric is pushing the boundaries of C++11 to improve the experience both of C++ library developers and of their users. He’s also filing lots of compiler bugs.

What are your other major accomplishments?

Eric is a big believer in the power of low-overhead abstraction and actively promotes the design, implementation, and use of Domain-Specific Languages. He has worked to bring this design methodology into the mainstream with his Boost.Proto library for building Domain-Specific Languages in C++.

What’s a favorite short C++ code fragment (under 10 lines)?

The following is a trivial use of my Boost.Proto library for building Domain-Specific Languages in C++. It builds a tree representing an expression, and then pretty-prints the tree to the standard output stream.

#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!"
    );
}

Expression templates don’t seem so hard now, do they?

Work positions

Independent Consultant.

Senior Software Developer and Domain Analyst, Intentional Software.

BoostPro Consultant.

Library Developer, Microsoft (Visual C++).

Software Developer, Microsoft Research (Natural Language Processing).

Software Developer In Test, Microsoft (Windows 2000).

Education

B.S. Mechanical Engineering from the University of Virginia.

Personal information

Eric grew up on Long Island, NY and attended the University of Virginia, where he picked up enough of a computer science education to land a job at Microsoft. After reading Andrei Alexandrescu’s “Modern C++ Design,” he decided to make a career out of C++ and hasn’t looked back.

Another important book in Eric’s life is “Walden” by H.D. Thoreau, which convinced Eric to question anything typically considered respectable. He eventually quit his day job, built an independent consulting business that freed him to travel, sold his belongings, and spent 2.5 years traveling and working from the road. He is now easing back into civil society in Seattle, WA, where you can typically find him quietly hacking C++ in coffee shops.

URL: ericniebler.com

Roger Orr (UK)

Roger Orr

What have you done for C++?

I currently chair the meetings of the British Standards Institute C++ panel and regularly attend WG21 meetings as the UK’s head of delegation. I’ve used C++ for many years and have also provided training for C++ programmers. I help with running ACCU, both with the magazines and with the annual conference.

What’s a favorite short C++ code fragment (under 10 lines)?

My favourite C++ fragment is simply

}

The C++ rules on block scope of objects provide the hooks for deterministic finalization. I miss this automatic and non-intrusive management of resources when I’m using other programming languages.

Work positions

Contract computer programmer, mostly for investment banks.

Education

Maths degree from St John’s College, Oxford.

Personal information

I take part in amateur dramatics with a local group “The Dulwich Players” and am active in my local church, All Saints Peckham.

URL: Home Page

P.J. Plauger (Dinkumware, Convener Emeritus)

P.J. Plauger

What have you done for C++?

I attended the organizational meeting of X3J16 in July 1989, but didn’t begin attending meetings regularly until March 1992. IIRC I’ve missed only one meeting since then. My wife Tana organized Dinkumware, Ltd. in 1995 to license the Standard C++ library I had developed. Our earliest customers include Microsoft, IBM, Green Hills Software, and IAR. We still operate Dinkumware from our home in Concord MA, but of late we have shifted our focus to supporting our longstanding customers who are major C++ compiler vendors. We were first to market with full libraries for C++98, C++03, and C++11.

What are your other major accomplishments?

I’ve been programming for a living since 1963. I had the good fortune to be at Bell Labs when C and UNIX were just beginning. Brian Kernighan and I wrote our first few books together, including The Elements of Programming Style and Software Tools. I have since written over a dozen books on various aspects of software development, and hundreds of articles in trade magazines. I have been active in standards work since 1980. Occasionally I find time to write science fiction.

What’s a favorite short C++ code fragment (under 10 lines)?

This is the inner loop for Intro Sort, using integer arithmetic to test for deviation from logarithmic complexity:

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;
    }
} 

Work positions

1995-present: President of Dinkumware, Ltd.

1988-1995: independent writer

1978-1988: President of Whitesmiths, Ltd.

1975-1978: Vice President of Yourdon Inc.

1969-1978: Member of Technical Staff at Bell Labs

Education

1965-1969: PhD in nuclear physics, Michigan State University Cyclotron Lab

1961-1965: AB in physics, Princeton University

1957-1961: high school diploma, Baltimore Polytechnic Institute

Personal information

I have yet to be indicted for any of my professional activities.

URL: plauger.com

Bill Seymour (USPS)

Bill Seymour

What have you done for C++?

Non-static data member initializers (original idea by Mike Spertus)

A rational number library (currently in numerics SG)

A database access library (currently in the “What’s your interest?” stage)

What are your other major accomplishments?

Back when I was still a wires-and-pliers guy (in the 1970s) working for Allegheny General Hospital in Pittsburgh, PA, USA, I designed and built an electrocardiograph with an early microprocessor (TMS9900) in it. It was on that job when I discovered that I was pretty good at coding and basically never looked back.

What’s a favorite short C++ code fragment (under 10 lines)?

I don’t have a favorite child.

Work positions

For the last 20+ years, I’ve been a programmer/analyst for the United States Postal Service.

Education

An electronics technician by training and early vocation, I have no academic credentials of any consequence; and as is often the case with auto-didacts, my knowledge reflects my interests more than my needs. 8-)

Personal information

I’m an avid rider of trains and will take them to and from our meetings whenever I can make the time (and don’t have to get to Europe or Hawai‘i).

URL: cstdbill.com

Peter Sommerlad (HSR, Switzerland)

Peter Sommerlad

What have you done for C++?

I came in quite late in the game for the C++11 standard and provided some update to async wording and worked on user-defined literals for standard library types for the next version of the standard. I am using and also teaching C++ for many years now. I am working hard with my students and assistants to get decent unit testing, refactoring and other IDE support for C++ in Eclipse CDT.

What are your other major accomplishments?

I co-authored Pattern-oriented Software Architecture Vol. 1: A System of Patterns and Security Patterns. I am author of further patterns and book chapters and support the patterns community through Hillside. In my research I try to achieve “Decremental Development”: refactoring code to reduce its size to 10% while improving its design.

What’s a favorite short C++ code fragment (under 10 lines)?

#include "cute.h"
#include "ide_listener.h"
#include "cute_runner.h"

void thisIsATest() {
    ASSERTM("start writing tests", false);
}

//...

and on it goes. Writing unit tests for C++ is crucial in modern development world

Work positions

Professor and director of IFS Institute for Software at FHO HSR Rapperswil, a university of applied sciences, where I teach C++ and patterns.

Researcher at Siemens Corporate Research in the 1990s.

Education

Diplom-Informatiker at J.-W.-Goethe Universität Frankfurt/M., Germany.

Personal information

I like alpine skiing, driving sporty cars and am a cured leukemia survivor.

URL: Home page

Bjarne Stroustrup (Morgan Stanley, Creator of C++, Evolution Working Group Chair)

Bjarne Stroustrup

What have you done for C++?

Designer and original implementer of C++. Designer or contributor to most of the early C++ libraries.

Founding member of the C++ Standards committee and have attended almost all meetings.

Chair of the Evolution Working Group. Pushed for the inclusion of the STL, for move semantics, contributed to concepts, initializer lists, constexpr, auto, and much more.

What are your other major accomplishments?

Author of 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++, and many popular and academic papers.

Member of the US National Academy of Engineering. IEEE and ACM fellow.

Work positions

A Managing Director at Morgan Stanley, a Visiting Professor at Columbia University, and a Research Distinguished Professor at Texas A&M University.

Formerly a distinguished university professor at Texas A&M University.

Formerly a member of AT&T Bell Labs’ Computer Science Research Center.

Education

PhD in Computer Science from Cambridge University, England.

Cand. Scient. (Master) from Aarhus University, Denmark.

Personal information

Born and brought up in Aarhus, Denmark, a wonderful place. Married, two children, four grandchildren. Lives in New York City.

URL: stroustrup.com

Herb Sutter (Microsoft, WG21 Convener)

Herb Sutter

What have you done for C++?

I’ve served as convener (chair) of the ISO C++ committee WG21 for most of its lifetime, from 2002-2008 and 2009-present, and as WG21 secretary from 1998 to 2002. My biggest contribution so far has been presiding over the development of every ISO C++ specification except for C++98, and contributing technically to a number of C++’s features by leading or participating in the design of the concurrency memory model, lambda functions, async, futures, enum class, nullptr, and other ISO C++ features.

I’m also the coauthor and editor, with Bjarne Stroustrup, of The C++ Core Guidelines. I’ve also written over 200 articles and four other books about C++, including the best-selling Exceptional C++ series as well as C++ Coding Standards (with Andrei Alexandrescu). I’ve been active in the C++ community since 1995, when I became one of the original moderators of comp.lang.c++.moderated, then wrote the Guru of the Week series, served as a columnist for C++ Report (where I also served as editor), C++ Users Journal, and Dr. Dobb’s Journal. Most recently I led the creation of the Standard C++ Foundation where I serve as President and a director, designed and created the isocpp.org website, and created the CppCon conference (with Jon Kalb).

What are your other major accomplishments?

At Microsoft, I led the language design portion of C++ extensions including C++/CLI, C++/CX, and C++ AMP. Several features that originated in those designs evolved to become part of the ISO C++ standard, such as nullptr and enum class from C++/CLI (versions of which were adopted into C++11) and the parallel algorithms in C++ AMP (which together with NVidia Thrust formed much of the basis for the Parallel STL design adopted into C++17).

Before that, in the 1990s I was CTO of the startup PeerDirect (later acquired by Embarcadero) and the architect of the PeerDirect database replication engine for Internet-based mobile synchronization back when the commercial Internet was still a new idea in the general business world.

What’s a favorite short C++ code fragment (under 10 lines)?

This implements a complete reference-counted object cache and leverages at least five different C++11 features or conveniences – thread-safe initialization of function local statics, std::mutex, std::shared_ptr, std::weak_ptr thread-safe .lock, and std::map auto-insertion – only that last one was available in C++98, all the rest are new in 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;
}

Work positions

Software architect at Microsoft (2002-present)

Independent consultant and trainer (1997-present)

CTO at PeerDirect Inc. (1995-2001)

Various contract and intern programming positions, mostly in the financial and public sectors (1985-1995)

Education

B.Math (Hon) in Computer Science, University of Waterloo, Canada.

Personal information

Born and raised in English-speaking Oakville (near Toronto), ON, Canada, and grateful for the bonuses of living in a German-speaking household and getting to attend a French immersion high school. Now happily married and living near Seattle, WA, USA. My favorite part of both Toronto and Seattle is that they are wonderfully multicultural – variety is beautiful. My second-favorite part of Seattle is the trees – even the suburbs are full of tall trees and feel like being in the forest, a wonderful benefit in exchange for all the rain.

URL: herbsutter.com

Andrew Sutton (Concepts TS Project Editor)

Andrew Sutton

What have you done for C++?

I’ve been involved with C++ standardization since 2010, when I joined Texas A&M University as a postdoctoral researcher working on projects related to generic programming and improved language support for generic programming.

I proposed Concepts Lite as a language extension for C++ along with Bjarne Stroustrup and Gabriel Dos Reis, and I am the project editor for the ISO Technical Specification of Concepts.

What are your other major accomplishments?

I am the author of the Origin C++ Libraries, which is my playground for experimenting with new language features in C++11 and C++14, and how they impact the design generic libraries. Ideas from Origin have shown up in a several C++ library proposals, and in a popular book about C++ by Bjarne Stroustrup.

I am also the primary developer of upcoming concepts support for GCC.

What’s a favorite short C++ code fragment (under 10 lines)?

A declaration of the distance algorithm using Concepts Lite (including features not yet proposed). Assume that Signed and Input_iterator are previously defined concepts:

template<typename I>
  concept bool In = Input_iterator<I>;

// Distance algorithm
Signed distance(In first, In last);

Work positions

2013-present Assistant Professor at the University of Akron

2010-2013 Postdoctoral Research Associated at Texas A&M University

Education

2010 PhD in Computer Science from Kent State University, Kent, Ohio

2005 MS in Computer Science from Kent State University, Kent, Ohio

1999 BS in Computer Science from Ohio University, Athens, Ohio

Personal information

My wife and I have plans to transform our home into a functioning farm, complete with goats and chickens. Well… maybe not goats.

URL: sites.google.com/site/andrewnsutton

Daveed Vandevoorde (Edison Design Group)

Daveed Vandevoorde

What have you done for C++?

In the early nineties, I invented (or co-invented) various template-based programming techniques, including expression templates. In 1995, I brought these to the “library working group” of the standardization committee, and then got seduced by the core language side of that committee, where I mostly just try to help refine language proposals and fix defects in the standard. Perhaps my most significant contribution to the language is a small change that removes the need for a space between consecutive closing angle brackets (i.e., you can now write list<complex<double>> instead of list<complex<double> >). I’m the principal author of C++ Templates – The Complete Guide, a well-regarded book detailing how C++ templates work and how they can be used effectively. I’m the co-founder (with Eric Schweitz) of the Usenet group comp.lang.c++.moderated.

What are your other major accomplishments?

I invented an optimal algorithm for finding the largest uniform subarray in a 2D array of boolean values (which is now apparently commonly used in computer vision application). Around the same time I also made some contributions to the field of image restoration (and particularly some early ideas about reducing boundary error artifacts).

Work positions

I currently work for Edison Design Group (EDG, http://www.edg.com): A small company at the forefront of C++ language development (we produced what is still the only full implementation of the C++03 language).

Previously, I led the C++ compiler team at Hewlett-Packard (for HP-UX).

Education

Ph.D. and M.Sc. in Computer Science from Rensselaer Polytechnic Institute.

M.Sc. in Electrical Engineering from Vrije Universiteit Brussel.

Personal information

I’m married and have two young children. We live near Princeton, NJ.

URL: LinkedIn

JC van Winkel (The Netherlands)

JC Van Winkel

What have you done for C++?

I have taught C++ for over 20 years at a small course ware company in the Netherlands. I have published two C++ books for C programmers (in Dutch). I have been the C++ expert for the Netherlands standards committee since 1997.

What are your other major accomplishments?

Given tutorials at 100 OOPSLA conferences; I was board member for the Netherlands Unix User’s group (NLUUG) for 12 years, six years of which as chair.

Work positions

7 years programming & administrating a UNIX system at KPMG, EDP audit work.

Over 20 years at ATComputing, creating courses and teaching them. All in the field of Unix and programming.

Since the end of 2010: Software Engineer at Google’s Site Reliability Engineering department.

Education

BSc in CS from Fontys Hogeschool, Eindhoven

MSc in CS from Vrije Universiteit, Amsterdam

URL: LinkedIn

Ville Voutilainen (Finland; Evolution Working Group Chair)

Ville Voutilainen

What have you done for C++?

Successor to Bjarne Stroustrup as Evolution Working Group chair. Before that, Head of Delegation for Finland since 2009, starting at the Summit, NJ meeting.

Lots of technical contributions for explicit virtual overrides (override, final) including the GCC implementation of them, contributions to explicitly defaulted member functions (with portions of the GCC implementation), lots of hours spent in the Core Working Group handling core issues, lots of midnight-oil hours spent helping the Library Working Group with library issue handling over email between meetings, attendance of the Evolution Working Group whenever it has convened, portions of the GCC implementation of delegating constructors.

What are your other major accomplishments?

Architecture, design and implementation of a declarative UI framework (written, of course, in C++) that shipped on 200+ million mobile devices.

Architecture, design and implementation of a database controller/archival/replication module (written, again, in C++) for a radio broadcasting system that was in use without any need for architectural changes for almost a decade.

What’s a favorite short C++ code fragment (under 10 lines)?

This is part of an implementation of a switch-case-like construct that can switch on anything that’s comparable with operator==, using variadic templates and lambdas. The bit shown does the recursive walking of cases, carrying the value to switch, the case value, and the case body into the recursion terminator function. The terminator simply invokes the case-body lambda (or any function object type, for that matter) if the comparison is true.

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...);
}

Work positions

Senior Software Engineer, The Qt Company (current position)

Chief Architect, Automotive and Semiconductor Industries, Symbio

Senior Systems Analyst, Ixonos Plc.

Education

M.Sc. studies at the University of Oulu (on indefinite hiatus)

Personal information

Raised in Kotka, Finland, by the Gulf of Finland, later moved to Oulu, Finland. Happily married, two children.

URL: Google+

Michael Wong (Codeplay; HoD Canada but also WGE of UK; SG5/SG14 Chair)

Michael Wong

What have you done for C++?

Head of delegation for Canada to the ISO C++ committee, and voting representative for Codeplay to the Canadian and UK C/C++ committee.

Chair of the WG21 transactional Memory study group (SG5) and Low Latency/Games/Financial/Embedded/Simulation study group (SG14)

He is the current Editor for the Concurrency TS and the Transactional Memory TS.

Designing C++ compilers for twenty years, and past C++ Senior Technical Architect and team lead to IBM’s XL C++ compiler, C compile, leading their C++11/14 deployment and rebase to clang-based technology.

What are your other major accomplishments?

Co-author of a number of C++/OpenMP/TM features including generalized attributes, user-defined literals, inheriting constructors, weakly ordered memory models, and explicit conversion operators.

CEO of OpenMP Corporation, a consortium of 24 member companies that hold the de-facto standard for shared memory parallel programming specification for C/C++ and FORTRAN, leading to now a new Mission Statement that supports Accelerators for OpenMP, a more agile release process by adding a TR, and starting OpenMPCon 2015.

Vice Chair of Standards Council of Canada for Programming Languages.

Frequent speaker at various technical conferences and serves on the Programming Committee of Boost, IWOMP and several accelerator workshop conferences.

He is the current Editor for the Concurrency TS and the Transactional Memory TS.

My current research interest is in the area of parallel programming, future programming models for self-driving cars and low-power devices, lock-free programming, transactional memory, C++ benchmark performance, object model, generic programming and template metaprogramming.

Work positions

Vice President of Research and Development at Codeplay Software, a Scottish company that produces compilers, debuggers, runtimes, testing systems, and other specialized tools to aid software development for heterogeneous systems, accelerators and special purpose processor architectures, including GPUs and DSPs.

Khronos representative.

OpenMP CEO.

Senior Technical Strategy Architect for IBM compilers.

C++ Programmer at BMO Nesbitt Burns

Tester for C Compiler at Control Data Corporation

Astronomer/guide at David Dunlap Observatory

Education

I hold a B.Sc in Astrophysics from University of Toronto, and a Masters in Mathematics from University of Waterloo.

Personal information

I enjoy learning, seeing the real world, and reading about the future, technology and space travel. In my lack of spare time, I play tennis, having dabbled for 20 years as a Head Pro at a tennis club. Now I am retired and try to guide with my wife, my 2 young children to be interested and curious in everything.

URL: Michael Wong’s home page

Jeffrey Yasskin (Google, Library Evolution Working Group Chair)

What have you done for C++?

My first interaction with the committee was helping to figure out how the library should change in response to the C++11 memory model.

I’m currently the chair of the Library Evolution Working Group and the editor of the Library Fundamentals TS.

What are your other major accomplishments?

Work positions

Google (2005-present)

Education

B.S. in computer science, UT Austin

Personal information