1268899Sbapt/**
2234949Sbapt * TypeInfo support code.
3234949Sbapt *
4234949Sbapt * Copyright: Copyright Digital Mars 2004 - 2009.
5234949Sbapt * License:   $(WEB www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
6234949Sbapt * Authors:   Walter Bright
7234949Sbapt */
8234949Sbapt
9234949Sbapt/*          Copyright Digital Mars 2004 - 2009.
10234949Sbapt * Distributed under the Boost Software License, Version 1.0.
11234949Sbapt *    (See accompanying file LICENSE or copy at
12234949Sbapt *          http://www.boost.org/LICENSE_1_0.txt)
13234949Sbapt */
14234949Sbaptmodule rt.typeinfo.ti_Areal;
15234949Sbapt
16234949Sbaptprivate import rt.util.typeinfo;
17234949Sbapt
18234949Sbapt// real[]
19234949Sbapt
20234949Sbaptclass TypeInfo_Ae : TypeInfo_Array
21234949Sbapt{
22234949Sbapt    alias F = real;
23234949Sbapt
24234949Sbapt    override bool opEquals(Object o) { return TypeInfo.opEquals(o); }
25234949Sbapt
26234949Sbapt    override string toString() const { return (F[]).stringof; }
27234949Sbapt
28234949Sbapt    override size_t getHash(scope const void* p) @trusted const
29234949Sbapt    {
30234949Sbapt        return Array!F.hashOf(*cast(F[]*)p);
31234949Sbapt    }
32234949Sbapt
33234949Sbapt    override bool equals(in void* p1, in void* p2) const
34234949Sbapt    {
35234949Sbapt        return Array!F.equals(*cast(F[]*)p1, *cast(F[]*)p2);
36240517Sbapt    }
37234949Sbapt
38234949Sbapt    override int compare(in void* p1, in void* p2) const
39234949Sbapt    {
40234949Sbapt        return Array!F.compare(*cast(F[]*)p1, *cast(F[]*)p2);
41234949Sbapt    }
42240517Sbapt
43234949Sbapt    override @property inout(TypeInfo) next() inout
44234949Sbapt    {
45234949Sbapt        return cast(inout)typeid(F);
46234949Sbapt    }
47234949Sbapt}
48234949Sbapt
49234949Sbapt// ireal[]
50234949Sbapt
51268899Sbaptclass TypeInfo_Aj : TypeInfo_Ae
52268899Sbapt{
53268899Sbapt    alias F = ireal;
54268899Sbapt
55268899Sbapt    override string toString() const { return (F[]).stringof; }
56268899Sbapt
57234949Sbapt    override @property inout(TypeInfo) next() inout
58234949Sbapt    {
59234949Sbapt        return cast(inout)typeid(F);
60234949Sbapt    }
61234949Sbapt}
62234949Sbapt