@vdeurzen - The bx command line interface can be used to construct, sign, and initially transmit signed transactions. However, bx requires interactions with bs to accomplish such tasking. The bx interface does not care if how the private keys, public keys, and addresses were generated.
Its been a few years, but I was able to use bx to successfully construct and transmits these types of transactions: P2PKH, P2SH, and OP_RETURN associated with sending funds. Was also able to successfully redeem funds sent to P2PKH, and P2SH addresses. I suggest understanding how this is done prior to digging into C++ code to roll your own apps.