145
|
1 /**
|
|
2 * TypeInfo support code.
|
|
3 *
|
|
4 * Copyright: Copyright Digital Mars 2004 - 2009.
|
|
5 * License: $(WEB www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
|
|
6 * Authors: Walter Bright
|
|
7 */
|
|
8
|
|
9 /* Copyright Digital Mars 2004 - 2009.
|
|
10 * Distributed under the Boost Software License, Version 1.0.
|
|
11 * (See accompanying file LICENSE or copy at
|
|
12 * http://www.boost.org/LICENSE_1_0.txt)
|
|
13 */
|
|
14 module rt.typeinfo.ti_wchar;
|
|
15
|
|
16 // wchar
|
|
17
|
|
18 class TypeInfo_u : TypeInfo
|
|
19 {
|
|
20 @trusted:
|
|
21 const:
|
|
22 pure:
|
|
23 nothrow:
|
|
24
|
|
25 override string toString() { return "wchar"; }
|
|
26
|
|
27 override size_t getHash(scope const void* p)
|
|
28 {
|
|
29 return *cast(const wchar *)p;
|
|
30 }
|
|
31
|
|
32 override bool equals(in void* p1, in void* p2)
|
|
33 {
|
|
34 return *cast(wchar *)p1 == *cast(wchar *)p2;
|
|
35 }
|
|
36
|
|
37 override int compare(in void* p1, in void* p2)
|
|
38 {
|
|
39 return *cast(wchar *)p1 - *cast(wchar *)p2;
|
|
40 }
|
|
41
|
|
42 override @property size_t tsize()
|
|
43 {
|
|
44 return wchar.sizeof;
|
|
45 }
|
|
46
|
|
47 override void swap(void *p1, void *p2)
|
|
48 {
|
|
49 wchar t;
|
|
50
|
|
51 t = *cast(wchar *)p1;
|
|
52 *cast(wchar *)p1 = *cast(wchar *)p2;
|
|
53 *cast(wchar *)p2 = t;
|
|
54 }
|
|
55
|
|
56 override const(void)[] initializer() const @trusted
|
|
57 {
|
|
58 static immutable wchar c;
|
|
59
|
|
60 return (&c)[0 .. 1];
|
|
61 }
|
|
62 }
|