10 #include <gnumber.hpp>
14 class GFloat :
public GNumber_<float> {
16 using Super = GNumber_<float> ;
20 GFloat(
float value,
float min,
float max = highest());
22 GFloat(GString
const& value);
25 GFloat* toFloat()
override {
return this;}
28 auto operator~() {
return GNumPropRef_<GFloat>(*this);}
33 GFloat& setRange(
float min,
float max) {Super::setRange(min,max);
return *
this;}
34 GFloat& setRangeF(
float min,
float max)
override {Super::setRange(min,max);
return *
this;}
36 GFloat& operator=(
float value) {set(value,
false);
return *
this;}
37 GFloat& operator=(GFloat
const& value) {set(value,
false);
return *
this;}
38 GFloat& operator=(GString
const& value) {set(value);
return *
this;}
40 GFloat& operator++() {increase();
return *
this;}
41 GFloat& operator++(
int) {increase();
return *
this;}
42 GFloat& operator--() {increase();
return *
this;}
43 GFloat& operator--(
int) {increase();
return *
this;}
44 GFloat& operator+=(
float delta) {increase(delta);
return *
this;}
45 GFloat& operator-=(
float delta) {increase(-delta);
return *
this;}
47 using Super::increase;
48 void increase()
override {increase(+1.f);}
49 void decrease()
override {increase(-1.f);}
51 using GType = GPropType_<GFloat,GProp>;
53 GType& type()
const override {
return Type();}
59 inline GFloat& Float(
float value) {
return *
new GFloat(value);}
60 GFloat& Float(
float value,
float min,
float max = GFloat::highest());
61 GFloat& Float(GString
const& value);