blob: c396a17ce2ce3c1fe4ffda84811ada288b2a4295 [file] [log] [blame]
/**
* TypeInfo support code.
*
* Copyright: Copyright Digital Mars 2004 - 2009.
* License: $(WEB www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
* Authors: Walter Bright
*/
/* Copyright Digital Mars 2004 - 2009.
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*/
module rt.typeinfo.ti_cdouble;
private import rt.util.typeinfo;
// cdouble
class TypeInfo_r : TypeInfo
{
pure:
nothrow:
@safe:
alias F = cdouble;
override string toString() const { return F.stringof; }
override size_t getHash(scope const void* p) const @trusted
{
return Floating!F.hashOf(*cast(F*)p);
}
override bool equals(in void* p1, in void* p2) const @trusted
{
return Floating!F.equals(*cast(F*)p1, *cast(F*)p2);
}
override int compare(in void* p1, in void* p2) const @trusted
{
return Floating!F.compare(*cast(F*)p1, *cast(F*)p2);
}
override @property size_t tsize() const
{
return F.sizeof;
}
override void swap(void *p1, void *p2) const @trusted
{
F t = *cast(F*)p1;
*cast(F*)p1 = *cast(F*)p2;
*cast(F*)p2 = t;
}
override const(void)[] initializer() const @trusted
{
static immutable F r;
return (&r)[0 .. 1];
}
override @property size_t talign() const
{
return F.alignof;
}
version (X86_64) override int argTypes(out TypeInfo arg1, out TypeInfo arg2)
{
arg1 = typeid(double);
arg2 = typeid(double);
return 0;
}
}