
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