#include "python.h"
namespace python {
// Float::Float(const Object & obj) {{{
Float::Float(const Object & obj) {
set( PyNumber_Float( *obj ), true );
}
// }}}
// Float & Float::operator=(const Float & obj) {{{
Float & Float::operator=(const Object & obj) {
return (*this = *obj);
}
// }}}
// Float & Float::operator=(PyObject * obj) {{{
Float & Float::operator=(PyObject * obj) {
if (ptr() != obj) {
set(obj);
}
return *this;
}
// }}}
// Float & Float::operator=(int v) {{{
Float & Float::operator=(int v) {
set(PyFloat_FromDouble( static_cast<double>( v ) ), true );
return *this;
}
// }}}
// Float & Float::operator=(long v) {{{
Float & Float::operator=(long v) {
set(PyFloat_FromDouble( static_cast<double>( v ) ), true );
return *this;
}
// }}}
// Float & Float::operator=(const Int & v) {{{
Float & Float::operator=(const Int & v) {
// Convert into long, then to double, then to Float
set(PyFloat_FromDouble( static_cast<double>( static_cast< long > ( v ) ) ), true );
return *this;
}
// }}}
// Float & Float::operator=(double v) {{{
Float & Float::operator=(double v) {
set(PyFloat_FromDouble(v),true);
return *this;
}
// }}}
// Float::operator double() const {{{
Float::operator double() const {
return PyFloat_AsDouble( ptr() );
}
// }}}
// bool Float::accepts(PyObject * pyobj) const {{{
bool Float::accepts(PyObject * pyobj) const {
return (pyobj != NULL) and PyFloat_Check(pyobj);
}
// }}}
}
syntax highlighted by Code2HTML, v. 0.9.1