0

我一直在用 STXXL 做一些工作,我遇到了从 boost::noncopyable 继承的地图的问题......对于这个项目,我使用以下语句创建了几个地图:

stxxl::map<int, mapData, CmpIntGreater, 4096, 4096> node_map((stxxl::unsigned_type)(4096 * 4), (stxxl::unsigned_type)(4096 * 3));

不用说,一旦我解决了这个问题,构造函数中的硬编码值将被替换,但无论如何,我都会收到错误:

C2248: 'boost::noncopyable_::noncopyable::noncopyable' : cannot access private member declared in class 'boost::noncopyable_::noncopyable'

有没有其他人在使用 STXXL 地图时遇到过这个问题?或者在使用不可复制对象时,是否有人有一些一般性建议或最佳实践?

感谢您的所有帮助:)

4

1 回答 1

0

只是在这里添加一个官方答案来接受,我的问题是我有一些函数按值返回映射,而一些函数参数按值传递。一旦解决了这个问题,它就像一个魅力!因此,故事的寓意是,当使用继承自 noncopyable 的 STXXL 版本时,请确保您的 STXXL 对象的所有实例仅通过引用而不是值与您的函数一起使用。

于 2013-10-08T15:54:51.423 回答