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++.
|