Рассмотрим этот фрагмент кода С++:
struct Foo {
float value;
operator float& () {
return this->value;
}
};
int main() {
Foo foo;
foo=1.0f; //Doesn't compile, foo isn't implicitly converted to a float&
return 0;
}
Почему это не компилируется? Есть ли конкретная причина, по которой это не было включено в стандарт С++? Или эквивалент действительно существует, и я просто использую его неправильно?