...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::type_erasure::incrementable
// In header: <boost/type_erasure/operators.hpp> template<typename T = _self> struct incrementable { // public static functions static void apply(T &); };
The incrementable concept allow pre and post increment on an any. The contained type must provide a pre-increment operator.