Пытаясь понять, как работают ссылки на rvalue, я закончил с этим фрагментом кода:
int* iptr = nullptr;
int*&& irr = iptr;
Компиляция приведенного выше кода дает следующую ошибку:
error: ссылка rvalue на тип 'int *' не может связываться с lvalue типа 'int *'
Я понимаю, что это правильно, но почему следующий код, где я связываю использование void*
вместо int*
, компилируется без каких-либо проблем? Верно ли поведение во время выполнения, или я должен ожидать неопределенного поведения?
int* iptr = nullptr;
void*&& irr = iptr;