Subject: Re: [boost] [C++0x] Report from Frankfurt committee meeting
From: Robert Ramey (ramey_at_[hidden])
Date: 2009-08-12 17:43:16
I'm curious about the concept of concepts. I looked into the current
library and it looked interesting but the syntax seemed sort of opaque - at
least to my in experienced eye. I searched in boost for libraries which use
the concept library. I didn't find any. This was a surprise to given the
benefits that are anticipated from it. I guessed that the C++ template
metaprogram implemenation was lacking in some way. I don't know what way,
but I didn't want to be the first to add it to a boost library.
I've had a lot of reservations about adding anything to a standard which
hasn't had wide usage. It's just to hard to get anything complicated right
the first time. I proposed the idea of writing a "lint-like" program in
a) provide a tool that could be used by "the rest of us"
b) on our programs and libraries
c) in a non-intrusive, reversable manner
d) to provide help to library maintainers and users
e) which would also provide real world feed back to those who are designing
Enhancing the concepts library might be useful for part of the above but not
all of it.
I don't know that such a "lint-like" program is even possible. If adding
concepts to a program actually changes the code generated, that might make
it undoable. If it wasn't possible, to make such a program, that would also
be interesting to know.
Looking back in the past, one if the principle usages of the lint program
verify that the types of the parameters being passed to functions matched
types of parameters being used as arguments in function calls. After a
time, this facility migrated into the compilers themselves and eventually
into the standard. The transition was almost painless.
I see a strong parallel with the checking of parameters for template
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk