testing techniques for verifying includes in std:: namespace
Benjamin Kosnik
bkoz@redhat.com
Fri Feb 16 08:17:00 GMT 2007
> - The "archetypes" part, which tests that an algorithm does not try
> to use any operations on its input types that aren't stated in the
> concept requirements. For example, this would detect a "for (; first <
> last; ++first)" error in an algorithm that is meant to take input
> iterators. This kind of checking is unnecessary in ConceptGCC, because
> the compiler itself will diagnose the error when the template is parsed.
>
> - The "concept checks" part, which tests that the user has provided
> types that meet the minimum stated requirements of the algorithm. For
> example, this would detect an attempt to use adjacent_find on an input
> iterator. This kind of checking is unnecessary in ConceptGCC, because
> the compiler checks that the user-provided types meet the stated
> requirements of the algorithm before the algorithm is instantiated.
Thanks for the clarification.
I was thinking that eventually, there would be negative tests to verify
these two parts.
No?
> - The other "concept checks" part, which tests that the data
> structures provided by a library meet the requirements of its concepts.
> For example, this would check that vector<int> is actually a model of
> the Sequence concept. This kind of checking is unnecessary in
> ConceptGCC, because the library contains "concept maps" stating that
> vector<T> is a model of Sequence, and the compiler checks the
> correctness of concept maps when they are defined.
>
> Unless there are other concept-related checks that I'm not thinking of,
> concept checking doesn't really have a place in a concept-enabled
> library. We've provided language features that do all of that checking
> for us, automatically, without the need for the techniques used in
> today's concept checkers. In ConceptGCC, I've just stripped out all of
> the existing concept-checking code.
Ooops. Yes, I noticed that you stripped out all the old-style concept
checking code, which is a good thing IMHO as concept gcc has better
techniques for this.
best,
benjamin
More information about the Libstdc++
mailing list