This is a complaint about STL. Why do they take filename arguments as (char *) and not as std::string? This seems to make no sense.
There are two other questions on this topic:
The issue is that I have a lot of code that looks like this:
std::ofstream f(fname.c_str());
WhenI would like it to look like this:
std::ofstream f(fname);
Additional issues that are mentioned in the above posts is the issue of UTF-16 vs. UTF-8. (UTF-16 might contain NULLs which would break the POSIX API). But that's not really an issue, because the implementation could convert UTF-16 to UTF-8 before calling open().
But seriously, this makes no sense. Are there any plans to upgrade STL?