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 + -
显示快捷键?