青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

小山日志
讀書,學習與思考.
posts - 9,comments - 14,trackbacks - 0

2. 函數(shù)模板 checked_delete() checked_array_delete()

<boost/checked_delete.hpp> 定義了兩個函數(shù)模板 checked_delete checked_array_delete 還有兩個類模板 checked_deleter checked_array_deleter。

當我們利用指針刪除一個對象的時候,對象類型是否完整決定了對象是否能夠被正確刪除。但是,如果你用 delete 去刪除一個類型并不完整的對象的指針,編譯器并不會給你提供任何錯誤信息(好吧,有些編譯器會給出警告信息,但是程序員通常會忽略警告信息),但是這樣做的結果卻是對象的析構函數(shù)根本就沒有被調(diào)用。

所以,我們應當使用更嚴厲的手段禁止這種事情的發(fā)生。比如說使用 checked_delete 代替 delete 來刪除指針。當指針所指向的是一個不完全類型時, checked_delete 會使編譯器發(fā)出錯誤信息。

class ?test; // 有聲明,但是忘記了定義,或是忘記????
??????????
// 包含定義文件,test是一個不完全類型

main()
{
test?
* ?pt? = ?NULL;
delete?pt;??
//
?有時會有警告信息,
????????????
// 但有時什么都沒有。

checked_delete(pt);? // ?發(fā)出錯誤信息。
}

checked_array_delete 是用來對應于 delete [ ] operator checked_deleter checked_array_deleter 是可以配接的仿函數(shù)版本。

3. 函數(shù)模板 next() prior()
包括

template < class T > T?next(T?x);
template
< class T, class ?Distance >
T?next(T?x,?Distance?n);
template
< class T >
T?prior(T?x);
template
< class T, class ?Distance >
T prior(T?x,?Distance?n);

函數(shù)模板對傳入的指針,智能指針或是迭代器做遞增或遞減,并傳回它。用法如下:

const ?std::list < T > ::iterator?p? = ?get_some_iterator();
const ?std::list < T > ::iterator?prev? =
?boost::prior(p);
const ?std::list < T > ::iterator?next? = ?boost::next(prev,? 2 );

事實上, T next(T x) T prior(T x) 將分別調(diào)用 operator++ operator-- ,而 T next(T x, Distance n) T prior(T x, Distance n) 則調(diào)用 std::distance(T x, size_t n)

4.noncopyable

如果你需要設計一個不可以被復制的類,那么你就要明確地將它的拷貝構造函數(shù)和 operator = () 放到 private 聲明下面。 Boos\utility 準備了一個基類 noncopyable ,你只需要讓你的類繼承自 noncopyable 就可以獲得這個性質(zhì)。對你的類來說這也是一個顯式的聲明:“我是不可以被復制的!”
用法:

#include? < boost / utility.hpp >

class
?ResourceLadenFileSystem?:?boost::noncopyable?{


5 .函數(shù)模板 addressof()

函數(shù)模板返回一個對象的真實地址(當然這是交給指針了):

template < typename?T > inline?T * ????????????????addressof(T & ?v);
template
< typename?T > inline const ?T * ???????? addressof( const ?T &
?v);
template
< typename?T > inline volatile ?T * ????? addressof( volatile ?T &
?v);
template
< typename?T > inline const volatile T * ?addressof( const volatile T & v);

我知道你想說,為什么不是簡單的調(diào)用operator&()。因為c++允許重載operator&(),所以有時使用它獲得的并不是對象的真實地址,而是編寫重載operator&()代碼的作者希望給你的那個。如果你卻是希望獲得的是這個對象的地址,使用addressof():

#include?<boost/utility.hpp>
struct?useless_type?{};

class
?nonaddressable?{
??useless_type?
operator&()?const
;
};

void
?f()?{
??nonaddressable?x;
??nonaddressable
*?xp?=
?boost::addressof(x);
??
//?nonaddressable*?xpe?=?&x;?//
error!?operator&()已經(jīng)被重載,
??????????????????????????????
//它返回的是useless_type的指針
}




上述的所有東西都可以簡單的通過在你的源文件開頭處寫上:
#include?<boost\utility.hpp>
using?namespace?boost;
就可以使用了。當然我是指你機器上已經(jīng)有boost這個奇妙的庫,并且正確配置^_^
posted on 2006-08-16 00:24 小山日志 閱讀(902) 評論(0)  編輯 收藏 引用 所屬分類: stl/boost/loki/generically

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久国产精品高清| 欧美在线亚洲一区| 欧美日本视频在线| 欧美激情一区二区三区蜜桃视频| 西瓜成人精品人成网站| 香蕉亚洲视频| 欧美中文字幕在线| 久久美女性网| 欧美另类在线观看| 国产精品久久久久天堂| 国产日韩欧美综合精品| 激情成人在线视频| 亚洲乱码国产乱码精品精98午夜| 日韩午夜在线视频| 欧美一区二区福利在线| 美女被久久久| 美女网站久久| 99视频一区| 午夜一区不卡| 欧美精品亚洲一区二区在线播放| 国产精品jizz在线观看美国| 亚洲永久免费av| 欧美在线一二三四区| 噜噜噜在线观看免费视频日韩| 欧美日本国产| 红桃视频成人| 亚洲欧美日韩国产中文在线| 久久综合网hezyo| 亚洲少妇诱惑| 销魂美女一区二区三区视频在线| 国产在线精品一区二区夜色| 一区二区三区高清在线| 毛片基地黄久久久久久天堂| 一区二区三区产品免费精品久久75| 久久久噜噜噜久噜久久| 国产日韩一区二区三区在线| 中日韩美女免费视频网址在线观看| 男男成人高潮片免费网站| 午夜精彩视频在线观看不卡| 欧美视频一区二| 日韩亚洲精品视频| 亚洲大片av| 亚洲一区不卡| 亚洲激情二区| 一区二区欧美日韩视频| 小嫩嫩精品导航| 欧美视频中文字幕| 亚洲精品影院在线观看| 久久美女艺术照精彩视频福利播放| 国产免费成人| 欧美午夜精品久久久久免费视| 亚洲黑丝在线| 欧美成人精品福利| 久久精品欧美| 国精品一区二区| 久久精品91久久久久久再现| 亚洲一区二区三区在线看| 欧美日韩综合一区| 正在播放亚洲一区| 一本色道久久99精品综合| 欧美国产在线电影| 亚洲日韩第九十九页| 亚洲电影免费| 欧美高清在线一区| 欧美日韩免费一区| 亚洲黄色一区| 最近中文字幕日韩精品| 欧美精品在线一区| 亚洲一区国产精品| 亚洲校园激情| 国语自产在线不卡| 欧美日本一道本| 国产精品视频午夜| 亚洲欧美另类在线| 午夜老司机精品| 好看的日韩av电影| 亚洲国产精品一区二区三区| 欧美丰满少妇xxxbbb| 亚洲午夜久久久| 午夜精品福利一区二区三区av| 亚洲伊人色欲综合网| 国产日韩欧美精品一区| 久久视频精品在线| 欧美大片专区| 亚洲女人av| 久久精品视频在线观看| 欧美高清影院| 欧美无乱码久久久免费午夜一区| 欧美人与禽猛交乱配视频| 亚洲男人的天堂在线aⅴ视频| 亚洲一区二区三区四区视频| 国产午夜精品理论片a级探花| 久久免费视频在线| 欧美日韩国产精品专区| 久久精品一级爱片| 奶水喷射视频一区| 亚洲欧美国产高清va在线播| 久久精品国产精品亚洲综合| 亚洲精品日韩综合观看成人91| 夜夜嗨一区二区| 激情综合色综合久久| 亚洲免费福利视频| 狠狠色丁香久久婷婷综合丁香| 亚洲人在线视频| 国产日韩亚洲欧美精品| 亚洲精品日本| 在线观看欧美精品| 亚洲与欧洲av电影| 99成人在线| 亚洲欧美日韩爽爽影院| 在线观看亚洲精品视频| 亚洲一区二区网站| 夜夜嗨av一区二区三区网站四季av| 欧美亚洲自偷自偷| 亚洲一区二区日本| 欧美国产在线电影| 欧美v日韩v国产v| 国产亚洲一区二区精品| 99成人精品| 9国产精品视频| 美女图片一区二区| 久久五月激情| 国内激情久久| 亚洲免费一区二区| 亚洲无玛一区| 欧美日韩一区二区三区视频| 亚洲大胆美女视频| 亚洲国产高清自拍| 久久综合久色欧美综合狠狠| 久久久国产精品一区二区三区| 国产精品一级| 亚洲午夜伦理| 香蕉久久夜色精品国产使用方法| 欧美小视频在线观看| 亚洲精品午夜| 99re在线精品| 欧美精品粉嫩高潮一区二区| 亚洲第一黄色| 国产一区二区精品久久91| 亚洲精品在线免费| 亚洲视频999| 国产精品毛片| 午夜精品久久久99热福利| 性做久久久久久| 国产精品乱码妇女bbbb| 久久色在线观看| 亚洲在线观看免费视频| 一区二区三区精品国产| 日韩午夜在线播放| 欧美日韩日本网| 中文有码久久| 久久国产精品99精品国产| 国产精品日韩欧美综合| 午夜精品久久久久久久99热浪潮 | 国产精品成人一区二区三区吃奶| 亚洲精品在线观| 欧美亚洲免费高清在线观看| 国产丝袜一区二区| 久久亚洲风情| 日韩一级精品| 久久九九久精品国产免费直播| 国外成人在线视频| 欧美国产亚洲精品久久久8v| 欧美日韩视频在线一区二区观看视频 | 欧美成人高清视频| 亚洲激情一区二区三区| 亚洲天堂视频在线观看| 国产欧美日韩麻豆91| 久久综合伊人77777| 亚洲激情在线视频| 午夜视频一区二区| 亚洲国产成人久久综合| 欧美日韩综合精品| 久久久亚洲欧洲日产国码αv| 亚洲精品国产日韩| 久久精品中文字幕一区| 日韩视频精品在线| 国产日韩欧美二区| 欧美日韩国产一级| 久久久一二三| 亚洲欧美日韩另类精品一区二区三区| 久久天堂精品| 亚洲一级在线观看| 亚洲二区免费| 国产午夜精品视频免费不卡69堂| 欧美大片专区| 久久亚洲精品中文字幕冲田杏梨| 欧美另类综合| 久久亚洲国产成人| 亚洲欧美日韩一区二区在线| 黄色综合网站| 欧美午夜精品久久久| 欧美va天堂va视频va在线| 香蕉成人啪国产精品视频综合网| 亚洲精选大片| 亚洲人成网站999久久久综合| 久久久久**毛片大全| 亚洲欧美日韩在线一区| 在线一区二区三区做爰视频网站| 亚洲成色777777在线观看影院|