我一直在做一些STXXL的工作,我遇到了一些问题,地图继承从boost::不可复制.对于这个项目,我用下面的语句创建了几个映射:
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地图上遇到过这个问题?或者,在使用不可复制的对象时,有人有一些一般性的建议或最佳实践吗?
谢谢你们的帮助:)
发布于 2013-10-08 15:54:51
为了在这里添加一个正式的答案来接受,我的问题是,我有一些函数按值返回映射,还有一些函数参数通过值传递。一旦这个修好了,它就像一种魅力!因此,故事的寓意是,当使用继承自不可复制的STXXL版本时,确保STXXL对象的所有实例仅通过引用而不是通过值与您的函数一起使用。
https://stackoverflow.com/questions/19237684
复制相似问题