C++Now 2014 has ended
Please visit the C++Now website.
Back To Schedule
Tuesday, May 13 • 2:30pm - 4:00pm
ConceptClang: Theoretical Advances with Full C++ Concepts

Log in to save this to your schedule, view media, leave feedback and see who's attending!

Concepts are an essential feature of generic programming and have been anticipated as a language extension to C++ for over a decade. Different designs have been proposed, but a consensus has not emerged for standardization. In 2010, we introduced ConceptClang as a general framework for implementing different C++ concepts designs in Clang, with the primary purpose of aiding in understanding the design space for concepts, as well as to understand general concepts issues which are independent of particular language designs for them. One such general issue emerged in the area of name binding, i.e., the process of matching the use of a name to the declaration to which it refers. It appears that full support for any concepts design will benefit from a new scoping rule for name binding, which we call weak hiding. Weak hiding allows the transition from unconstrained templates to constrained templates to preserve seemingly valid programs — something that has not been previously well addressed. To implement weak hiding, we have introduced two-stage name binding (Bindx2), which defines how existing name binding can be extended with weak hiding. Generalizing Bindx2 from simple function calls to other kinds of name uses such as associated members (including special members), operators, and types requires a first-class implementation of archetypes — a surprising consequence of which is that open/extensible classes/structures are essentially provided for free with full C++ concepts.

This talk will focus primarily on illustrating how one can use ConceptClang in practice, highlighting and motivating key components of its implementation structure, such as Bindx2 and our “structure opening” archetypes. The audience can expect to learn how our implementation of concepts not only helps with designing concepts for C++, but also affects other programming languages, thereby increasing the need for full concepts support in C++.

avatar for Larisse Voufo

Larisse Voufo

Larisse Voufo is a research assistant in the Center for Research in Extreme Scale Technologies (CREST) at Indiana University, led by Dr. Andrew Lumsdaine. She is completing a PhD degree in Computer Science, with concentration in programming languages theory. Larisse has a vast pool... Read More →

Tuesday May 13, 2014 2:30pm - 4:00pm MDT

Attendees (0)