blob: 94b91806f81408988c5d5091c055ab24b8d22dcc [file] [log] [blame]
Howard Hinnant3e519522010-05-11 19:42:16 +00001//===----------------------------------------------------------------------===//
2//
Howard Hinnant5b08a8a2010-05-11 21:36:01 +00003// The LLVM Compiler Infrastructure
Howard Hinnant3e519522010-05-11 19:42:16 +00004//
Howard Hinnant412dbeb2010-11-16 22:09:02 +00005// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
Howard Hinnant3e519522010-05-11 19:42:16 +00007//
8//===----------------------------------------------------------------------===//
9
10// <fstream>
11
12// template <class charT, class traits = char_traits<charT> >
13// class basic_fstream
14
15// void close();
16
17#include <fstream>
18#include <cassert>
19
20int main()
21{
Alexis Hunt483cf242011-07-18 23:51:21 +000022 char temp[L_tmpnam];
23 tmpnam(temp);
Howard Hinnant3e519522010-05-11 19:42:16 +000024 {
25 std::fstream fs;
26 assert(!fs.is_open());
Alexis Hunt483cf242011-07-18 23:51:21 +000027 fs.open(temp, std::ios_base::out);
Howard Hinnant3e519522010-05-11 19:42:16 +000028 assert(fs.is_open());
29 fs.close();
30 assert(!fs.is_open());
31 }
Alexis Hunt483cf242011-07-18 23:51:21 +000032 remove(temp);
Howard Hinnant3e519522010-05-11 19:42:16 +000033 {
34 std::wfstream fs;
35 assert(!fs.is_open());
Alexis Hunt483cf242011-07-18 23:51:21 +000036 fs.open(temp, std::ios_base::out);
Howard Hinnant3e519522010-05-11 19:42:16 +000037 assert(fs.is_open());
38 fs.close();
39 assert(!fs.is_open());
40 }
Alexis Hunt483cf242011-07-18 23:51:21 +000041 remove(temp);
Howard Hinnant3e519522010-05-11 19:42:16 +000042}