A Short History of ConceptC++

The desire for a language to better support Generic Programming led Alexander Stepanov and David Musser through Scheme, Ada, and finally to C++, where Generic Programming has been most successful. As generic libraries written in C++ became more numerous and more complicated, the need for true language support for Generic Programming became larger. One can almost read Dr. Stepanov's Foreword to the Boost Graph Library book as a personal challenge to Andrew Lumsdaine's laboratory to develop a better language for Generic Programming. In fact, there were two languages: G, from Jeremy Siek, and Fun, from Jaakko Järvi and Jeremiah Willcock. On another front, Bjarne Stroustrup and Gabriel Dos Reis initiated the idea of concepts for the upcoming C++ standard, dubbed C++0x, with several papers to the ANSI/ISO C++ committee describing concepts. However, ConceptC++ went from an idea to a serious candidate for inclusion in C++0x in 2005, starting with a C++ language extension proposal from Dr. Lumsdaine's laboratory, built upon experience with G, Fun, and C++, followed by Douglas Gregor's initial implementation of ConceptGCC. Stroustrup and Dos Reis continued their work as well, and produced a successor to their earlier proposals. Through many discussions, the differences between the two proposals are being rectified to produce a new proposal to the C++ committee that defines what we now refer to as ConceptC++.