gpt4 book ai didi

c++ - 在 C++ 中强制执行内存对齐

转载 作者:太空狗 更新时间:2023-10-29 23:53:30 25 4
gpt4 key购买 nike

我想设计一个内部使用 EIGEN 的 API。

基于 http://eigen.tuxfamily.org/dox/TopicPassingByValue.html ,如果一个类有一个 Eigen 对象作为成员,它不能通过值传递。

是否有任何直接的方式告诉编译器(例如 g++)我的对象不能按值传递?

最佳答案

您可以简单地使复制构造函数不可用。您可以通过使用 Boost 并从 boost::noncopyable 继承,或者通过将复制构造函数设为私有(private)来实现这一点:

struct Foo
{
private:
Foo(Foo const &) { }
};

或者在新的 C++ 中明确删除它:

struct Foo
{
Foo(Foo const &) = delete;
Foo(Foo &&) = delete;
};

您可能还应该通过对赋值运算符执行相同的操作来使您的类不可赋值(并且 boost::noncopyable 会为您处理这件事)。

关于c++ - 在 C++ 中强制执行内存对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10659818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com