Временное связывание со ссылкой на lvalue

У меня есть следующий код

string three()
{
    return "three";
}

void mutate(string& ref)
{
}

int main()
{
    mutate(three()); 
    return 0;
}

Вы можете видеть, что я прохожутри() вмутировать метод. Этот код хорошо компилируется. Насколько я понимаю, временные могутбыть назначенным неконстантным ссылкам. Если да, то как эта программа компилируется?

Какие-нибудь мысли?

Редактировать:

Компиляторы пробовали: VS 2008 и VS2010 Beta

Ответы на вопрос(5)

Ваш ответ на вопрос