$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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 
order to:
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 
the feature.
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 
was to
verify that the types of the parameters being passed to functions matched 
the
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 
instantiations.
Robert Ramey