I have some code that uses the Oracle function add_months to increment a Date by X number of months.
I now need to re-implement the same logic in a C / C++ function.
You can use Boost.GregorianDate for this.
More specifically, determine the month by adding the correct date_duration, and then use end_of_month_day() from the date algorithms