The current documentation states "Access to explicit operands of the instruction."
This is misleading, as it also lists implicit operands:
const_mop_iterator operands_end() const { return Operands + NumOperands; } iterator_range<mop_iterator> implicit_operands() { return make_range(explicit_operands().end(), operands_end()); }
I believe a comment like this would be more readable.
/// \retuns the total number of operands.