wibble
1.1
wibble
fallback.h
Go to the documentation of this file.
1
6
#include <
wibble/exception.h
>
7
8
#ifndef WIBBLE_FALLBACK_H
9
#define WIBBLE_FALLBACK_H
10
11
namespace
wibble
{
12
13
struct
Error
{};
14
15
template
<
typename
T >
16
struct
Fallback
{
17
const
T *
value
;
18
Fallback
(
const
T &
v
) :
value
( &
v
) {}
19
Fallback
(
Error
=
Error
() ) :
value
( 0 ) {}
20
21
template
<
typename
E >
const
T &
get
(
const
E
&
e
) {
22
if
( !
value
)
throw
e
;
23
return
*
value
;
24
}
25
26
const
T &
get
() {
27
if
( !
value
)
throw
exception::Consistency
(
"tried to use undefined fallback value"
);
28
return
*
value
;
29
}
30
};
31
32
}
33
34
#endif
wibble::exception::Consistency
Exception thrown when some consistency check fails.
Definition
exception.h:255
exception.h
wibble
Definition
amorph.h:17
wibble::Error
Definition
fallback.h:13
wibble::Fallback
Definition
fallback.h:16
wibble::Fallback::Fallback
Fallback(Error=Error())
Definition
fallback.h:19
wibble::Fallback::Fallback
Fallback(const T &v)
Definition
fallback.h:18
wibble::Fallback::value
const T * value
Definition
fallback.h:17
wibble::Fallback::get
const T & get()
Definition
fallback.h:26
wibble::Fallback::get
const T & get(const E &e)
Definition
fallback.h:21
wibble::SanitizeReturn
Definition
amorph.h:30
Generated by
1.9.8