blob: 7b2d32d096b93dc85a0763119d8761041cc67a58 (
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
|
#ifndef NULL_TRAITS_H
#define NULL_TRAITS_H
template <class V>
struct null_traits {
static V xnull; //TODO: maybe take out default null and make ppl explicitly define? they may be surprised that they need to when they include a header lib that uses null_traits
};
// global bool is_null(V const& v)
// definitely override this, and possibly set_null and is_null. that's the point.
template <class V>
V null_traits<V>::xnull;
//TODO: are we getting single init of the static null object?
template <class V>
void set_null(V &v) {
v=null_traits<V>::xnull;
}
template <class V>
void is_null(V const& v) {
return v==null_traits<V>::xnull;
}
#endif
|