std::codecvt_utf8_utf16 and std::codecvt_utf16 (and std::codecvt_utf8 etc) do not have a replacement in standard C++. They are still part of C++17 and will be part of C++20 and likely one or more future standards, until a standard replacement appears.