For both you would need the C++ side to feed you some sort of RBF flag for each UTXOs.
Core 0.12 has an RPC call to tell you whether a tx opts in to RBF (which AIUI also checks whether an unconfirmed parent tx opts in).
EDIT: Although perhaps it's only useable if the tx pays to an address in the Core wallet - I haven't looked at what it does so I don't know.
EDIT: See
https://github.com/bitcoin/bitcoin/pull/7222