summary refs log tree commit diff stats
path: root/src/util.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/util.h')
-rw-r--r--src/util.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/util.h b/src/util.h new file mode 100644 index 0000000..72cb0d3 --- /dev/null +++ b/src/util.h
@@ -0,0 +1,41 @@
1#ifndef ALGORITHMS_H_1DDC517E
2#define ALGORITHMS_H_1DDC517E
3
4#include <fstream>
5#include <sstream>
6#include <cstring>
7
8template< typename ContainerT, typename PredicateT >
9void erase_if( ContainerT& items, const PredicateT& predicate ) {
10 for( auto it = items.begin(); it != items.end(); ) {
11 if( predicate(*it) ) it = items.erase(it);
12 else ++it;
13 }
14};
15
16struct chlit
17{
18 chlit(char c) : c_(c) { }
19 char c_;
20};
21
22inline std::istream& operator>>(std::istream& is, chlit x)
23{
24 char c;
25 if (is >> c && c != x.c_)
26 {
27 is.setstate(std::iostream::failbit);
28 }
29
30 return is;
31}
32
33std::string slurp(std::ifstream& in);
34
35void flipImageData(
36 unsigned char* data,
37 int width,
38 int height,
39 int comps);
40
41#endif /* end of include guard: ALGORITHMS_H_1DDC517E */