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

boost/checked_delete.hpp

Posted on 2009-06-22 13:26 天邊藍 閱讀(607) 評論(0)  編輯 收藏 引用 所屬分類: boost學習

 

 1#ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED
 2#define BOOST_CHECKED_DELETE_HPP_INCLUDED
 3
 4// MS compatible compilers support #pragma once
 5
 6#if defined(_MSC_VER) && (_MSC_VER >= 1020)
 7# pragma once
 8#endif
 9
10//
11//  boost/checked_delete.hpp
12//
13//  Copyright (c) 2002, 2003 Peter Dimov
14//  Copyright (c) 2003 Daniel Frey
15//  Copyright (c) 2003 Howard Hinnant
16//
17//  Distributed under the Boost Software License, Version 1.0. (See
18//  accompanying file LICENSE_1_0.txt or copy at
19//  http://www.boost.org/LICENSE_1_0.txt)
20//
21//  See http://www.boost.org/libs/utility/checked_delete.html for documentation.
22//
23
24namespace boost
25{
26
27// verify that types are complete for increased safety
28
29template<class T> inline void checked_delete(T * x)
30{
31    // intentionally complex - simplification causes regressions
32    typedef char type_must_be_complete[ sizeof(T)? 1-1 ];
33    (voidsizeof(type_must_be_complete);
34    delete x;
35}

36
37template<class T> inline void checked_array_delete(T * x)
38{
39    typedef char type_must_be_complete[ sizeof(T)? 1-1 ];
40    (voidsizeof(type_must_be_complete);
41    delete [] x;
42}

43
44template<class T> struct checked_deleter
45{
46    typedef void result_type;
47    typedef T * argument_type;
48
49    void operator()(T * x) const
50    {
51        // boost:: disables ADL
52        boost::checked_delete(x);
53    }

54}
;
55
56template<class T> struct checked_array_deleter
57{
58    typedef void result_type;
59    typedef T * argument_type;
60
61    void operator()(T * x) const
62    {
63        boost::checked_array_delete(x);
64    }

65}
;
66
67}
 // namespace boost
68
69#endif  // #ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED


------------------------------------
source:http://www.boost.org/doc/libs/1_39_0/libs/utility/checked_delete.html

The header <boost/checked_delete.hpp> defines two function templates, checked_delete and checked_array_delete, and two class templates, checked_deleter and checked_array_deleter.

The C++ Standard allows, in 5.3.5/5, pointers to incomplete class types to be deleted with a delete-expression. When the class has a non-trivial destructor, or a class-specific operator delete, the behavior is undefined. Some compilers issue a warning when an incomplete type is deleted, but unfortunately, not all do, and programmers sometimes ignore or disable warnings.

A particularly troublesome case is when a smart pointer's destructor, such as boost::scoped_ptr<T>::~scoped_ptr, is instantiated with an incomplete type. This can often lead to silent, hard to track failures.

The supplied function and class templates can be used to prevent these problems, as they require a complete type, and cause a compilation error otherwise.

Synopsis

 1namespace boost
 2{
 3
 4template<class T> void checked_delete(T * p);
 5template<class T> void checked_array_delete(T * p);
 6template<class T> struct checked_deleter;
 7template<class T> struct checked_array_deleter;
 8
 9}

10
11checked_delete
12template<class T> void checked_delete(T * p);
13
14


Requires: T must be a complete type. The expression delete p must be well-formed.

Effects: delete p;

 

 1checked_array_delete
 2template<class T> void checked_array_delete(T * p);
 3Requires: T must be a complete type. The expression delete [] p must be well-formed. 
 4
 5Effects: delete [] p; 
 6
 7checked_deleter
 8template<class T> struct checked_deleter
 9{
10    typedef void result_type;
11    typedef T * argument_type;
12    void operator()(T * p) const;
13}
;
14
15void checked_deleter<T>::operator()(T * p) const;
16
17


Requires: T must be a complete type. The expression delete p must be well-formed.

Effects: delete p;

 

 1checked_array_deleter
 2template<class T> struct checked_array_deleter
 3{
 4    typedef void result_type;
 5    typedef T * argument_type;
 6    void operator()(T * p) const;
 7}
;
 8
 9void checked_array_deleter<T>::operator()(T * p) const;
10


Requires: T must be a complete type. The expression delete [] p must be well-formed.

Effects: delete [] p;

Acknowledgements
The function templates checked_delete and checked_array_delete were originally part of <boost/utility.hpp>, and the documentation acknowledged Beman Dawes, Dave Abrahams, Vladimir Prus, Rainer Deyke, John Maddock, and others as contributors.


Copyright © 2002 by Peter Dimov. Distributed under the Boost Software License, Version 1.0. See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.


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


Copyright © 天邊藍

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            9l视频自拍蝌蚪9l视频成人| 亚洲国产成人高清精品| 一区二区av在线| 亚洲巨乳在线| 欧美视频二区| 午夜精品区一区二区三| 亚洲男女自偷自拍图片另类| 国产伦精品一区二区三区高清版| 午夜久久久久久| 欧美在线国产精品| 亚洲丁香婷深爱综合| 91久久精品美女高潮| 欧美日本国产在线| 性欧美在线看片a免费观看| 久久成人精品| 亚洲精品国产拍免费91在线| 日韩亚洲成人av在线| 国产女人水真多18毛片18精品视频| 欧美在线观看www| 蜜臀久久99精品久久久久久9 | 亚洲一区二区在线看| 国产亚洲视频在线| 欧美高清不卡在线| 国产精品日韩欧美综合| 久久亚洲一区二区三区四区| 欧美国产日韩一区二区在线观看| 亚洲综合三区| 久久在线免费视频| 午夜激情综合网| 麻豆91精品| 欧美亚洲一区在线| 欧美—级在线免费片| 久久国产天堂福利天堂| 欧美激情中文字幕乱码免费| 欧美一区国产一区| 欧美日本在线视频| 女女同性女同一区二区三区91| 欧美区日韩区| 六十路精品视频| 国产精品乱码人人做人人爱| 欧美激情一区在线| 国语自产精品视频在线看一大j8 | 午夜精品免费在线| 99精品视频一区二区三区| 欧美在线综合视频| 亚洲一区二区三区在线观看视频| 久久久伊人欧美| 欧美在线视频免费| 国产精品久久久久aaaa樱花 | 午夜精品三级视频福利| 欧美国产综合| 欧美电影专区| 一区二区在线免费观看| 欧美一区二区视频97| 亚洲欧美日韩精品综合在线观看| 欧美国产视频一区二区| 欧美11—12娇小xxxx| 国内精品久久久久影院色 | 亚洲精品中文字幕有码专区| 亚洲大胆av| 久久精品视频在线看| 久久久国产精品一区二区三区| 欧美日本视频在线| 91久久中文字幕| 9人人澡人人爽人人精品| 欧美黄色aa电影| 亚洲国产精品久久| 亚洲免费观看在线视频| 欧美国产一区在线| 91久久久久久| 一区二区三区精品国产| 欧美日韩国语| 中文在线资源观看网站视频免费不卡 | 欧美日韩国产首页| 亚洲茄子视频| 亚洲综合国产| 国产精品专区一| 午夜国产欧美理论在线播放 | 99伊人成综合| 欧美性感一类影片在线播放 | 欧美aaaaaaaa牛牛影院| 亚洲国产一区在线| 欧美日韩高清不卡| 一本久久青青| 久久久久久久久久看片| 在线播放豆国产99亚洲| 欧美gay视频| 一区二区三区波多野结衣在线观看| 午夜精品久久久久久| 国精品一区二区三区| 欧美国产精品| 亚洲欧美视频在线观看| 久久亚洲一区二区| 99视频精品免费观看| 欧美四级在线| 久久久久久久久久久久久女国产乱| 欧美电影免费观看高清完整版| 亚洲视频在线播放| 国内精品99| 欧美日韩一区三区| 久久久精品一区| 日韩天天综合| 裸体一区二区三区| 亚洲午夜一区二区| 尤物yw午夜国产精品视频明星| 欧美精品在线一区| 久久精品国产欧美亚洲人人爽| 亚洲精选在线| 久久这里只有| 香蕉久久一区二区不卡无毒影院| 伊人一区二区三区久久精品| 欧美午夜性色大片在线观看| 久久久久.com| 亚洲一区二区三| 亚洲精品久久| 欧美ed2k| 久久精品亚洲精品| 亚洲欧美激情一区| 亚洲精品日本| 影视先锋久久| 国产亚洲欧美日韩美女| 欧美色网一区二区| 欧美激情国产日韩| 久久五月激情| 欧美一区国产在线| 一区二区三区av| 亚洲人午夜精品免费| 欧美激情bt| 免费久久99精品国产| 久久aⅴ国产紧身牛仔裤| 亚洲一区二区三区三| 99re热这里只有精品视频| 亚洲国产精品一区二区第四页av | 国产一区二区三区在线观看视频| 欧美人与性动交cc0o| 你懂的视频一区二区| 裸体丰满少妇做受久久99精品| 亚久久调教视频| 午夜在线观看欧美| 羞羞视频在线观看欧美| 午夜精品三级视频福利| 午夜精品亚洲| 香蕉尹人综合在线观看| 亚洲尤物视频在线| 亚洲欧美日韩成人| 午夜精品久久久久久久白皮肤| 亚洲视频在线观看视频| 亚洲午夜精品久久| 亚洲在线成人| 欧美一区午夜精品| 久久精品在线观看| 久久综合久久综合久久综合| 美女国内精品自产拍在线播放| 久久婷婷影院| 欧美激情亚洲| 欧美天天在线| 国产亚洲精品成人av久久ww| 国产亚洲美州欧州综合国| 精品99一区二区| 亚洲国产婷婷综合在线精品| 最新国产成人在线观看| 夜夜夜久久久| 欧美在线视频免费播放| 欧美sm极限捆绑bd| 亚洲日本欧美日韩高观看| 宅男在线国产精品| 欧美一级片久久久久久久| 久久亚洲捆绑美女| 欧美日韩国产首页| 国产欧美一区二区三区视频| 国产一区二区三区成人欧美日韩在线观看 | 这里只有精品丝袜| 欧美亚洲综合另类| 老司机精品久久| 欧美亚洲成人网| 激情综合五月天| 99这里有精品| 久久久久久自在自线| 亚洲精品国产精品国产自| 亚洲一区二区三区色| 久久婷婷蜜乳一本欲蜜臀| 欧美日韩精品免费观看视频| 国产香蕉久久精品综合网| 亚洲国产三级网| 欧美亚洲一区三区| 欧美激情中文字幕乱码免费| 亚洲一区二区综合| 欧美不卡视频一区发布| 国产精品亚洲а∨天堂免在线| 亚洲国产精品久久| 亚洲欧美在线播放| 亚洲激情欧美激情| 欧美一区二区啪啪| 欧美色偷偷大香| 亚洲国产精品成人va在线观看| 亚洲欧美中文日韩在线| 亚洲高清精品中出| 久久久久免费| 国产日韩一区| 午夜精品久久久久久久久久久久|