the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 69 lines 1.6 kB view raw
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 (void) sizeof(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 (void) sizeof(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