boost::numeric::functional::complement
template<typename Arg, typename Tag = typename tag<Arg>::type> struct complement : public boost::numeric::functional::complement_base< Arg, void > { };