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

小山日志
讀書,學習與思考.
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ù)根本就沒有被調用。

所以,我們應當使用更嚴厲的手段禁止這種事情的發(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) 將分別調用 operator++ operator-- ,而 T next(T x, Distance n) T prior(T x, Distance n) 則調用 std::distance(T x, size_t n) 。

4.noncopyable

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

#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);

我知道你想說,為什么不是簡單的調用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 小山日志 閱讀(905) 評論(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>
            亚洲国产欧美一区二区三区同亚洲| 国产精品v片在线观看不卡| 一区二区三区产品免费精品久久75| 久久九九久精品国产免费直播| 99国产一区| 亚洲第一页自拍| 国产日韩欧美综合一区| 欧美日韩成人在线观看| 久久最新视频| 欧美在线一区二区| 亚洲欧美日韩中文在线制服| 99re6热只有精品免费观看| 免费看成人av| 久久综合伊人77777蜜臀| 欧美一区=区| 亚洲综合日韩| 亚洲天堂黄色| 在线视频精品一| 亚洲精品少妇30p| 亚洲动漫精品| 在线观看欧美日韩| 一区在线电影| 韩国av一区二区| 国产自产女人91一区在线观看| 国产精品区免费视频| 欧美吻胸吃奶大尺度电影| 欧美日韩美女| 欧美日韩视频专区在线播放| 欧美日本免费| 欧美日韩岛国| 欧美日韩国产综合网| 欧美日本成人| 欧美视频免费看| 欧美性生交xxxxx久久久| 欧美三级视频在线播放| 欧美色欧美亚洲高清在线视频| 欧美日韩国产精品成人| 欧美日韩在线精品| 国产精品va在线| 国产精品av免费在线观看 | 亚洲激情影院| 亚洲第一视频| 亚洲精品一二三区| 日韩网站在线观看| 在线亚洲一区二区| 亚洲一区在线免费| 欧美在线观看视频一区二区| 久久久精品网| 欧美阿v一级看视频| 亚洲黄色免费电影| 91久久久在线| 亚洲视频每日更新| 性伦欧美刺激片在线观看| 久久大香伊蕉在人线观看热2| 久久久亚洲国产美女国产盗摄| 久久久午夜精品| 欧美激情欧美激情在线五月| 欧美亚州在线观看| 国产日韩欧美亚洲| 亚洲国产精品国自产拍av秋霞 | 亚洲免费播放| 亚洲网站在线播放| 欧美一区二区高清在线观看| 久久九九电影| 欧美日韩国产成人在线观看| 国产精品一区二区三区成人| 亚洲第一页中文字幕| 一本色道久久综合亚洲二区三区| 午夜精品久久久久| 欧美成人福利视频| 亚洲视频中文| 久久久亚洲人| 国产精品www| 激情久久久久久久| 亚洲视频www| 久久伊人一区二区| 日韩视频三区| 久久精品亚洲国产奇米99| 欧美精品久久一区二区| 国产亚洲精品久久飘花| 日韩一区二区电影网| 久久精品亚洲国产奇米99| 亚洲狠狠丁香婷婷综合久久久| 一区二区国产在线观看| 久久er精品视频| 欧美精品福利在线| 国产欧美日本| 一区二区三区高清在线| 免费日韩视频| 亚洲图片欧美一区| 欧美极品欧美精品欧美视频| 国产亚洲欧美日韩日本| 亚洲美女中出| 欧美va天堂| 亚洲欧美日韩另类精品一区二区三区 | 欧美亚一区二区| 亚洲高清免费| 久久久久国产精品一区| 亚洲视频日本| 欧美激情精品久久久| 黑人极品videos精品欧美裸| 亚洲欧美高清| 亚洲国产一区二区视频| 久久看片网站| 国产一区二区中文| 亚洲欧美中文日韩在线| 亚洲精品久久久久| 欧美99久久| 在线看不卡av| 久久在线免费观看视频| 亚洲欧美影院| 国产精品视频999| 亚洲一区二区三区乱码aⅴ| 亚洲黄一区二区三区| 久久一区激情| 激情欧美一区二区| 久久久午夜精品| 亚洲欧美影音先锋| 国产欧美日韩激情| 欧美一区二区三区另类| 99视频日韩| 欧美日韩在线不卡| 一区二区三区四区在线| 亚洲剧情一区二区| 欧美人在线观看| 一区二区三区四区五区精品视频| 亚洲国产精品va| 欧美激情1区2区3区| 亚洲免费激情| 亚洲日本中文字幕| 欧美日韩国产一中文字不卡| 中日韩高清电影网| 一二三区精品福利视频| 国产精品大片wwwwww| 亚洲欧美一区在线| 午夜在线精品| 国产又爽又黄的激情精品视频 | 性欧美1819sex性高清| 亚洲天堂av在线免费| 国产精品久久久久永久免费观看 | 欧美精品一区二区久久婷婷| 日韩视频免费| 99视频超级精品| 国产精品视频yy9299一区| 久久国产精品99精品国产| 欧美在线观看天堂一区二区三区| 精品二区久久| 亚洲国产精品va在线观看黑人| 欧美精品在欧美一区二区少妇| 夜夜嗨av一区二区三区网站四季av| 99精品国产一区二区青青牛奶 | 亚洲精品日韩一| 日韩一区二区久久| 国产农村妇女毛片精品久久麻豆| 久久精品国产999大香线蕉| 久久久女女女女999久久| 亚洲欧洲日本国产| 亚洲视频网在线直播| 国产亚洲综合在线| 亚洲国产精品第一区二区| 欧美日韩一区二区三区视频| 欧美一区二区三区电影在线观看| 久久九九国产精品| 一本久道久久久| 亚洲欧美日韩在线高清直播| 亚洲二区视频| 亚洲视频在线一区| 1769国产精品| 正在播放欧美视频| 亚洲第一在线视频| 亚洲一区二区高清视频| 悠悠资源网亚洲青| 一区二区三区视频在线| 伊人成人网在线看| 在线视频欧美精品| 亚洲福利视频三区| 亚洲影院免费观看| 亚洲美女av在线播放| 翔田千里一区二区| 日韩一区二区高清| 久久激情综合网| 亚洲午夜av| 裸体丰满少妇做受久久99精品| 亚洲免费在线观看视频| 免费在线日韩av| 欧美有码视频| 欧美日韩精品一区二区| 麻豆成人在线播放| 国产精品免费看| 亚洲日本中文字幕| 尤妮丝一区二区裸体视频| 亚洲性视频网址| 99在线精品观看| 久久尤物视频| 久久精品国产亚洲a| 国产精品av免费在线观看| 欧美激情第10页| 狠狠干成人综合网| 亚洲综合视频一区| 亚洲午夜视频在线观看|