Взятие адреса временного объекта

Унарные операторы §5.3.1, Раздел 3

Результатом унарного и оператора является указатель на свой операнд. Операнд должен быть lvalue или квалифицированным идентификатором.

То, что точно делает, "должно быть" средним в этом контексте? Это означает, что это - ошибка взять адрес временного файла? Я просто задавался вопросом, потому что g ++ только дает мне предупреждение, тогда как comeau отказывается компилировать следующую программу:

#include <string>

int main()
{
    &std::string("test");
}

g ++ предупреждение: taking address of temporary

ошибка comeau: expression must be an lvalue or a function designator

Кто-либо имеет компилятор Microsoft или другие компиляторы и может протестировать эту программу?

24
задан Dharman 18 August 2019 в 20:03
поделиться