boost::type_erasure::negatable
// In header: <boost/type_erasure/operators.hpp> template<typename T = _self, typename R = T> struct negatable { // public static functions static R apply(const T &); };
The negatable concept allow use of the unary minus operator on an any.
negatable
static R apply(const T &);