语义 问答列表

我可以对从中移动的对象执行哪些操作?

作者:fredoverflow 提问时间:8/11/2011

该标准是否精确地定义了对象被移出后我可以对它做什么?我曾经认为,对于一个从中移动的对象,你所能做的就是破坏它,但这还不够。 例如,采用标准库中定义的函数模板:swap template <type...

了解 std::move 和 std::unique_ptr 中的所有权转让 C++

作者:Sami 提问时间:6/26/2023

我已经编写了两组函数,F1/test1 和 F2/test2,我正在尝试了解这些函数中 std::move 的行为和 std::unique_ptr 所有权转移的差异。代码如下: void F1(s...

只需添加什么都不做的析构函数会导致编译错误(围绕 std::move),为什么?

作者:javaLover 提问时间:12/6/2016

在我学习的过程中,我发现了一个奇怪的问题。std::move 如果我只添加一个对完美程序不做任何事情的析构函数,我会得到一个编译错误。 #include <iostream> using name...

移动语义:执行 std::move 时不执行构造函数和赋值

作者:Kevinkun 提问时间:7/23/2021

#include <iostream> #include <utility> #include <vector> class Node { public: int data; Node* pre...

std::move 是否保证 vector.data() 不会改变?

作者:SupAl 提问时间:9/12/2023

请考虑以下代码: #include <vector> #include <utility> #include <cstdint> #include <bit> template <typename...

为什么称为复制构造函数而不是移动构造函数?

作者:fizzbuzz 提问时间:6/29/2020

我有以下代码: #include <bits/stdc++.h> using namespace std; class A { public: A(const A& a) noexcept {...

编译器可以省略特定数据成员的副本吗?

作者:TwistedBlizzard 提问时间:8/30/2023

获取此代码: struct Bar { //has non-default copy-constructor Bar() = default; Bar(const Bar&) {} }; st...

为什么使用 Move 构造函数而不是复制?

作者:Lion's_Den 提问时间:4/2/2021

为什么调用移动构造函数而不是复制构造函数?当我删除移动构造函数时,则称为复制构造函数。 使用 : -fno-elide-constructors 以避免复制省略 #include <iostrea...

为什么 C++ 中的移动语义在函数签名 [duplicate] 中有右值引用

作者:D.J. Elkind 提问时间:9/12/2023

这个问题在这里已经有答案了: T&&(双与号)在C++11中是什么意思? (4 个答案) 什么是移动语义? (11 个回答) 2个月前关闭。 请考虑以下移动分配运算符: class MyClass...

std::move 和 std::shared_ptr 参数按值传递

作者:cppdev 提问时间:9/14/2023

请考虑以下代码: #include <iostream> #include <memory> class Test { public: Test(int t) : t(t) {} int...


共73条 当前第2页