blob: 183ab936ee848afc25de7a527231def75391e8cc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
// -*- related-file-name: "../../liblcdf/landmark.cc" -*-
#ifndef LCDF_LANDMARK_HH
#define LCDF_LANDMARK_HH
#include <lcdf/string.hh>
class Landmark { public:
Landmark() : _file(), _line(~0U) { }
explicit Landmark(const String &f) : _file(f), _line(~0U) { }
Landmark(const String &f, unsigned l) : _file(f), _line(l) { }
operator bool() const { return _file; }
bool operator!() const { return !_file; }
bool has_line() const { return _line != ~0U; }
const String &file() const { return _file; }
unsigned line() const { return _line; }
Landmark next_line() const;
Landmark whole_file() const { return Landmark(_file); }
operator String() const;
private:
String _file;
unsigned _line;
};
Landmark operator+(const Landmark &, int);
inline Landmark
Landmark::next_line() const
{
return *this + 1;
}
#endif
|