test_pointer_adoption.py

来自「Boost provides free peer-reviewed portab」· Python 代码 · 共 94 行

PY
94
字号
# 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)""">>> from test_pointer_adoption_ext import *>>> num_a_instances()0>>> a = create('dynamically allocated')>>> num_a_instances()1>>> a.content()'dynamically allocated'>>> innards = a.get_inner()>>> innards.change('with an exposed reference')>>> a.content()'with an exposed reference'# The a instance should be kept alive...>>> a = None>>> num_a_instances()1# ...until we're done with its innards>>> innards = None>>> num_a_instances()0>>> b = B()>>> a = create('another')>>> b.a_content()'empty'>>> innards = b.adopt(a);>>> b.a_content()'another'>>> num_a_instances()1>>> del a # innards and b are both holding a reference>>> num_a_instances()1>>> innards.change('yet another')>>> b.a_content()'yet another'>>> del innards>>> num_a_instances() # b still owns a reference to a1>>> del b>>> num_a_instances()0Test call policies for constructors here>>> a = create('second a')>>> num_a_instances()1>>> b = B(a)>>> num_a_instances()1>>> a.content()'second a'>>> del a>>> num_a_instances()1>>> b.a_content()'second a'>>> del b>>> num_a_instances()0>>> assert as_A(create('dynalloc')) is not None>>> base = Base()>>> assert as_A(base) is None"""def run(args = None):    import sys    import doctest    if args is not None:        sys.argv = args    return doctest.testmod(sys.modules.get(__name__))    if __name__ == '__main__':    print "running..."    import sys    status = run()[0]    if (status == 0): print "Done."    sys.exit(status)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?