What things need to be tested as part of this benchmark?
Most of these can't easily be tested.
- regular types
- basic math
- basic flow control
- dereference (pointer/iterator is a regular type that can be dereferenced)
- type conversion
- performance of type conversions (known to be a problem on certain compilers)
- function calls
- function objects
- template instantiation
- Are empty constructors correctly optimized away?
These are building blocks, with more than one way to express them. These are also usually found in headers like "inlines.h", "math_utils.h", etc.
- absolute value
- switch versus if/else trees
- pin values to range (max, min combo)
- rotate bits
- byte order reversal
- round up/down
- round float to int
- pointer alignment tests and comparisons
- allocation / deletion
- new, delete
- malloc, free
- string manipulation routines
- strcpy, strchr, strcat, etc.
- memory routines
- memcpy, memmove, memset, memcmp, etc.
More Complex Stuff
- STL containers
Need to test as many as possible. And this list deserves it's own page.
Conformance to Specification
- user specified swap in STL algorithms
- short circuit evaluation of boolean expressions