Tripti Joshi (Editor)

Andrei Alexandrescu

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Nationality
  
Romanian, American

Spouse
  
Sanda Alexandrescu

Role
  
Author


Name
  
Andrei Alexandrescu

Website
  
erdani.org

Books
  
Modern C++ Design

Andrei Alexandrescu Writing Quick Code in C Quickly GoingNative 2013

Born
  
1969 (age 45–46)
Bucharest, Romania

Occupation
  
Developer of the D programming language

Known for
  
Expert on C++ and D programming

Education
  
University of Washington, Politehnica University of Bucharest

Similar People
  
Herb Sutter, Scott Meyers, Walter Bright, Bjarne Stroustrup, Stanley B Lippman

Cppcon 2015 andrei alexandrescu declarative control flow


Andrei Alexandrescu (born 1969) is a Romanian-American C++ and D language programmer and author. He is particularly known for his pioneering work on policy-based design implemented via template metaprogramming. These ideas are articulated in his book Modern C++ Design and were first implemented in his programming library, Loki. He also implemented the "move constructors" concept in his MOJO library. He contributed to the C/C++ Users Journal under the byline "Generic<Programming>". Alexandrescu worked as a research scientist at Facebook, before departing the company in August 2015 in order to focus on developing the D programming language.

Contents

Andrei Alexandrescu Conversation with Andrei Alexandrescu All things D the

He became an American citizen in August 2014.

Andrei Alexandrescu Variadic Templates are Funadic GoingNative 2012 Channel 9

He is a developer of the D programming language.

Andrei Alexandrescu Interviu cu Andrei Alexandrescu unul dintre creatorii C

Cppcon 2015 andrei alexandrescu std allocator


Education and career

Andrei Alexandrescu httpsfch9msavatar10a6eb92139141af93538c

Alexandrescu received a B.S. degree in Electrical Engineering from Polytechnic University of Bucharest (Universitatea Politehnica din Bucureşti) in July 1994.

Andrei Alexandrescu DConf 2015 speaker Andrei Alexandrescu

His first article was published in the C/C++ Users Journal in September 1998. He was a program manager for Netzip, Inc. from April 1999 until February 2000. When the company was acquired by RealNetworks, Inc., he served there as a development manager from February 2000 through September 2001.

Andrei Alexandrescu All Things D programming language A Conversation with

Alexandrescu earned an M.S. (2003) and a Ph.D. (2009) in computer science from the University of Washington.

Andrei Alexandrescu The D Programming Language with Andrei Alexandrescu YouTube

More recently, he has been assisting Walter Bright in the development of the D programming language. Alexandrescu released a book titled The D Programming Language in May 2010.

Alexandrescu, Herb Sutter, and Scott Meyers run C++ and Beyond, a small annual technical conference.

Contributions

Expected is a template class for C++ which has been proposed for inclusion in Boost. Alexandrescu proposes Expected<T> as a class for use as a return value which contains either a T or the exception preventing its creation, which is an improvement over use of either return codes or exceptions exclusively. Expected can be thought of as a restriction of sum (union) types or algebraic datatypes in various languages, e.g., Hope, or the more recent Haskell and Gallina; or of the error handling mechanism of Google's Go, or the Result type in Rust.

He explains the benefits of Expected<T> as:

  • Associates errors with computational goals
  • Naturally allows multiple exceptions in flight
  • Switch between error handling and exception throwing styles
  • Teleportation possible across thread boundaries, across nothrow subsystem boundaries and across time (save now, throw later)
  • Collect, group, combine exceptions
  • Example

    For example, instead of any of the following common function prototypes:

    int parseInt(const string&); // Returns 0 on error and sets errno.

    or

    int parseInt(const string&); // Throws invalid_input or overflow

    he proposes the following:

    Expected<int> parseInt(const string&); // Returns an expected int: either an int or an exception

    References

    Andrei Alexandrescu Wikipedia