Я пытаюсь создать оболочку с плавающей точкой (которая также будет делать некоторые магические вещи в конструкторе).Неверные значения из операторского литья со ссылкой
Однако я нахожусь с довольно странными ошибками.
class Foo {
public:
Wrapper();
operator const float&() const { return m_bar; }
operator float&() { return m_bar; }
const float& Get() const { return m_bar; }
float& Get(){ return m_bar; }
private:
float m_bar;
};
, если я использую Get(), то я получить правильное значение, но если я просто использовать оператор приведения, то я получаю случайные значения.
Невозможно ли сделать ссылку на член?
Это очевидно, но как вы его используете? Любые задействованные временные лица? –
float bar = (float) foo; работает для меня отлично, используя ваш класс (я только что сделал m_bar public, чтобы иметь возможность установить его) – SinistraD
Foo bar = 5; Add2dText (SomePos, white, "Bar:% f", bar); –