#ifndef ALREADY_INCLUDED_2006_LIBD__DOUBLE_HH
#define ALREADY_INCLUDED_2006_LIBD__DOUBLE_HH
#include "libd.hh"
namespace dmp
{
class Double : private Single
{
public:
double v;
rtti_same(Double);
private:
Double(double v) : Single(DCODE_DOUBLE)
{
this->v = v;
}
public:
static ptr<Double> ctor()
{
return new Double(0);
}
static ptr<Double> ctor(double v)
{
return new Double(v);
}
private:
template <class T> friend class ptr;
~Double()
{
}
#ifdef DAVINS_IO_ONLINE
friend dmp::Writer& operator << (dmp::Writer& w, Double& d)
{
ASSERT(&w != null);
ASSERT(&d != null);
w << d.v;
return w;
}
#endif
private:
Double(const Double&);
Double& operator = (const Double&);
};
class Float : private Single
{
public:
float v;
private:
Float(float v) : Single(DCODE_FLOAT)
{
this->v = v;
}
public:
static ptr<Float> ctor()
{
return new Float(0);
}
static ptr<Float> ctor(float v)
{
return new Float(v);
}
private:
template <class T> friend class ptr;
~Float()
{
}
#ifdef DAVINS_IO_ONLINE
friend dmp::Writer& operator << (dmp::Writer& w, Float& d)
{
ASSERT(&w != null);
ASSERT(&d != null);
w << d.v;
return w;
}
#endif
private:
Float(const Float&);
Float& operator = (const Float&);
};
}
#endif