Код: Выделить всё
#include
#include
bool touch(const std::string& file_path)
{
return std::ofstream(file_path, std::ios_base::app);
}
int main()
{
touch("foo.txt");
}
Код: Выделить всё
prog.cpp: In function 'bool touch(const string&)':
prog.cpp:6:52: error: cannot convert 'std::ofstream {aka std::basic_ofstream}' to 'bool' in return
return std::ofstream(file_path, std::ios_base::app);
Я знаю, что оператор bool() в std::fstream определен как явный, но я не вижу причин, по которым в этом случае он должен потерпеть неудачу. Никакого промежуточного преобразования нет, только временный объект std::ofstream и bool.
В чем причина?
Подробнее здесь: https://stackoverflow.com/questions/392 ... tdofstream
Мобильная версия