unique_ptr简谈
看到文章里的同学留言说到unique_ptr,这两天看了一下cplusplus提供的reference才知道这个东西是c++11的新特性,对c++11的新特性不是很了解,花时间了解了下unique_ptr,之前有写过auto_ptr的分析,这里就和auto_ptr对比下来看。
- unique_ptr的构造函数与auto_ptr一样,采用explicit声明,防止复制/拷贝时不必要的类型转换,在定义对象时必须显示调用初始化式,不能使用赋值操作符进行隐式转换。
- unique_ptr同样要重复释放指针的可能:
int _tmain(int argc, _TCHAR* argv[])
{
int *p = new int();
unique_ptr<int> up(p);
unique_ptr<int> up2(p); return ;
}up析构时,已经将p指针delete,而up2析构会重复delete,出现未定义操作。auto_ptr析构函数只是单纯的delete掉raw指针,而unique_ptr则可以定制自己的deleter,来指定unique_ptr析构时需要做哪些工作。默认情况下unique_ptr使用的deleter如下:
void operator()(_Ty *_Ptr) const _NOEXCEPT
{ // delete a pointer
static_assert( < sizeof (_Ty),
"can't delete an incomplete type");
delete _Ptr;
}可以看出这是一个函数对象,功能很简单,delete raw指针。开发人员可以定制自己的deleter,一个很简单的例子:
struct my_deleter
{
void operator()(int *p)
{
cout<<"delete point, value = "<<*p<<endl;
delete p;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
unique_ptr<int, my_deleter> up(new int(), my_deleter()); return ;
} - auto_ptr只能托管单独的指针,而不能用于堆上动态分配的数组。而unique_ptr则可以用于数组:
struct Item
{
Item(){cout<<"Construct "<<endl;}
~Item() {cout<<"Destruct"<<endl;}
};
int _tmain(int argc, _TCHAR* argv[])
{
Item *par = new Item[];
unique_ptr<Item[]> uparr(par); return ;
}在vs2012中运行上面的代码结果如下,根据输出中五个"Destruct"可以看出uparr对象在析构时调用了delete[]:aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhgAAAEBCAIAAAC110uJAAAgAElEQVR4nO2dSXMc6Z2f80s4whG++GJH2GF/C2lEtNhqaj7AnHxw2AfP9GgkNTvU7HGL0snRVmusJgmAxEZiI0hiRy0Aai+ste/7vm8gQQAk2CEf3jf3rKwsoACSPb8nfoGoSmRlFcDufPB/V+Y/D/23f/dv/834yP3jZqme8JQC9lLAXvLbSn4rSVEUi0J8XKxFH3um8IhP+bUFn7n7pcwFxXjNBa857zXlvaa8RxyvKe+lpxUFVy75raWAtRywloO2Co29ErJXQvZql1SE4V9lq4Rs1ZCtGrKJDgZtlaCVJkBiqQQsZRK/mY2JfvWZyr7tsm+75NsuebeLnq2iZ7Po3iy4jQWXoeDSFw71hcON/MFG/mAjv7+R31/P7a/l9tZye6u5vdXc7gpJdnc5u7uc3VnO7ixld5ayzqWMczHjXMw4X2QcJM8zjucZ+/O0/RmNbSFte5a2kQcLKZqnJGnrPJeUdS5lUUjSPJs0z9CYZhKm6fj2dGz7cXTrcXTzcXRzKmKcChsmw4bJsGEibJgIG8bD+vGQfjyoGwvqxoIbY4H1h4H1h4H10cD6aGBtNLA24l8b8a+NeFdHvCsPSDzLDzzLDzxLXO57lu57lu65uSzecynke9cLmkOav3A5eN41hy/+Qs53LX7vWrznWb7vXRn2rY0E1h8GNx6F9eMRw0TUOBnbnIpvPY5vPU5sP0lsP0mapgebhOmJpmxfOluP41tTsc2p2OZk1DgRIf9GukfBjYf+tVHf6rB35YF3+YFn+b5n6X733/Y91+I996LgH0UQ9p9MNcv3Pcv3vfKsPPBdKP7V4W4JrPWVkcDaSFAl6yPB9VFxHoqyoZwQzSNpdCRjCtGPhfRjYf24IBNh/QT7/xfJZNgwGTFMRoyTEeMUn82pyOZU1DgVNZL/PR9HN59EN59ENp9EtwTZno5uT0e3Z2LbMzHTTMw0FzfPxcxzMfN83PI0aV1IWp+l7M9T9udpx4u0YzHjXMo4l7K7y9ndlezuSm5vNbe/xvyX//jvx0budYrxcsBWIvHzKUp1omgR3jT0hQFr0W8joWaiF7drTzFgE8UvSsFnFcRS8FkKfitJ0W8tBmylgI18LQfs5aCDpBJyVkLOashZDe1Uw85a2FkL70hSDTur4R0aerIwjmrIIXvqqIYc1aCjGrSTVIL2SsAmDq8ZzjEln6nkMxGjlLxbRe9m0WMsug1Fl6HoMhRc+vyhPn+go1I52Mjvr1OviNSymttdIf+o2R2BWnaWMjuLNM4XonCmcT6nvuHzLGMXZiFjX8jYnmVszzK2hYxtIW17SpKyPk1a5pOWuaR5Lm6ajZP/ELemo1tPIpuPI5uPI8bH5D/osIFkMmyYCOnGiVGCG4+CGw/96w/966P+tVH/2qhvdcS7MuxdHvZSkUhvPb1FInXJX/p3yT330n3P8gPvyrB/bTSw/jCkG5O6ZPtKXHJ9Itl+zLkkapyMGohLxkK6R4H1h/61EeIScqN3X8glHs0uURDJ8v33LZKLuUSTUUKiaDaKNp1EFHVinIoYRTqJbD6JSHRCXUJ0MhszzcZMczHzXNwyH7c8pTqxsS5xLmacS/RWs7uc3VvN7a0y//U//YfjZrkctJUDNpFLApxIiFSU6hIf5w8rfQm5dwftpaC9FHSUgo5y0FkOcdkph0UphXdKIWc5vFMOiVIKOUUJSuIoBbgI9BN08GFfWw45K+GdSmSnEt6tRvjUIru1KMlePbJXj+7Vo3vskd1apN/skFRJwk5RqGwUqpxy0FoOWMp+S9lnKfvMJZ+JSKXk2Sp6jEWPsejm1VLkSxZd4VBXONAVxI7J76/n99fynGMEFQxbx0iyLMhShjVQdmcpu7NI41zMOl9knYtZ52LGuZh2vqBxPE87nqftz9O2ZynbQtK6kLQ8TVjm45b5uGUubpqLmeZiptmYaTa6PRvdmo5uTUe2nkQ2n4QNUyHDZEg/EdSPB3RjgY1HgY1H/rWHvrVR38qIb2XYuzLsYf8iFkdUlCjd3b7ndNKXSA6e/4UtYmQu2RC4ZFPsEtNgXfIkqdElg9BJfOsxW5RMRg0TEf14WDcW2ngUWB/1U6M/8Ajqkm4iuVRd0kUkpDAdoE6uUST9VicynejUdCJ2Sd864YwS4XXyWK4T4pK4eTZuno+b5+OW+YR1IWlbSNqeJW3PU3axS3aWc3urzKMHf2kkPeWgjaQkrkuK0qYtViRsISJQiL0ctJeD9nLIUSH3bpLIbiWyV4nsVaJ71ei+JJXofiWyV43sC0PPV005TLIrSmSPRHJyNbpfI4kd1GIHtdhhPX5Yjx/WE4eNhIs+jh/WE4f1xCH/lM+BMDWafXokdlCP7ZPUSKJ7okT2FJVTi+zUws4aq5lKyF4J2itBW9lvLftpmxgtWby8XUqerZJns+TZLLk3i26jOKxpSIhsDnWFww2+rexA2Gi2kd8nT9dz+zRURftr+T2SVZLc3hqb1ezeanZvhYa1UWZnOe1cSjsXU47FpP1F0vaczbOEdSFhfRq3PI2b52PmuahpNrw1Hd58EjI+Dhkmg/qJ4MZ4YGMssP7Iv/bQt0pcwreu9FmXiEqTfhq4eJHwLlkd9q+NBjceEZdIi5IBi+T6G7gexzenYptTMeNkxDAR1o+HdGOCBi72X+HqRKKmkwuKRKU0uYBOLuqSUS0uubBOlI2iphPyWFqdRARRauyajZtm4+Y5opOE5WnCupC0kWauF2nHYtq5mN2hOmFOOrVyyFEO2hVFIq5LuP4PQUMWabAK2stBR5nzR2S3Gt2rEFvEDqqxw1r8sBZ31RKuWsItSpzEJXggS4zLIZdql1TYB/TMOH3resJVT7jrCXc96W4kPY2kt5H0NiVJSY542K98GjTuRtLdFIccbCRcbA4bicNGnKYeP6zHDtjsC9yzV4sR3+zWIlzbmrMaclSJV2ixaC0HrGybGNv14uNiKlPZ0FYyYYqeLdoTQ+LmYiy6jQU+BpKiy1B06bkIzCQPdVX+cCO3v5HdWyfJ7K5ldlczOytpEudyyrmUdCwm7S/itudx67OoeT5qmotszYQ3p8PGxyH9ZFA3EdwYD6yTu9iIb2XYt3KxBq4LikTSWcIVJb5VrrNkLGwYv+rOEq0iGVAbF61LjLQuIQ1cwXW+s8SjvbPkwm1c1yWSC3SWXEIkstLkAtVJf41d3QsU4yR1iVgnEeNj0o+ioBOu14RWJ3PEJUnrQtL2LMl2mZD+kszOEvP29BWtJNiihG/gCnTrKbEVRYWIoxxyVkI7lfBuJbJXje6x8nDV4u5awlNPeOpJbz3lbaR8KqmnvF2TFKXGJeHpGuFLUt4Gja+Z8jXTvmba38z4Wxl/KxPoEr8kzTSJTxBvK+1tpX0t8jTllcXDR2idhLuZYJUTdzWERU9sv85XMzu8Wmh/jGAsQJBWMJWgsANG3OHvF/T2E98IUvKy8ZnEpc922btd5rUkNBM9UvRu8XFvETMV3JsFlzHvMuQPDbkDfe5Anz3QZQ902f2N7P56encttbOadK4kHUsJ+2LM8ixmfhrdnotszYSNj0OGqZB+Iqgb82+I6hIll/TbwCVu47pYA9f6w5DuUUg/pthZMvA2rusSiaTjfZJ2lmyIOktIaaj6C79cZ0m3XvflATdw+VeHA/25ZKRHG9e6Fp1coDrpVqBcRicTEcNEhKtUDJMR41RY2jMv0cl0dHsmuj0TZV2SsLAusS4krQspB99lIhSJyCVlacc7bcgq+m3FgK3kt4ssEiY9EPvV6EEtdliLuWpxN/FHI+VrpP2NdKCZCTQzwWY21MyGmhl5gj2SDpA0uqTOx88d5F5F3z0TbGZDrWyoTZKTJ9zOhaUHs4oJspE8DbQzNNRJab8gPl48EvfQiocKhm9Vi0nsImoiqyr0yjiqYYdoFABrIDaC0WvS4Wdcz003P/Ep86MGuJhLPnPJZyr6TAWvKe/ZJsm5t3IuY/bQkD3Qpfc20rtrKedK0rEUtz6PWRaiprnI9kx480nYOBXSTwZ144GNR1xd4l1RKEo0uERtEFevokTW8b7ateOduyMPuo3rWosS6hIjO4hLNxYknSXUJcNsA5daXdK9gUtTG1e3zpKPoYGrT5dorU4G3t41EdF308mkik7Y0VyzMROpS+apSGzP0rQuWZSIRFaXcF3obFHCj78iQ6FoVza1SDVOGq+89aS3kSL+oPfuVi7cykXa+Wg7J00rF9GQcCsXbiomK0yITbiZDbfId3PhFjVEpJ2LtPORdj7aLkQ7F0s+0slHOgU2+TA9ko90cmESJSEFBbIJtjNBzjescgTljkAtzYS7kXDXE6660C7xA6WGsr16bE/aQ8MNH5COINipRXZrYZId+WCBWq/IBxRUQo4KHSBHx+kVA7ZiwFrwWQpeU967nXdvZQ+NmX19em8jtbOWdCwnbC/iloWoaT6yPRuhLpkI6sb86498qyO+1W4NXLIblqpIXJpFImzg4lxCGrjknSWxqxwN/F5cEjWSP11pZwnpeGdLQ76B60oGcV1Lr/vgG7i0NnP14RJtjV0X1Yme0wk1StgwGTZOhY2T3XQS25om1QnRCdvG9VToEjWRfPvd932FWKSe9NZTPloQZILNbLiVi7TykXY+2tKSXNdvNXORZi5i/ophvnpBHsvC2YU9ovstw3xhzkWanJDy0VY+2mbTISlEO8VYpxDrFKKdQqxTjHWKigqRhDgpQh5zIQfbvE5oWrlQKxdqZUOtbJAmw4WWL7T1LEVd0kh5GylPI0Hi4lrDFIcDsEMJSIe/MHK7kCEAolRJs2RENrZNlLXpG8wvHqxxR6qiqoiMsHCWw85yiBtBZydtoVQn7q3s4Wb2QJ/Z30jvriUdSwKXzIQ3n4QMU0HdeGBjzL8ubOBSvPv0Ekn3zpKeOuGauYQuIZ0lIf1YmC1KrnQQ13soSmgDl6TjXTT8wd1/3/t7GQ3sW3ngWx3IIK5eDVxaRfIhVCd821eEN8oknftlnOR1wved0IHCse1p0mUSN88JmrmepmwLaftz5u3psVgkvE6+/e57fzTTLf/9iz8Jv3773fe0R4S0ZWU4i7y4y3DcthbibZrluwxzVx9rFWgsdxjm5nA4T5+GJ4YYZmjOxZ6gv80wQ3OHMcsdhrmz1MrHWvkY7xguOUHy0ZbuC4b5wpKPsifHWvlYu0DToYl3ijRHgnT4xDqFeHRiiLk5HOVfJUw333BqCdOIixWBWkICtQSanFGEUhF29a/8iv2V/qM54apTtUx/w/+mp+tx3fQQ89mwTlC7yOuYg3qMNVCUHXUmCF/uREk2poeYz4Y32Kf7teheVZrdSmS3Et6tsKO6S0FHMWAv+m1F1iW5Q2NmX5feW0/trCYdS3Eb28a1xfW9j/s3HgluYbQlvU+XqDVwaZ9Z4lq6p97AReuS9zWI64oauPTsaGBxZ8nFBnFpd4lcJxcXyUA7SwZRlFxdgaI8mVFJJ+NCnXAFCj+JWKgTvjrhmrmmY9szcTPXZTKftC4kbQtEJA5Fl3z73fd7B4ca8+1334vKkUygmQm19u/fYphbE/ZWPtouxNr628ydlXYh0S4k2oV4ZGKIubPc5tSivy00jfUOwzDMXT19GpkYYm6OhAvxFhfqEmFkdQwVCT2hTS3CviMvj8RRKUG/loSP40clTi3Lf2SGnrrjR4X4USHe4dNFKqxO2lyNko+085HI+A3m5v1ITiqVdlZgFFKjpP0t0sOf4ntTGklPIzn3+0/+JZh0N5KGmU8Y5svZRsLdSBhmPvnpjNPVSLgazj9/xjDfLB/Wlz9nhr4Lqg9ljokTl0asHx0VSWyfN5DQPdzYbjL2OrxXCe9Sl5C6xGvOe7Zzbr4oSTlpA1fMPB/ZnuWKEj/tKaEi8SqL5HKzFLUO4qKdJZIGrh/pLMVJfpaiYgNXr1mKlxrBpVyXvPcGLo1FSb8uuSadKBhFJ+qZj/D98910wpYmm0+ixCWm2bhpNkG7TJ4yb0+P2XZtsU4C9m+/+57RzLfffV+jo7N8jbS/mQk2c5a5m8ytCRu1SCHeLiY6xUSbi3v0FvPJnFv4lLlrSLQL8XZx+S7zya1PGebrlXYx0S465z5lRNZRioJadLcZ5rYlH2sV4iKFEAfQgiPBhTeK8EExQVxi/5phvl4WFyvkOqQ1rItUxA1fkYkbzM0HEVl1IujY5xq+yEgBdsCYsLGLLU2Coz9lPvlzMOFu8HHVE/rpT5jPRvX1xMw3DPPNCleyXDIHtMoZ0bEqot8SuYfWNwfVKDsrKLxTDjmLATtZO4dt4DJk9nWk4z3hWIxbySCu2cjWNO0p2RgLrD/0rY34hCJRKUoWVQdx9V+UyAdxiRq4dGNhw3hE1MD1JLH9JPFeekoGOxpY1sAV4Ncd4Fxy76rqkkHPUvwAprtfkU4uPJlxLKwbC+ukOmGHe43zHSoinYh74E0zcdNswjybMM9JRCKyyIVF0kj7GplAMxtsHty/xdyYO4xSkRTjnWKiXUq2iyt3iTCKzrlPmVuTTlYtgqeGL5lPRyPkazEheEnCeocahdQoc3fYT3BnmS1Wlu+KPtptSyHeohUPy9fLnWK8bfiSYb60FROdYiI69QnDfGkvJY5KidjUJ8yno7GS8+mn7PmfjsZKiSP+/HinGO+4R26x3781abd9zTCf8m1ftjsMc2ep4xrmz5mwWe/wH+HWhLWdj7R1v+WO3NWF2rlQZPwG8/N7c1+RYz+b2w+Yf0dP+OzhVpMbypz0NpLGmU+Yz0aNfJMXdcns7xnm9yvuRsJt/pJhvpwRzG5xmb7k3vBzExXDd7RNbOi7IN8+9pNpB/VEcOQnwl/oZyM6sWDETWqxw+3bDMN8vh07qMU2Hg8xzI3/6w3vlIITX3On/Wo45zJmD0jr1krSsZSwPY+Zn/KtW4bJoI5OK/GvDnuXH3A3lP4buL5X6Xjvb5aiYBmukE62DBftKRlw69Y1NnAJZimKl04JipZOuWBPSR9FSfe+9wEXJdc9S7FPnQy8QBFVJ1KdhPQTIf0E/a6CTqhL2Jau6ej2NBkWnLTMSyoSh6JI/vrXv/71r38V3kokTxmG+fa77+sJdz3lpR0k2WBL91uG+cJaIN0S8XYx3ikJRZJsF5NUGMVku5hsF5ORyU/I08jkJ8zXK3zJYviSYb60FhPtYsL6NcN8zYqEYW5NONhmsaE5F+16YaVin7vJ0IqEP4Gec2vC0S4u32WYPxjinaKDOOOPxuRR0fn0U+aXU05WJ8LSxPH0U+aPBtLS5Xj6KfPLSccRKUSKsY57+JcM80d9rFOIdVzDt5iheZdt/iZza8LWoX37kTZfkUTauXBb91uG+a2V1CW63zLMbyzZUHjsBsMwt8bMrUzQ8juGYZhbY9vNtD/06G8Y5p/MxCKr/0R+7b9f4SdIcjF/ybBlCmnm+kczGfSV0E8PMczQn4NxUqO46nH99BDDMD+ddhzW4zPfMOQxe/z2DGuRn8wQqSx/LhPJzDcM880yudr0N6RJLaabHmJ+MayrLX3OMJ9vRfYq4al/ZpivF+wlv7XgfXiHYb6aMWYP9Fw3ibJINh7510b9qyPe5eHLiqR7A5fmWYoaluH6EcxSpNPdJ0XLcG2wLhEUJZ7rn6U46M6SD0wkA61ONHWfEJfwOglRnYx30Qk7MX6LL03ippm4eZZ5e3pMRm1WxBbhRMI5gzwQftUgkhtzLpFIOqVkp0S10S6KpVJMtt2jt5gvrcWduU9J/UEfUK/wIlnhKpKIqOuedrRYCnHaRc82bZEuerabnX+t9Q7DfL3ccY/cYr60G24zX68cFVf+yHzy1J04co/+kmEY8pht3YpNDjGfjsS4xwwj7IGnVUghFp0YYu4sdgrR6AQ550GE6yOZ4PtIrF9Jfos35vZD4bEbzM/vhUnr1vqvGebXZtLAtfeXz5i/md0lDVyeRspDKhKG+ZVZYJHg6E8Z5ldmvgRhm7nirrrjz59RT3DhmqoO6/FD020iD1c97gqO/IQZ+i4oPqEufXpYX/5Hyc9Av2v/7hekrLEfVKP7lRd/Lznt5p/nsgf6jEAkcWF/u0QkKw/6KkoGOEuRHw28KHWJqLNkcyq2NfXjGQ0sXoYrxM4soQ1cwlmK3UVyyQau65ulONhBXBfsLLnq6kSxQHnEioQ3SojVSVhZJ3QaY5Rd85F0v7MiCTkqks52mUgkFYnk+LfffV9PeBrCpq3ci7sM6SNhRVIUiiQhEoOgdeuuYeUuW38QhVi/pu1amkUi7SPhx3oVYi362uEI6f9nbs9NDDFfL3eKy39gbtsMt5lPR6JcFwhtv7pt458OzbvjXI8IVcWdpU4h1tF/wTBf2AqLf2CYP+iiXCESmbjBMAxz54Wgsz3UzoWsXzHMV8/b4jHB4bGfMT+/F84GWplAc42IxC8RSTPJDuJy/stnzE9nnLRRi61FqEXI7BNWCYd1x3efCRqs5GIw3SbDvdjmLE0i+ZxhPjfJO/NjpL2LiGSv8uLvGeZ/GQOC/naXMXugy+ytp9mmLQWRsE1bPrLCvJpItIzgunex0cCSdebd5E9jYWeJnnaWCIuSK2jjuq4GLn4QF7d0yrh46RTpzJL+RXKpzpLBD+L6UDpLerlkwN0n9GAXnZCmMGWdRDanoptUJ7HtaU4k3JIbolFb3SoSuWCISMSd7aHwxA2GYW5N2GhHt+FL5uuVjqDDg+1jp9ognrj16Se8IfS3mZtDt/hWqbi4j2Q4QouMJTqYOL90l44Ti7Xy9tmbDMN8Yc5Hm7ovGIa5qyMjgBfJOe18rJ1fIh0qd/WxdsE+f5NhGObWhKNTiEUnb8+7451CrOMaucUMzbv4suPWhL1TsM/fGY4Wop18NDoxxNYc1rmbzK2bN5ib96P5SDtvmfuKFh+R8RvMzXsRtgskQibDb/yGYZi7G8FWNtja//7W7xZamUB47GfMz78PkSqEiIQM2dr9f58xfzOz42ms/OqzUUMj4a4n3KYvGYb5R1PCVY+7TLcZ2Rgtrg+D+EM3PcQwQ38Kxg/qsQPT7c9NMdEQYSIS0lseGP4JM/SnQPwgMPIThvl8m4zgIk1bwzriiW+WWGHcnmbHdJGuEdq0FRj+CcP8w1ZkrxKe/GeGYX49VvRbC97nEz/9H7pDIpK1tHMlaV8kIolRkfCd7f61EblILlqU3FMpSi7QwMV2ltCGAvksxYG75D10vBu5jndpZ4lkz5L+Z7xfd6/7YAdxXb1ILlid9N99Qo8LXRLSjYV0nEvkOpmM0GmMU5HNx7GtJwKRhOyVkHAeiVofidAr5AFt2mJF0sgEmtlQKxtuHTzgepuZT0f4nnN9gh1A5Zi7yQ/zJV3itOeDLTWYm8Ns5UFEstQmE01uDofpSN/Fu9QTZMgv5fdffcFNSAyN3+CbX8at3Jx5yx2GzDVp56ORiSGGGZp3RTuFWKew+Af2/FsTNjIEq52PtnVfMDeHI+QB5cbcAZ2BGBm/wTDMrXELHZGl+w1/zn6olQ229u+RX8itMTPVBuXXlrS/RfpCfv6XEJlEsvpPpF+kmfI2dv7lM+anMzseWnlQSDVAb/FCfjGs4wb1bt9mfjG8UYvt12Ib00PcCRu16Mb0EHmwX4vub3/BMF88IY+pSMQvYYb+4Rt6/pNvGOabxf1adL9m+9Mv2O9/s7hPrskM/SkQ3a9FN54MMcyNb/3hnbL5/3BjF+7MbmYPDVky/HdnOcmN2jLNRramuXYtbhIDuQt4NdQlmkYDd6tLeomEdL/LO0uCukehLkunDNYl1ywS8f5XE2E9aeCidQk3IJj7nQ9YJGo6ee9FSa/OksHrpL/uk37au6THBS7hu+hlOpkMc6sLbz4WNG2xSwFKKhKNkAmJfOuWaFp7lExrlwzA5aYiUiWQp11nh3SZKUInvXNRmuielUW8yEqLJtLK00n4bN84PwuEnbIebudf3GWYuzpuvjoJO7Vw4zcM8xsLN4Q3K527LpjBLl4FMsVFuvijeFCWYCBvTLSisGxCuyCL/8Aw/7DdffWUqijyOYaiSFdeYbd14cJfisyQD+9UQs5KyFEK2Eo+S8G7nXdt5g71mb2N9O5qyrmUtL+IWxdi5vno9kxk80lIPxnUjXEdJJxIlOuS5S4i0TaIS/syXCozS4Qd71xRcjWjga+9s4SbpcjuWSJehosuYKM+iOuDWhu423T3C8xSHNDSKdfWfaKyFuQjuU7EzV+8S0LciGF2VnzEOCUWiah16wIicZGipJH0NVP+Ju+ScK8lUhbvMkNzB1pW3Iq05CujyD2RDTczYbIcZCMT7JYm+5WuJsmuKcmKQSiJcCsXbmWJLYLhsZ8xXz1TWuNk4fcM89kjUzPjb9K1syQLBisvEiyYte5piCeFsGs4uoTykKx9Il/ahA23eMnqkxvM/37B7vwoXylLmp3u0fhC/iCxSCVoK/ktRa+p4N7Ku4xsT/tK0rGYsD2LW8STSHRjbAeJXCTqbVz3LjWIq/e6KZKlUx74Vkf86/JluAQzSz7eWYpboo73CN/x/jCwJpylKFoeWLtLPrRe96uZpThwkVyRTnppRqSTsZBgjeGIcVLY2e6QdJP0vdZW9IDu/JH0kDXbuUV/uyzaGGmL12RUCb8Co0LUFg9WXCRYeES8QnCgmQkI9BBsZwLtLPWEcKVFwWrzdAo6ne3xu3lukflmWiwMfncTwS4mYmGwneRKc9HpuiZ7dWFNENlVWD+x6xrAfCrqCYqjdI7KxaXXD9orAWvJbylRixho7wi1yPO45WnMPBvdng4bH4cNkyH9ONuEQjpIhiU3AukIrl6zFFV63RX6S3q55EDgErLBu3+NW4aLb+C6ykFc77eBa5zdlHfUp7SkY1+DuC61DNf773XXMhr46lwy2O6ThyGdei99V51EDBNEJE65S7i6hCwpz25SYi0FbKUg2QjdTpeRDwuXkd+vxQ5oadKYxWAAABppSURBVJLw1JMehWXk5evGC+/mXdJt9fhG2t9I++spH5+kJOwuJuINS+rCJEm85Cvd8yrlo7tdyXcZke525ebandhFFfkGqEb8oCH1wYFg9ao9SZT3UuQXincIdlQki73bKsJtr6RLu4t3JekZfrMsCxv2iNaLSN+U7B9c9GwVXMb8oT67v5HZXU3vLKcci0nbs7jlacw0G92ejmw9jhgnw/qJINt+EqBt8dK7gKQo8V54ScdLz1JkG7hUNnj/2Bu4nihu8E6XTpHOUlQfMveRLJ3ycTRwDar75KHIJevSg0Gah110QmcyCpu2FEXC66Qkjb0UtIn3RtytRHbJrohUJ3E3ZxSlja3oJG351lWC0Ls8KwC3QAbynRZFeyxWScjOidGDbqmyX2sx+pVdcorc/Q9r4vWp6jHBJlRki0OFFXbJnvA7dHMqurEumxC3UZVosxDpdlVUEjbBFiDsLrw+s2Bnqu0St8eUZ0uwASK/DeJFc+GXyzZhdBkKh7rcwUZufz27u5J2LqfsL3iLbD2JbD4OGyfDBn7KQmBtlMyAUxCJvLPkYiIZ1CzFFTIauMsyXFdSl2ieojgInShu8C5q4OprluKgB3ENti4Z8OZX1ySSLtVJf+1dD0PrbBR08rCLTsZD+nG5SEQuoToJSETC1yWloHCrXUcl7OS22q1G92vk7qy41a58Y13BTrrdd9U9EDxgEyURb+pOItrafadM16N1lkPOEvugHHaWQzv0u2Fnmd1tvhreqYZ3q+GdKtm3g90Kl99rXdSOxG7IERJuXGgrB2xlukOUUumgUAqwOxh6TWV2p0J2s0JWFWTfXPdm0W0UbILL7tB+oCscbBQONgoH6yR59exrjuy1ha7Z4MJuCL+W21vN7q5kdpYyjsWU/XnS+jRuno+bZqJb0xHjFGnRCukeBXUPg6xF/Kt07K9i+p2l2F8DV18zS2TrzAsauK5wz5L3MBp4k1sbeDykeyRYhks6GrivBi6tg7i695e8184SjQOCr0cnl2zveqioE04kSi55FNJJRBKySy1CZ7lLGrhYl4ge2OkiKyHR5u2V8F4lsluJ7FWie1VuadjofjVCsleNiATAZpeEdYAkO3w4H4Sc7AYYbAIkdpKi30YWoC36rQUfDbt5sIX9ain5LfwuXn5rKWAVbJluLQesFb+14rcKmo/YBhy6P6CZ3bZWtn26h2Sz5NksuY0kgr/iDXwEu6azqmB3Rz/YYLOe318jN+jc3kpudyW3u5wl2VnO7iz1iFMxi0oRn9PzyjTLXDI7ixnnYsb5ImN/nrI/S9kWUpb5hHkuvj0d3XoS3ZyKGCZC7PTp4MZocJ23iIpIfH3OUux7NLBml7jJOvPszJKgfBmuq5lZcp0iSWwrNHDJNni/eFFyyVmK71sk1z+5ZPBGYbUxKnLJ+sMQ/6pHovMFdQlzLhKJrGkrIIysLvHTXfDoY1KdBGycUUohB3eXL4eEf/jTlEJOQfitkGgC8thKAVuRbNTI7gEs2k/eZyn4LAUvF3PBay54zAUP3fk159nOubdz7q2ceyvn3mQfbOXdmzkPebBVcG8VPDRFevffLnq2Sp5tIoOiUAkeY9FjLHoMvAxchgLJob5wKNJA4VAn+mud/3t/jWZvLb+3SpIj2V2RRaAK52LGuZhxvMg4nmfszzP2hbR9IW1bSNuedo31clG5sjTkkyykbE9Ttqcp63zKOp+yziXMswnTdHz7SWzzcXRzkuzHF9KNhTbIf+sjgfWRAGsRdZdIRTLopVMGvwzXoDe/us7lgUUNXOymvHSDd76B6+J7lnxQsxT7X4brAxTJ5XQidkmo2/m6RyHdI0lFIp9NIi1KeJHwd3C6o2rRb6V39oC1SLdZtbE+YLtVBOHOKQasfPwWkoJPHjNJ3muihvCaSPIk3A7hVBKbOfdmzrWZcxmzLmPWZcgcGjIHXPSZfX3mQJTsgT67r88e6LMH+tyhIXeozx3q84eG/CERA/v1UJ8/1BUOdPlDXf5wg68S9jdy+1xLDqkVVrO7q9m9lezeSlYgA7ZukJQOiySZncWM84VSnmccbOzPM/ZnGduzjG0hbX2ats6nrXNpy1zSMpu0zCbNs0nzjDQmebTfswSvEl821TWzXJLmmYRpmiS+9SS+NRXf4paYHSP3o9D6aGB9NLA2wv3PqcUlWuoSTUunXHSWorCBS2EZLuPEB7H51QAHcW3yM0skGynyy3BdnUjUdDLgzpKrGcT1XlzSxShqOhkNrZMoliajkvNlFUnIUQnJl5S3SVu3BI0/XKNQ0Wcp+ngTkDaios9a9AnO4T1hFsRU8JlYK2wTH6jFvU1KBxJqDtcml+yhIXtoyB6Q6Kkz9nWZfV16byO9t5HeW0/vrqd211O7a6ndtfTuWmpnNb27lt6lXzO7a5m9tczuWnZvLbu3lmX1kN1by+2tsw1Ka7n9VdqytLeSFbUsLZPmowypGFgxZIkPHC9oDSFUgv1Zxv4sTcL+LS+IpDKYT1lI6G06SW7T5P92SbYUM9VnBK+Vv8X244R6+HecjG9Oxo2TMeNEzDAe0Y+F9Y/I4rLB9ZEg23X5UYhEsqSje4mOBhZtyqu0DNfAXfIelnQ0ipfh2hA2cGlehuuDmaV4TYO43rNI+i1QOJfwRmHPH2UjEIl8VkE5aH9VzR43ijR1YQokr5STJ3lJHtTyLyWpF17W8woRnHOkkByfqjBZ9qsslcxRJdORp5zulNNtmlS7JIjgaaeU7JRSnTKfI4Uk2a9sSomjEvma6CgnLkpRnphCuuzv2+aSp3PyW/kwH26+/XsOmctJEmyJ5/yzQ8CFE338oqSE8SmmlvLVkj1S5ZJQjJdLRZ64atjTqglflbxdinz4QCMdbGSCTbLxJTsjikyfkuybeU3JDSSCibrZEJnF1UgH6+TfLuWvpfzkX6TX79xHfmOS9Pyn7JEu/5FoiL9r0n2n0SMq8xk+yhCROCUieVXLzozd/59/97cIgiAIoh4qEjKtgRPJcaP4P//ub7WvjwIAAOBfL6RpS7KsBUQCAABAKwoiCUIkAAAANCMUCdUJRAIAAEA7cpFUQ47XApGYBLzXTwoAAOCDRFEkXEUi9McVueSq/QT/AQDA1XJ+ekwWHJRXJBJzXIVIrrrQQSEFAABXDhVJuLdIhCi2d5nE9Hu+pPQhT7uVRCqX6nl9AAAAg4QViVO7SLTc3PsSgMpb9CsVjdcHAAAwMHiRCFxyPFCRyJ9qPC7xh8b30nJ9AAAAA0MukkoXkVymMuh2sC/BQCQAAPAhIhJJ2CmZ2a54v+5XJCo3fcVryp8O/PoAAAAGhryPRLJEikkA9yqVg/LH3c6XfKvfk+Vvp/H6AAAABoni8F/MbAcAAKAV9QmJAAAAQA96LpECAAAAqAGRAAAAuBQQCQAAgEsBkQAAALgUEAkAAIBLoSQSO/YjAQAAoBWZSOxCkajMMRwUV+0n+A8AAK6W89PjasjJBvuRAAAA6BNWJNiPBAAAwIU4Pz2uhh2SvG5iPxIAAADaUBYJ9iMBAACgEQWR9OojuYBIuh3sSzAQCQAAfIiIRCKbR6J4v+5XJCo3fcVryp8O/PoAAAAGxvnpcS3srIWdtRBNNeR83ShhPxIAAACaoCIRWEQiEgAAAECN89NjiUWqISeWSAEAAKAVUpEItm3nh/++748GAADgY4Dfs521CEQCAACgD85Pj6vhnWp4R6AT5+sm+kgAAABogxWJEyIBAABwEcRNWxAJAACAPjk/Pa5GdiQRikRligYAAADAnJ8e1yI7knAiUZljOCiu2k/wHwAAXC0qIlGZuD4orrrQQSEFAABXzvnpcS2yK0pYWSRCFNu7TGL6PV++3gnT55paGq8PAABgkJyfHteiuzSqFQmHlpt7XwJQeYt+paLx+gAAAAbG+elxLbpXi+4Ji5LXzTL2IwEAAKAJKhJx65aiSC5TGXQ72JdgIBIAAPgQOT97XY/uSfK6VcZ+JAAAADRxfnqsIhIG+5EAAABQp6dIAAAAADXOz17XY/uC7NUgEgAAANo5P3tdjx2Q1KL7JK9bFYgEAACAJs7PXjfiB434gbAugUgAAABo5fzsdSN+2IgfcHVJPXYAkQAAANAKqUjq4kAkAAAAtHJ+9roePxQEIgEAANAP52evG3EXm0OSE4FIVKZoAAAAAMz52etGwsXmsJEQiURljuGguGo/wX8AAHC1iEXiasRdjcThSbuC/UgAAABo4vzsdSPppkm4iU5O2lXsRwIAAEAT52cnzaSHjZtEXSRabu59CUDlLfqVisbrAwAAGBhikXiaSU8j6Tlp17AfCQAAAE2cn500U95mykPSSHkaKWWRXKYy6HawL8FAJAAA8CHy7uyklfK2Ut4mSdLTZCsSBvuRAAAA6Mm7NyettK9JwurkpFPDfiQAAAA08e7NSTPtb6b9TU4naZFIAAAAADXevTlppf2ipHynnTpEAgAAQBPv3py0Mn4+aX8r7YdIAAAAaOXdm5NWJiCIv5Xxnx5BJAAAALTx7s1pOxtsZwPtDE0rE4BIAAAAaIUVCUmglQ20shAJAAAAzbx7c9rOhtrZkEAnwdOjBkQCAABAE+/enHZy4U4u1M6FWKOEhCJRmaIBAAAAMO/enHby4XY+3M5x4UWiMsdwUFy1n+A/AAC4Wt69Oe3kI4KEO7kwEYnKxPVBcdWFDgopAAC4ct69Pe0UomyoTs5eNrEfCQAAAE28e3t2VIwdFWNHhShJpxBVF4mWm3tfAlB5i36lovH6AAAABsa7t2dHxbggsaNi7OxlC/uRAAAA0MS7t2cvS4mXpcRRKU5TjJ+9UhDJZSqDbgf7EgxEAgAAHyLv3p69LCVflpJHpQQXIhIG+5EAAADoybu3Z0elJJvEUSlxVEycvWpjPxIAAACaePf27KicOiqnjsrJozI1ilAkAAAAgBrv3r55WUm/LKdIiFTOjiESAAAA2qAiEaacPjvuQCQAAAA08cP5m1fV7Ktq5iVJJfOyApEAAADQzA/nb17VcjTVLMnZ6yOIBAAAgCZEIqllX9Wyr6rZNxAJAAAAjfxw/uZVPf+qxiX3qpaDSAAAAGjlh/O3x/UCmzzJm9cvuZntmIcBAABAjR/O3x43iseN4nGjcNygRiEiYQY6M/yqVQTVAQDA++GH87evmyU2RZK3J68Gu7HVVdc0qJkAAOC9IRZJ6XWzdNwoveklkm5NXorHTTIkx3u+0cWuDwAA4Dr44fzt62b5dbPEfi29bpbUKxItN33Fe7383SXXHPj1AQAAXDk/vHv7ulXm0yy/bpa1iESlOJC/i/pxiT80ykPL9QEAAFw5P7x7e9KqkHA6eXt6rLEiUUR+Ql+CgUgAAOBj4od35yft6km7etKunLSpUeQi0XJzV7npd5PQhUWi8foAAACuHIFIuFCRmMQIX9XvceG3+j1Z7g+N1wcAAHAd/PDu/KRdO2nXhC55e/oaM9sBAABo4od35yedmsQlEAkAAACt/PDu/KRTP+nUhIFIAAAAaOWHd+enR/XTo/ppp37aqZGcn0EkAAAAtEFntjdKx43ScaP4ulF83Si+OXkJkQAAANDE+elxLeyshp3VsKMaclRDjkrI/rpRhEgAAABo4s1xO+tczDoXs44XWceLjON5xv78qBiHSAAAAGjizXE743iecTzP2J9l7M/StoW0baFTjGE/EgAAAJqgIiEWsS+kbQtp21MiEgb7kQAAAOjJm+O2xCJp29NOQSoS5nIuueqaBjUTAAC8N968agssspC2PU1be4ukW5OX4nGTDMnxnm90sesDAAC4Dt68aossYnuats6ri0TLTV/xXi9/d8k1B359AAAAV86bV22JRTSKRKU4kL+L+nGJPzTKQ8v1AQAAXDlnr1oCizxNW+dT1vlOIYr9SAAAAGji7FUrZZtP2+aJRbqJRMvNXeWm301CFxaJxusDAAC4cqhIrPOcRVKWOSISkxjhq/o9LvxWvyfL/aHx+gAAAK6Ds1etlHU+bZ3jLMKJ5H1/NAAAAB8DZ69aKetcyjqXtM4Ri0AkAAAA+oAXiWUWIgEAANA3RCRJ61zSMpu0zKYssynLbCcPkQAAANDG2asWZ5GkZTZpmUmZIRIAAACaOXvVSpp5iyTNMynzDEQCAABAK3KRJM0znXwEIgEAAKAJKhIzb5Gkeaadj2A/EgAAAJpgRTIjTJutSAY4Y/yqVQTVAQDA++HsVStpnkma2JhnkuZpuUiYy7nkqmsa1EwAAPDekIlkOqFBJN2avBSPm2RIjvd8o4tdHwAAwHVw9qrFW8Q0rUUkWm76ivd6+btLrjnw6wMAALhyzl6KRJIwTSdMmkSiUhzI30X9uMQfGuWh5foAAACuHIFIqEU0ikTlmvIT+hIMRAIAAB8TrEim1UWi5eauctPvJqELi0Tj9QEAAFw5Zy9bEoskTNPtXI95JP0eF36r35Pl/tB4fQAAANcBEYnQIoltKpL3/dEAAAB8DJy9bEosApEAAADoA5FItiESAAAAfQKRAAAAuBS8SLa5PIFIAAAAaIWKRGARiAQAAEAfnL1sSiwCkQAAAOgDFZGozCMBAAAAKAKRPJFXJAOcMX7VKoLqAADg/cCK5Im6SJjLueSqaxrUTAAA8N64mEi6NXkpHjfJkBzv+UYXuz4AAIDr4OxlU2KRniLRctNXvNfL311yzYFfHwAAwJVzYZGoFAfyd1E/LvGHRnlouT4AAIAr55IViSLyE/oSDEQCAAAfExpFouXmrnLT7yahC4tE4/UBAABcOSoiMYkRvqrf48Jv9Xuy3B8arw8AAOA6OHvZTGw/7laRAAAAAD1gRfIYIgEAAHARIBIAAACXQiCSxxAJAACAvhGLhOoEIgEAAKAViAQAAMClgEgAAABcCiWRPG7nwtiPBAAAgCZURMJgPxIAAAA90SgS5nIuueqaBjUTAAC8N85eNhNbfYukW5OX4nGTDMnxnm90sesDAAC4Di4gEi03fcV7vfzdJdcc+PUBAABcOWcvm/GtqQuIRKU4kL+L+nGJPzTKQ8v1AQAAXDlnL5vxzan41pSwLtFekSgiP6EvwUAkAADwMXH2shnbnJS4RH3UVr+Pu11H/nTg1wcAAHDlnL5sxIyTsc3J+NZUfEvrPJJ+jwu/1e/Jcn9ovD4AAIDr4PSoETVOSIoSriIBAAAAenB61IgaJqKkKGFdApEAAADQyulRI6IfjxomosYJro0LIgEAAKCV06NGWDfGu0SbSNS7IhQ7MNQ/huIJWjo8LnZl9W/1+2Eu/OEBAODHwOlRI7TxiHNJbHMytjnZEozaUnxVvyLp9yVaOtW7of19e/50kqEBfV0HIgEA/Gvh5Kge3HgY0j0K68cihnHSwNUSVCSKI6YucO/WIhKVa/a8mooVuAtKHii+Vzd59LSO5O20/ywAAPBxc9KpB9Yfsi4ZjxgmosbJVi4kF4kQLVZgNLtHuxW6naNyfk9PqJ8g/FnUL9jzhwIAgB8nJ516YG00uP5Q2MDVyoYU+0jUlSA/rv2vePUTVN5dXVSKV9ZyvvDzy78qfs6ePxQAAPw4OenU/asjvEv0YxHDeDeRcKjfJeX3XPUbrkaRXAB1sUkOqnuop5PkR+QXBACAHyEnnbpvddi/OuInLtE9CuvHmtmQcGY7OVPlLtnzj3GVO+kFRNLXx1CUgfpdvueP3Nen1XICAAB8xJx06r6VB8QlgfVR0sDVzATV+0jU4e62Pe/4PU9TMYTi+6oclF9K/XyVx+pvKv/pFF8IAAA/Ek46de/yA9/KA//qiH+NuqSbSDT+ea5y31d8rHIvVkS7b+TfMimpq9v7qkhI/XNCIQCAf0UQkXjZosS/NhJcf9hIdxWJ5OVyzchPU79Cz8tqOV/LxeWfrad4un1VPL/n9QEA4MfJSafuWb7Pu2RtJLA22kgHLlyRyF/S7VsqB3uKpBsqF+du9CovlH9a+bd6qqLb1QAA4MfJ607Ns3SfuMS3QouSeneRSF6uRQyKf62rX0TjLVjLaf1aTeNru53f03AqzlO/5hWdDwAAl0UoEq4okYtE5c95+TW1H+z2LXXl9OU2yefX+C5a3khyvsr79jxZhas7X/FfEwYCAPTN607NvXRP4pJ62i8UCXdz0XjH73aauh56XlbxOoqPJQdVXCK5uORO2tNY3e68Gg30foFIAACDgYjEvXTPs3zfu3zfu/LAtzJcT/l7Nm0p3pdVDsofy1+lfmtT8ZnKCYru6fkWKmeqnN/t4Id5d1b/0QAAQCu8SARFiVAkQlQMoXhQ8cY0kPvsh3kT7PYZ3vsHU+TD/B0CAD4+OJG4l+55aF3yoJbyYWMrAAAAmoBIAAAAXIoTgUg4l9SSEAkAAABtnHTqQpGQzhKIBAAAgFZOOnUPRAIAAODCnHTqnqX7EpdUIRIAAAAagUgAAABcClYkIpdAJAAAALQiEAnvEogEAACAViASAAAAl4LsRyJwyX2IBAAAQB/IReKBSAAAAGjnpFP3Lt8Xu+Qe5pEAAADQCt2zXewSiAQAAIBWIBIAAACXghWJyCUQCQAAAK0IRPIAIgEAANA3QpHQogTLyAMAANCOWCS0LoFIAAAAaAUiAQAAcCnkIvFCJAAAALSjJJIHEAkAAACtQCQAAAAuBUQCAADgUkAkAAAALgVEAgAA4FKcdOreFYgEAADARYFIAAAAXIqTTt238sC3ApEAAAC4EBAJAACAS8GLhAQiAQAA0BecSHidQCQAAAC0IxEJcQlEAgAAQCsQCQAAgEshF4lv5UEtBZEAAADQhqJI6hAJAAAAjZx06r6VYYgEAADABYFIAAAAXAqIBAAAwKU46dT9q8O+1WGhTiASAAAAWjnp1P2rIxAJAACAC0JEIilKIBIAAABaOenU/Wsj/jXOJRAJAACAfuBFsjbCtXFBJAAAALQiEQmpSyASAAAAWhGJhC1K6ik/RAIAAEATUpGsjfhXRyASAAAAWoFIAAAAXIqTTj0gEckaRAIAAEAzJ0dKIklDJAAAALRBRBKASAAAAFyI/w800Iux9e0/TgAAAABJRU5ErkJggg==" alt="" />
- auto_ptr对象可以进行拷贝和赋值,之后源对象不再拥有raw指针的所有权,转而交给新对象托管。unique_ptr对象禁止拷贝和赋值运算,在vs2012源码中,将拷贝构造函数和赋值操作符声明为private,并未定义,所以如下代码中,line5,6两行均会导致编译报错:
int _tmain(int argc, _TCHAR* argv[])
{
int *p = new int();
unique_ptr<int> up(p);
unique_ptr<int> up_copy(up);
unique_ptr<int> up_assign;
up_assign = up; return ;
}因为此特性,猜想unique_ptr对象无法很好地与STL容器一起使用(PS:最初我以为将拷贝构造和赋值操作符私有化的类,声明一个容器持有这种类型,这样的代码编译就会报错,编码后才知道编译不会报错,调用push_back等需要拷贝或赋值的操作时,才会报错),下面代码中line5将会报错:
int _tmain(int argc, _TCHAR* argv[])
{
unique_ptr<int> up(new int());
vector<unique_ptr<int> > vup;
vup.push_back(up); return ;
}之后了解到c++11中引入的move语义使得unique_ptr可以存放到容器中,参考这篇文章http://www.th7.cn/Program/cp/201408/267890.shtml。使用move就表示放弃对该对象的所有权,但并不对raw指针进行释放,举个例子:
int _tmain(int argc, _TCHAR* argv[])
{
vector<unique_ptr<int, my_deleter> > vup;
{
cout<<"scope begin######################"<<endl;
unique_ptr<int, my_deleter> up(new int(), my_deleter());
vup.push_back(move(up));
if(up.get() == NULL)
cout<<"up points NULL"<<endl;
cout<<"scope end######################"<<endl;
}
cout<<"outer######################"<<endl; return ;
}根据下面的输出可以验证,在局部对象up经过move函数调用后,失去了对raw指针的所有权(line9),并未释放raw指针,之后如果误用了up对象,会导致undefine行为:
aaarticlea/png;base64,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" alt="" />
这里需要注意的是,此处move函数调用了unique_ptr的move语意拷贝构造函数(不知道c++11是否这么称呼……),注意形参类型为unique_ptr&&
unique_ptr(unique_ptr&& _Right) _NOEXCEPT
: _Mybase(_Right.release(),
_STD forward<_Dx>(_Right.get_deleter()))
{ // construct by moving _Right
}这里确实没有调用deleter,进行raw指针的释放。forward函数同样是c++11里的语法,表示”接受一个参数,然后返回该参数本来所对应的类型的引用”。
目前对unique_ptr的了解就到这里,不算太深,可以看出unique_str的功能比auto_ptr更为强大,它支持托管堆上分配的数组,支持定制deleter,并且可以通过move语意使unique_ptr对象与容器兼容,但仍然有一些不足,比如重复释放,使用move语意之后源对象失去了对raw指针的管理权,再次使用会出现undefine行为。要避免这些情况,除了使用时要注意之外,最好的办法还是使用带有引用计数功能的智能指针。
unique_ptr简谈的更多相关文章
- .NET简谈接口
自从面向对象开发方式的出现,抽象的概念就开始日新月异的发展,面向对象编程.面向接口编程.面向组件编程等等:这一系列的概念都是软件工程所追求的思想范畴,高类聚低耦合. 今天我要简谈的是面向对象里面非常重 ...
- .NET简谈构件系统开发模式
转自[王清培] http://www.cnblogs.com/wangiqngpei557/archive/2011/06/14/2080416.html 在本人的“.NET简谈插件系统开发模式”一文 ...
- .NET简谈——跨进高级编程门槛的必经之路
我们继续C#基础知识的学习,这篇文章对前面基础知识学习的朋友有着举足轻重的作用:为了延续基础知识学习的热情,我编写了这篇特殊的文章. 本篇文章的中心是想借“.NET简谈反射(动态调用)”一文继续发挥下 ...
- 简谈Java语言的继承
Java语言的继承 这里简谈Java语言的三大特性之二——继承. Java语言的三大特性是循序渐进的.是有顺序性的,应该按照封装-->继承-->多态这样的顺序依次学习 继承的定义 百度百科 ...
- 简谈Java语言的封装
简谈Java语言的封装 封装的定义 封装将复杂模块或系统的逻辑实现细节隐藏,让使用者只需要关心这个模块或系统怎么使用,而不用关心这个模块或系统是怎么实现的. 在面向对象的的编程中,我们一般通过接口来描 ...
- MPI简谈
MPI简谈 MPI是分布式内存系统,区别于OpenMP和Pthreads的共享内存系统.MPI是一种基于消息传递的并行编程技术,是如今最为广泛的并行程序开发方法. MPI前世今生 MPI(Messag ...
- ASP.NET MVC 网站开发总结(六)——简谈Json的序列化与反序列化
首先,先简单的谈一下什么是序列化与反序列化,序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通 ...
- 简谈HTML5与APP技术应用
HTML5到底能给企业带来些什么? HTML5是近年来互联网行业的热门词汇,火的很.微软IE产品总经理发文: 未来的网络属于HTML5.乔布斯生前也在公开信<Flash之我见>中预言:像H ...
- 简谈WP,IOS,Android智能手机OS
什么是智能手机? 相信到现在这个已经是傻瓜到不能再傻瓜的问题了 智能手机都不懂? 那你活着还有什么意思= = 但是为了谈论今天的三大主角:wp,ios,android 不得不回答一下这个笨笨的问题 如 ...
随机推荐
- C#管理控制IIS7的方法
原文:C#管理控制IIS7的方法 转自 http://www.lob.cn/jq/csyy/7285.shtml 把在找到正确方法前遇到的挫折也拿出来与大家分享,相信不少朋友从iis6到iis7的过渡 ...
- Pro Aspnet MVC 4读书笔记(1) - Your First MVC Application
Listing 2-1. The default contents of the HomeController class using System; using System.Collections ...
- Object-c中间initialize 与 辛格尔顿
简单说下initialize任务.在初始化过程中同样的类将被调用一次. 直接在代码解释initialize任务. 创建一个InitTest类 InitTest.m #import "Init ...
- Learning JavaScript(0)_Concepts
作用域,嵌套函数和闭包 <script type="text/javascript"> function foo(){ var a = 10; function bar ...
- hdu 1814 Peaceful Commission (2-sat 输出字典序最小的路径)
Peaceful Commission Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- c++的string容器
c++相比c的一个好处就是实现了很多的容器和泛型算法,使得程序员的工作得到了很大的化简.其中一个很有用的泛型容器就是string.string是一个类,是一个在STL里边实现好了的类,由于他的很多功能 ...
- Chapter 2 User Authentication, Authorization, and Security(3):保server避免暴力袭击
原版的:http://blog.csdn.net/dba_huangzj/article/details/38756693,专题文件夹:http://blog.csdn.net/dba_huangzj ...
- 详解JMeter函数和变量
JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用.函数调用的语法如下: ${__functionName(var1,var2,var3)} 其中,__function ...
- Windows Phone 8.1 应用生命周期
原文:Windows Phone 8.1 应用生命周期 一.“后退键”不会终止应用 关于 Windows Phone 8.1 的应用生命周期,第一个要知道的关键就是:“后退键”不会终止应用! 在 8. ...
- Cgroup maintainer丽泽范:解剖Linux核心容器技术
摘要:Cgroup和namespace等内核特性如何出现,在社区处于如何的开发状况?Docker如火如荼.内核社区是否会因此加紧完好容器技术的隔离性安全性?华为Linux内核高级project师李泽帆 ...