Есть ли у встроенных типов семантика перемещения?

Рассмотреть возможностьэто код:

#include <iostream>
using namespace std;

void Func(int&& i) {
    ++i;
}

int main() {
    int num = 1234;
    cout << "Before: " << num << endl;
    Func(std::move(num));
    cout << "After: " << num << endl;
}

Его вывод:

Before: 1234
After: 1235

Очевидно, чтоi изменяется внутриFunc, как это связано с параметромi после "преобразования" в ссылку на r-значениеstd::move.

Ну, моя точка зрения:

Перемещение объекта означает передачу права собственности на ресурсы из одного объекта в другой. Тем не менее, встроенные типыдержит нет ресурсов, потому что они сами являются ресурсами. Нет смысла переводить ресурсы, которыми они владеют. Как показано на примере,numЗначение изменено. Его ресурс, его личность - это то, что изменяется.

Есть ли у встроенных типов семантика перемещения?

Кроме того, встроенные объекты типа после того, как это перемещено (если это), хорошо определенное поведение?

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

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