Это не вопрос дизайна, действительно, хотя это может показаться. (Ну, ладно, это вопрос дизайна). Мне интересно, почему классы С++ std::fstream
не принимают std::string
в своих конструкторах или открытых методах. Все любят примеры кода, поэтому:
#include <iostream>
#include <fstream>
#include <string>
int main()
{
std::string filename = "testfile";
std::ifstream fin;
fin.open(filename.c_str()); // Works just fine.
fin.close();
//fin.open(filename); // Error: no such method.
//fin.close();
}
Это позволяет мне постоянно работать с файлами. Разумеется, библиотека С++ использовала бы std::string
, где возможно?