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

小山日志
讀書,學習與思考.
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>
            欧美电影免费观看大全| 欧美激情亚洲一区| 免费影视亚洲| 久久精品视频网| 久久久久国产精品一区三寸| 欧美午夜激情视频| 欧美日韩国产精品一区| 国产精品成人观看视频免费| 欧美午夜激情小视频| 国产亚洲欧美一区二区三区| 国产麻豆一精品一av一免费| 国模一区二区三区| 亚洲国产精品123| 99精品热视频只有精品10| 夜夜嗨av一区二区三区四区| 欧美一级欧美一级在线播放| 麻豆91精品| 99热精品在线观看| 久久精品成人欧美大片古装| 欧美国产综合| 国产在线视频欧美| 一区二区三区四区国产| 久久久青草青青国产亚洲免观| 亚洲欧洲一区二区在线播放| 99视频精品免费观看| 久久久国产视频91| 欧美四级在线观看| 亚洲国产天堂久久国产91| 亚洲欧美制服中文字幕| 亚洲高清激情| 久久国产手机看片| 国产精品欧美日韩一区二区| **性色生活片久久毛片| 欧美亚洲在线观看| 亚洲精品视频在线观看网站| 久久久久久97三级| 国产精一区二区三区| 日韩性生活视频| 免费成人av在线| 欧美一区二区在线播放| 欧美午夜精品久久久久久超碰| 亚洲国产精品一区二区尤物区| 欧美一区二区私人影院日本| 亚洲美女中出| 欧美激情国产高清| 亚洲国产精品久久久久秋霞蜜臀| 久久精品视频在线| 亚洲欧美中文另类| 国产精品一二三视频| 亚洲午夜在线观看视频在线| 亚洲欧洲在线一区| 欧美.www| 亚洲啪啪91| 亚洲高清免费视频| 久久这里有精品视频| 永久免费毛片在线播放不卡| 久久久久久久久一区二区| 午夜精品福利在线观看| 国产精品一区一区三区| 欧美在线亚洲| 欧美在线免费视屏| 国产一区久久| 猛男gaygay欧美视频| 久久久一区二区三区| 麻豆av福利av久久av| 好看的av在线不卡观看| 麻豆91精品| 欧美黄在线观看| 中文在线资源观看网站视频免费不卡| 亚洲欧洲一区二区在线观看| 欧美日韩不卡视频| 在线亚洲观看| 亚洲欧美一级二级三级| 亚洲大胆av| 亚洲精品在线视频观看| 国产精品久久久免费| 欧美在线一二三四区| 欧美中文字幕在线| 亚洲国产一区二区精品专区| 亚洲国产欧洲综合997久久| 欧美日韩在线不卡| 欧美中文在线观看国产| 久久久久免费视频| 亚洲精品美女在线| 夜夜嗨av色综合久久久综合网| 国产精品视频久久久| 久热精品视频| 欧美日韩大陆在线| 久久精品99无色码中文字幕| 久热爱精品视频线路一| 亚洲婷婷综合久久一本伊一区| 先锋影音国产精品| 亚洲精品孕妇| 午夜精品福利视频| 亚洲精品偷拍| 午夜电影亚洲| 99在线热播精品免费99热| 欧美亚洲一区二区三区| 亚洲伦理久久| 久久精品国产精品亚洲| 亚洲图片欧洲图片日韩av| 久久久久一区二区三区| 亚洲欧美日韩人成在线播放| 蜜桃av一区二区| 久久精品五月| 欧美午夜精品电影| 亚洲国产欧美一区| 黄色成人在线网址| 一区二区三区视频在线观看| 亚洲黄色av一区| 久久精彩免费视频| 亚洲欧美一区二区视频| 欧美巨乳在线观看| 欧美成人免费va影院高清| 国产一区二区三区久久久久久久久| 99热这里只有精品8| 一本色道久久88综合日韩精品 | 一区二区三欧美| 亚洲激情另类| 久久九九热re6这里有精品| 午夜亚洲福利| 欧美日韩亚洲免费| 亚洲欧洲精品一区二区三区| 一区一区视频| 久久精品日产第一区二区| 欧美在线999| 欧美日韩亚洲另类| 日韩视频中文字幕| 一区二区三区日韩欧美精品| 亚洲高清自拍| 亚洲国产小视频在线观看| 久久视频在线视频| 欧美大片免费| 久久精品理论片| 久久九九国产精品怡红院| 欧美日韩一二三四五区| 欧美成人午夜剧场免费观看| 国产视频自拍一区| 午夜精品久久久久久久99樱桃| 亚洲男人av电影| 国产精品网红福利| 亚洲欧美日韩在线| 久久精品视频播放| 在线精品一区二区| 久久嫩草精品久久久精品| 麻豆成人综合网| 亚洲黄色成人| 欧美日韩一级视频| 亚洲手机在线| 久久久视频精品| 亚洲精品综合| 欧美日韩一区二区在线| 国产精品99久久久久久有的能看| 午夜精品短视频| 韩国亚洲精品| 欧美激情视频免费观看| 99在线热播精品免费| 久久精品视频导航| 亚洲开发第一视频在线播放| 欧美性事在线| 久久精品女人| 日韩视频中文字幕| 久久久久欧美精品| 99视频+国产日韩欧美| 国产精品网红福利| 美女诱惑黄网站一区| 一区二区成人精品 | 欧美激情视频给我| 午夜精品短视频| 亚洲高清一区二| 午夜精品久久久久久久白皮肤 | 欧美黄色视屏| 亚洲欧美日韩另类| 亚洲电影免费在线| 欧美亚州韩日在线看免费版国语版| 性欧美办公室18xxxxhd| 亚洲国产精品成人精品| 午夜视频在线观看一区二区| 亚洲福利在线观看| 国产精品美女久久久浪潮软件 | 国语自产精品视频在线看抢先版结局| 欧美sm视频| 欧美一区二区播放| 99视频一区二区三区| 老司机免费视频久久| 亚洲欧美激情视频| 亚洲三级毛片| 精品99一区二区三区| 国产精品看片你懂得| 欧美.www| 老司机久久99久久精品播放免费| 一区二区三区鲁丝不卡| 合欧美一区二区三区| 一区二区精品在线观看| 欧美激情久久久久久| 久久全球大尺度高清视频| 亚洲性视频网址| 一本大道久久精品懂色aⅴ| 在线精品视频在线观看高清 | 欧美ed2k|