我想设计一个内部使用EIGEN的API.
基于http://eigen.tuxfamily.org/dox/TopicPassingByValue.html,如果类具有Eigen对象作为成员,则不能通过值传递.
是否有任何直接的方式来告诉编译器(例如g ++)我的对象不能通过值传递?
您只需使复制构造函数不可用即可.您可以通过使用Boost并继承boost::noncopyable或通过将复制构造函数设为私有来实现此目的:
struct Foo
{
private:
Foo(Foo const &) { }
};
Run Code Online (Sandbox Code Playgroud)
或者在新的C++中明确删除它:
struct Foo
{
Foo(Foo const &) = delete;
Foo(Foo &&) = delete;
};
Run Code Online (Sandbox Code Playgroud)
您可能也应该通过对赋值运算符执行相同操作来使您的类无法分配(并boost::noncopyable为您处理此问题).
| 归档时间: |
|
| 查看次数: |
619 次 |
| 最近记录: |