Boost logo

Boost :

From: PORKOLAB Zoltan (gsd_at_[hidden])
Date: 2004-09-10 21:40:02

Dear Sir,

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, gregod at, cpdaniel at, john at