destroy_test.cpp
来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 56 行
CPP
56 行
// Copyright David Abrahams 2004. 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)#include <boost/python/detail/destroy.hpp>#include <boost/detail/lightweight_test.hpp>int count;int marks[] = { -1 , -1, -1 , -1, -1, -1, -1 , -1};int* kills = marks;struct foo{ foo() : n(count++) {} ~foo() { *kills++ = n; } int n;};void assert_destructions(int n){ for (int i = 0; i < n; ++i) BOOST_TEST(marks[i] == i); BOOST_TEST(marks[n] == -1);}int main(){ assert_destructions(0); typedef int a[2]; foo* f1 = new foo; boost::python::detail::destroy_referent<foo const volatile&>(f1); assert_destructions(1); foo* f2 = new foo[2]; typedef foo x[2]; boost::python::detail::destroy_referent<x const&>(f2); assert_destructions(3); typedef foo y[2][2]; x* f3 = new y; boost::python::detail::destroy_referent<y&>(f3); assert_destructions(7); return boost::report_errors();}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?