From: PORKOLAB Zoltan (gsd_at_[hidden])
Date: 2004-09-10 21:40:02
Here is the abstract of our proposal for the OOPSLA2004 Boost Workshop.
The proposal and the corresponding source is downloadable from
Please forgive us the possible errors.
Istvan Zolyomi scamel_at_[hidden]
Zoltan Porkolab gsd_at_[hidden]
Improving concept checking in Boost
To ensure the correctness of template based constructions in C++,
constraints on template parameters are especially useful. Though
C++ does not directly support checking requirements on template
parameters, several solutions address this problem. Boost provides
a comprehensive concept checking library that could be further
advanced in many areas. In this paper we propose a different
structure and an extended feature set to improve the Boost concept
checking library into a general template introspection library.
Our recommended solution takes the advantages of previous solutions,
such as REQUIRE-like macros and static interfaces.
On the lowest level, we suggest an orthogonal construction of
elementary concepts instead of a predefined set of complex constraints.
These basic concepts should return a boolean results instead of
aborting compilation immediately, thus any metaprogramming tool
could use the result of the check. Based on these building blocks,
it is possible to express highly complex constraints using arbitrary
logical expressions instead of the implicit conjunction used in all
current concept checking libraries. Our solution is non-intrusive,
relies only on standard C++ language features and implies no runtime
Note that this is a shortened version of our paper 'Towards a general
template introspection library' for GPCE'04 which can be downloaded
In that article we also introduce a possible implementation detailed
to the source-level. The sample source code can be downloaded from
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk