如何解决在所有类值副本上“以防万一”使用 std::move 是否是代码异味?
我有一个获取“配置”结构的函数,目前它只是一个包含数组的结构
class ShmConfig {
public:
std::int64_t shellShmSize[ShellId_Count];
};
我用 std::move
将它传递给函数中的另一个函数,因为我希望复制它的所有代码位置都与它可以有效复制的事实无关。
m_allocator.setup(std::move(config));
如果稍后可以更有效地移动它(可能是因为我添加了 std::string
),它会自动变得更高效。但是clang-tidy
建议不要这样做
std::move
变量 'config
' 的普通可复制类型 'ShmConfig
' 无效;删除std::move()
我不明白为什么这是可取的。用 move
包装它有什么缺点吗?是否只有在定期运行 clang-tidy 时才能遵循这些建议,以便在稍后添加数据成员时发现 std::move
有意义的情况?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。