Как я могу сделать аргумент ofstream необязательным?
bool LookingFor(std::string &mi_name, ofstream &my_file = std::cout)
{
my_file << xxx;
.......
}
ошибка компиляции с указанной выше сигнатурой метода:
«Станд :: ofstream& my_file ‘имеет тип’ std :: ostream {aka std :: basic_ostream} ‘
Я использую mingw32.
Я хочу, чтобы эта функция записывала на консоль, когда нет второго параметра.
Я пробовал множество вещей, но ничего не работает.
Я не против, если я должен проверить код, чтобы увидеть, если он открыт, например:
if(my_file.isopen())
my_file << xxx;
else
cout << xxx;
любая хорошая идея?
Просто используйте ostream
:
bool LookingFor(std::string &mi_name, std::ostream &out = std::cout) {
out << xxx;
}
Это будет работать с любым типом потока, не только fstream
, но также cout
, И другие типы потоков, такие как ostringstream
,
Других решений пока нет …