Biblioteka fstream, operacje na plikach.
Ostatnio zmodyfikowano 2014-05-09 20:35
Monika90 |
» 2014-05-09 17:25:30 Takie też działa ale niewiem dlaczego.
bool file_exists( const std::string & fname ) { return std::ifstream( fname.c_str() ); } |
Działa bo masz niezgodną ze standardem implementację biblioteki standardowej. |
|
maly |
» 2014-05-09 17:40:50 Sprawdziłem to w VC9, MinGW 4.7.1 i Borland Builder 6 i w nich działa, podejrzewam że w innych nowszych kompilatorach także będzie działać. |
|
Jacob99 |
» 2014-05-09 18:28:37 A czemu ma nie działać? Przecież konstruktor strumienia ifstream zwraca wartość logiczną powodzenia operacji otwarcia pliku. |
|
Monika90 |
» 2014-05-09 18:45:01 Ze standardu C++ wynika, że ma nie działać. Nie ma niejawnej konwersji ze std::ifstream do bool, kiedyś była (poprzez void*), ale od 3 lat już nie ma. Przecież konstruktor strumienia ifstream zwraca wartość logiczną powodzenia operacji otwarcia pliku. |
Konstruktory niczego nie zwracają. |
|
Jacob99 |
» 2014-05-09 19:34:29 Konstruktory nie zwracają wartości, to prawda. Chciałem po prostu powiedzieć że ifstream zwróci fałsz, jeśli nie uda się otworzyć pliku. A gdzie w standardzie jest napisane, że taki zapis ma nie działać? |
|
Elaine |
» 2014-05-09 20:35:30 A gdzie w standardzie jest napisane, że taki zapis ma nie działać? |
12.3.2/2, 27.5.3, 27.5.5, 27.7.2 i 27.9.1.6. |
|
1 « 2 » |