I don't see this option in getopt, is it there? e.g. If I want to disallow passing "--loud" and "--quite" at the same time. I can understand it would be difficult to implement this with getopt's current API.
A limited form of this is possible to do inline via a delegate. For example: bool quiet, loud; getopt ( args, "quiet", { enforce(!loud); quiet = true; }, "loud", { enforce(!quiet); loud = true; }, ); However that scales poorly with more than two arguments, and especially if they're of a different type.