Specifically the problem started because:
-
stan offered a version of
std::powwhich worked withintarguments with one promotion (viavarsand complex types I believe) -
C offered a version of
std::powwhich worked withintarguments with one promotion (promoting todouble) -
C++ offered a version of
std::powthat worked with int arguments because the specification allows for this (https://en.cppreference.com/w/cpp/numeric/math/pow).
And somewhere in a test model we did something like std::pow(int, int) and there were ambiguities.