首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++沉思录里刻画的handle类,不能放在vector里

2012-09-03 
C++沉思录里描写的handle类,不能放在vector里?代码例子正常的使用这个handle类是可以的,但是,把handle放到

C++沉思录里描写的handle类,不能放在vector里?
代码例子

正常的使用这个handle类是可以的,但是,把handle放到vector里,运行vector的resize函数,就报错,是想用UseCount的operator=,但是私有,确实UseCount类设计的时候就不希望被赋值,所以故意私有

[解决办法]
放标准容器的类型必须满足一下条件(至少):
1.有默认构造函数
2.有拷贝构造函数
3.有=运算符
[解决办法]
template<class _InIt,
class _OutIt> inline
_OutIt _Move(_InIt _First, _InIt _Last,
_OutIt _Dest, _Nonscalar_ptr_iterator_tag)
{// move [_First, _Last) to [_Dest, ...), arbitrary iterators
for (; _First != _Last; ++_Dest, ++_First)
*_Dest = _STD move(*_First);
return (_Dest);
}
vector.resize的时候调用了这个,这个需要用operator,在handle类里写上operator=,就能用了。

热点排行