я пытаюсь скомпилировать простую программустанд :: ifstream ведет себя странно с временным станд :: строка() в качестве аргумента конструктора
int main(int argc, char* argv[]) {
std::ifstream strings(std::string(argv[1]));
std::string line;
while (!strings.eof()) {
strings >> line;
}
}
и получить специфическую ошибку:
error: request for member ‘eof’ in ‘strings’, which is of non-class type ‘std::ifstream(std::string*) {aka std::basic_ifstream<char>(std::basic_string<char>*)}’
если я изменяю
std::ifstream strings(argv[1]);
все компилируется хорошо.
Что здесь происходит? Компилятор - gcc 4.7 и 4.9.