The requirements for the overloads of std::transform_inclusive_scan without an initial value incorrectly assume that the internal accumulator uses the iterator's value type, as it does for std::inclusive_scan, rather than the transformed type of the iterator's value type, as it was intended.
According to the standard, the following program is ill-formed as it requires std::string to be convertible to int:
auto vs = {0, 1, 2}; std::transform_inclusive_scan( vs.begin(), vs.end(), std::ostream_iterator<std::string>(std::cout, ";"), [](std::string x, std::string y) { return x + y; }, [](int x) { return std::to_string(x); });
libstdc++ and Microsoft's STL accept the snippet, producing 0;01;012; as expected, libc++ strictly conforms to the standard and rejects it.
These constrains were introduced by P0574R1.