BVB Source Codes

mars Show checked_delete.hpp Source code

Return Download mars: download checked_delete.hpp Source code - Download mars Source code - Type:.hpp
  1. #ifndef BOOST_CORE_CHECKED_DELETE_HPP
  2. #define BOOST_CORE_CHECKED_DELETE_HPP
  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/core/doc/html/core/checked_delete.html for documentation.
  22. //
  23.  
  24. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost
  25. {
  26.  
  27. // verify that types are complete for increased safety
  28.  
  29. template<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.     (void) sizeof(type_must_be_complete);
  34.     delete x;
  35. }
  36.  
  37. template<class T> inline void checked_array_delete(T * x)
  38. {
  39.     typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
  40.     (void) sizeof(type_must_be_complete);
  41.     delete [] x;
  42. }
  43.  
  44. template<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.         // mars_boost:: disables ADL
  52.         mars_boost::checked_delete(x);
  53.     }
  54. };
  55.  
  56. template<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.         mars_boost::checked_array_delete(x);
  64.     }
  65. };
  66.  
  67. } // namespace mars_boost
  68.  
  69. #endif  // #ifndef BOOST_CORE_CHECKED_DELETE_HPP
  70.  
downloadchecked_delete.hpp Source code - Download mars Source code
Related Source Codes/Software:
Hero - Elegant transition library for iOS & tvOS 2017-06-09
deep-photo-styletransfer - Code and data for paper "Deep Photo Style Transfer... 2017-06-09
mastodon - A GNU Social-compatible microblogging server ... 2017-06-09
plyr - A simple HTML5, YouTube and Vimeo player ... 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
Public-APIs - 2017-06-09
lottie-ios - An iOS library to natively render After Effects ve... 2017-06-09
Awesome-Hacking - A collection of various awesome lists for hackers,... 2017-06-09
algorithms - Minimal examples of data structures and algorithms... 2017-06-10
lectures - Oxford Deep NLP 2017 course 2017-06-10
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top