Virtual Testbed
Ship dynamics simulator for extreme conditions
src
vtestbed
assets
file_stream.hh
1
#ifndef VTESTBED_ASSETS_FILE_STREAM_HH
2
#define VTESTBED_ASSETS_FILE_STREAM_HH
3
4
#include <fstream>
5
6
namespace
vtb
{
7
8
namespace
assets {
9
10
class
File_input_stream
:
public
std::ifstream
{
11
public
:
12
inline
explicit
13
File_input_stream
(
const
std::string
& filename):
std::ifstream
(filename) {
14
if
(!
is_open
()) {
15
throw
std::invalid_argument
(
"failed to open \""
+ filename +
"\""
);
16
}
17
imbue
(
std::locale::classic
());
18
exceptions
(std::ios::failbit | std::ios::badbit);
19
}
20
};
21
22
class
File_output_stream
:
public
std::ofstream
{
23
public
:
24
inline
explicit
25
File_output_stream
(
const
std::string
& filename):
std::ofstream
(filename) {
26
if
(!
is_open
()) {
27
throw
std::invalid_argument
(
"failed to open \""
+ filename +
"\""
);
28
}
29
imbue
(
std::locale::classic
());
30
exceptions
(std::ios::failbit | std::ios::badbit);
31
}
32
};
33
34
}
35
36
}
37
38
#endif // vim:filetype=cpp
std::locale::classic
T classic(T... args)
std::ifstream::imbue
T imbue(T... args)
vtb::assets::File_input_stream
Definition:
file_stream.hh:10
std::ifstream::exceptions
T exceptions(T... args)
std::string
std::ofstream
vtb
Main namespace.
Definition:
convert.hh:9
vtb::assets::File_output_stream
Definition:
file_stream.hh:22
std::ifstream::is_open
T is_open(T... args)
std::ifstream
std::invalid_argument
Generated by
1.8.15