what are the inputs, and what are you doing with the result ?
why is there no V ?
why does it want to transpose U (instead of V)?
CV_SVD_U_T was defined as 2, which would be SVD_NO_UV today (meaning, it only calculates singular W values, not U at all)
maybe you can run the original c code with some random dummy values, and show the output (& compare it to the c++ version) ? you probably have to skip the flag, and transpose U manually (but this is just a guess)