03_smart_pointers

Download
text 88 lines 42.1 KB
 1����@�!H__PAGEZERO(__TEXT@@__text__TEXT����__stubs__TEXTp%�p%�__const__TEXT''__gcc_except_tab__TEXT((�((__cstring__TEXT�*u�*__unwind_info__TEXTX/�X/�__DATA_CONST@@@@__got__DATA_CONST@P@"__const__DATA_CONSTPA�PAH__LINKEDIT�@�@(4���3����؆�x��PQQY.H�L /usr/lib/dyld�͸��Y5���d9S�]2 �*(�0C�/usr/lib/libc++.1.dylib8L/usr/lib/libSystem.B.dylib&��H)؆`������O��{����3�s6@��!�+���B�R���,,��#����@��!<:���B�R���^@9	�.@�?qA���b������!�:��R���@�@����!�-�"�R�� �4@��!P,���R���@��� �4@��!�,���R���� �4@��!-�"�R�� �4@��!<:�B�R~�h^@9	j.@�?qA���b���w��!�:��Rs�h@�@����!�-�"�Rl� �4@��!h-���Rf���R�������=�=�R� �4@��!�-�"�RX� �4@��R���!�-�"�RP��@� �4@����!�-�"�RH��
 2@� �4@����!�-�"�R@��@� �4@����!�-�"�R8��@� �4@����!�-�"�R0� �4@��!�-�"�R*� �4@��!�-�"�R$��������������@���`������{B��OA�����_���	��������v���F��#�D���@�����_��W��O��{��C������Ro���������}��T��\�T�9�#����
 3@�]�)�R8����\���A��#���������r��j68�#���������9h�6�@�E��{E��OD��WC��_B�����_�M�  �����9��6�@�8�����4�������@��@��O���{��C���~�(����{A��O¨���_�����W��O��{��C� �4@��!h.���R���R���������(�A�A��`��!/������O� �4@��!,/�B�R���@�����!�-�"�R���O�h"�)�R)� �4@��!,/�B�R���@�����!�-�"�R|� �4@��!x/�B�Rv��@�����!�-�"�Ro��O�h"�)�R)� �4@��!,/�B�Re��@�����!�-�"�R^� �4@��!�/�"�RX��������h@�	@���?������@�s�h"�	������h@�	@���?����� �4@��!,0���R=��@���h@���҉��!�-�"�R2��@� �4@��!<:�B�R+��^@9	�.@�?qA���b���$��!�:��R ��@�@�m��!�-�"�R� �4@��!�0�"�R���h"�	�������{E��OD��WC�����_�h@�	@���?����{E��OD��WC����U����X�i���4���������C����������'��O���{��C�@���h"�	����(�h@�	@�����?���2����{A��O¨�_�����W��O��{��C� �4@��!01�"�R��
 4�R?����5�����B�|�`��!�1������O�
 5�R1������B��`��!2������S��"�)�R)�u@�vR�u��"�	�������@�	@���?������@��OB���iB�*�R)*��@����@��� �4@��!2�b�R����h@�������!�-�"�R�� �4@��!X2�b�R���@���@�������!�-�"�Rx��@�`���������@���T� �4@��!�2��Ri��^@9	�.@�?qA���b���b��!�-�"�R^�h"�	������h@�	@���?����� �4@��!�2���RN��@���h"�	�������@���h"�	�������{E��OD��WC�����_�h@�	@���?������@�������h@�	@���?����{E��OD��WC���������<���������~�����
 6����w�����S����C�*������(�����L�����W��O��{��C��4@��!l3��R���3��!4����������4�a�R"�R�����4@��!�4���R���4@��!�4�b�R��3��4@��!�;�"�R����l��4@��!5���R���RO�����R	�)�5��9(@���(Q@�����W9�#�|����R@�����������L�����9h�6�@�.��4@��!<:�B�R��h^@9	j.@�?qA���b������!�:��R��h@�@����!�-�"�R���4@��!�4�b�R����������@�	@���?������{E��OD��WC�����_�<����h��  ���	���9��6�@�0�����9h�6�@��������������#��������������������O���{��C���@��4��4@��!�;�"�Rg��������{A��O¨�_�	�����g��_��W��O��{�����4@��!6���RS��������6������R�����@���(���'�����6������R����@��@����@�	 ��������@�����`�������6������@���T�@�h
 7�xb�,�@��˖�C���*�}�J���}���B�	�i���
 8���71������}�(
 9���}ӆ����Ҹ����@�����������������S���o��@���������i����4@��! 7���R���@��@T�6@���>:��֊:������-�:@�����B�R��H_@9	J/@�?qA���b��������R��H@�@�%���"�R��9#�?�!��T�4@��!x7���R���T���4@��!�7��R��s���+��{F��OE��WD��_C��gB�����_�����T�_������s�������J�  �
10�����������#�D���������_��W��O��{��C������R�����,���}��T��\�T�9�#����
11@�]�)�R8��������A��#�����������j68�#��������9h�6�@����{E��OD��WC��_B�����_���  �����9��6�@��������������W���O��{������@�4�u@�����T
12���T��_�������������`@�t������{B��OA��Wè�_�����_��W��O��{��C��4@��!88�B�R2�������R������	��B���R���������#����R�����A
13�A���R����@�X������������R�����B���R~������`���=�=������n����4@��!�8���R��`@�@�	@�?�`@�@�	@�?�`
14@�@�	@�?�`
15@�
16���@�@�?�`@����@�@�?�`@����@�@�?����{E��OD��WC��_B����B����>�
17����9�����4����#�������W���O��{������@�T�u@�����T��T��_�������@�@�?����`@�t�����{B��OA��Wè�_��O���{��C��s6@��!89�����R���!�9�����R�����������������/���P����!�9�����R���R�{A��O¨�_��{������:���O���{��C����R��������!�@��B@����������������{�������Q@�A���{���_��{�����R�����!L@��B@����{���������O���{��C���(\�9��7 �=(@�h
18�`�=(@�����"���R��H�R�`��4@��!�:���R:�h^@9	j.@�?qA���b���3��!;�b�R/����{A��O¨�_���h^�9h�6`@�����_��W���O��{������_X�hT\9��}��BT����h
19@�]�)�R4�������A�Ӣ�����b��{B��OA��Wè������{�����H;���������g��_��W��O��{�����������#���>��#@9qaTh@��^�d��@��@���@��1AT�c�����&��!8@��c��@�@��R?����c�9���7���R
20���qb�������*��h@��^�`� @���R	*,��#�����{F��OE��WD��_C��gB�����_����c�����#������+�h@��^�`��)������&�����O�������g��_��W��O��{������
21����������@�i�	����Y�?�Th@�1@�����?��T���T��}���"T�^�T�9�#��
22@�]�)�R:��������HA��#����������?k78��9�@�q�#�!���h@�1@�����?���9��7��T�@�����������T����+Th@�1@�������?��aT�������{F��OE��WD��_C��gB�����_���������9h�6�@�����y��O���{��C���@�@����4@��!�:���R1���h^@9	j.@�?qA���b���*����!d;���R&���h^�9h�6`@������{A��O¨�_������A�A��t�{�����A�A��m��{��}`����z����_��W��O��{��C�����������}��T��\�T�9�#����
23@�]�)�R7����f����A��#���������|��j48�#���������9h�6�@�P����{E��OD��WC��_B�����_�W�������9h�6�@�C�������A��*�{�������A��#��{��3`�k0����_��W��O��{��C�������V���}��T��\�T�9�#����
24@�]�)�R7��������A��#���������2��j48�#������9h�6�@�����{E��OD��WC��_B�����_�
25�������9h�6�@��������O���{��C���(\�9��7 �=(@�h
26�`�=(@�����W����o`��<`��<�4@��!�;�"�Rq���h^@9	j.@�?qA���b���j����!;�b�Rf������{A��O¨�_���`@�@���`b����������O���{��C����4@��!�;�"�RO���h^@9	j.@�?qA���b���H����!d;���RD���`@�@���t@����"�	����(�h^�9h�6`@������{A��O¨�_ֈ@�	@���?�����h^�9���6��������O���{��C����4@��!L<�B�R������������{A��O¨��{A��O¨�_�q�{����n��{��~�O���{��C�@��4@��!L<�B�R������������{A��O¨n�{A��O¨�_֥���(@�	�)��	�aT`��_�	�kT���_��O���{��C����@�!�@��������{A��O¨���4���_�P�_�N�4@��!�<�"�R����4@��!=���R����O���{��C�������h^�9��7�{A��O¨�_�`@��{A��O¨4�r@���@���@���
27@���@���@���@���"@���&@���*@���.@���2@���>@���B@���F@���J@����@����@����@����@���V@���Z@���^@���b@���f@���j@���v@���z@���~@����@����@����@����@����@��
28NSt3__120__shared_ptr_emplaceI8ResourceNS_9allocatorIS1_EEEENSt3__120__shared_ptr_emplaceI4NodeNS_9allocatorIS1_EEEENSt3__120__shared_ptr_pointerIP8ResourceZ19demo_custom_deletervE3$_0NS_9allocatorIS1_EEEEZ19demo_custom_deletervE3$_06Circle5Shape9Rectangle��.@@t������������0��|��ll�t$�����0��,XX�l4��h��L��T�������7PP�d����l����D��(������E<dd0����P�����x��@�����`��
29L��F<<�L�l�|������d���P��<����@��ll�t$�����0��788�T�p����������$�����<$,��<<X��,��A6(�`�p ������`���������������
30D�������L������L��HHD��4��	D�Tl��
31L
32=== unique_ptr (Exclusive Ownership) ===
33unique-1Moving ownership...
34  ptr1 is now nullptr
35  ptr2 owns the resource
36
37Unique array:
38  Array:  
39Exiting demo_unique_ptr scope...
40
41=== shared_ptr (Shared Ownership) ===
42shared-1  ptr1 use_count:   ptr2 use_count:   Exiting inner scope...
43  ptr1 use_count after scope: Exiting demo_shared_ptr scope...
44
45=== weak_ptr (Breaking Circular References) ===
46AB  node1 use_count:   node2 use_count:   node2's prev: Exiting demo_weak_ptr scope...
47
48=== Custom Deleter ===
49/tmp/test.txtwHello from custom deleter!
50  File written
51  Exiting scope...
52  File automatically closed by custom deleter
53custom-delete
54=== Container of Smart Pointers ===
55resource-1resource-2resource-3Using all resources:
56Clearing container...
57All resources destroyed
58
59=== Polymorphism with Smart Pointers ===
60Drawing all shapes:
61Smart Pointers Demo
62===================
63
64All demos completed!
65  Using resource '', data=basic_string  [Resource '' created]
66vector' destroyed]
67  [Node '  [Custom deleter: closing file]
68  [Lambda deleter called]
69  Drawing Circle
70  Drawing Rectangle
71<@TTTT�@��dp%��((t\(�	�((
72�(D�(�4)D)�)��)��)8*�*�X*�p*X �*�!�*d"�*$#�*H$�*(���,P��
730
7475��x�T�p��h����������\���t����������	�
76���
77������������������� �!�"�#�$�%�&�'�(�) ��A ( L *�T ,� '+ ��A<!P!t!*�|!,�]'+ �(B0$4$H$�$�$,��'+ �xB%%%-�(,�
78(hB �B%% %,�(hB P.@@P���4v�l�@��:\��*b��� Fh����(6FVhx�����������~�	__ZNKSt3__16locale9use_facetERNS0_2idE__ZNKSt3__18ios_base6getlocEv__ZNSt11logic_errorC2EPKc__ZNSt12length_errorD1Ev__ZNSt20bad_array_new_lengthC1Ev__ZNSt20bad_array_new_lengthD1Ev__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC1ERS3___ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD1Ev__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEl__ZNSt3__119__shared_weak_count14__release_weakEv__ZNSt3__119__shared_weak_count4lockEv__ZNSt3__119__shared_weak_countD2Ev__ZNSt3__14coutE__ZNSt3__15ctypeIcE2idE__ZNSt3__16localeD1Ev__ZNSt3__18ios_base33__set_badbit_and_consider_rethrowEv__ZNSt3__18ios_base5clearEj__ZSt9terminatev__ZTISt20bad_array_new_length__ZTVSt12length_error___cxa_allocate_exception___cxa_begin_catch___cxa_end_catch___cxa_free_exception___cxa_rethrow___cxa_throw___gxx_personality_v0__Unwind_Resume_fclose_fopen_fwrite_memcpy_memmove_memset_strcmp_strlen__ZTISt12length_error__ZdaPv__ZdlPv__Znam__Znwm__ZNKSt3__119__shared_weak_count13__get_deleterERKSt9type_info__ZTINSt3__119__shared_weak_countE__ZTVN10__cxxabiv120__si_class_type_infoE__ZTVN10__cxxabiv117__class_type_infoE_���&��shared_ptrvunique_ptrv�/� 3demo_weak_ptrv	4demo_containerv5demo_7demo_polymorphismv99demo_custom_deleterv>Z1Cmh_execute_header��4_�main����<�P��P��p�txP$(�x���$�$���LPdU�t��x	��7��g����� y����xB��q������(��80	���	�p
79��y
80���
81��	� L�( ��L ��T :�X ��<!��P!��t!N
82�|!�
83��!�
84�d"4�$#B�#q0$�4$1H$��$�$��%��%��%��%��%�� %8%X� '��]'��'7�'Y�
85(f�(r�(�((�\(��(��(��(�4)�D)�)�)&�)9*L*_X*rp*��*��*��*��*��*��PA&��Ah��A���A��AC(B��@B��hB��xB���B���B(
86+�	A�W�oD�����7Qj���'\���7M�����
871[qy���������$,4=EMY[\]_abcdefgjklmtuvwxyz{|}�������[\]^_`abcdefghijklmpsxyz{|}~Y�������otuvw __Z13demo_weak_ptrv__Z14demo_containerv__Z15demo_shared_ptrv__Z15demo_unique_ptrv__Z17demo_polymorphismv__Z19demo_custom_deleterv__mh_execute_header_main__Unwind_Resume__ZNKSt3__119__shared_weak_count13__get_deleterERKSt9type_info__ZNKSt3__16locale9use_facetERNS0_2idE__ZNKSt3__18ios_base6getlocEv__ZNSt11logic_errorC2EPKc__ZNSt12length_errorD1Ev__ZNSt20bad_array_new_lengthC1Ev__ZNSt20bad_array_new_lengthD1Ev__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC1ERS3___ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD1Ev__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEl__ZNSt3__119__shared_weak_count14__release_weakEv__ZNSt3__119__shared_weak_count4lockEv__ZNSt3__119__shared_weak_countD2Ev__ZNSt3__14coutE__ZNSt3__15ctypeIcE2idE__ZNSt3__16localeD1Ev__ZNSt3__18ios_base33__set_badbit_and_consider_rethrowEv__ZNSt3__18ios_base5clearEj__ZSt9terminatev__ZTINSt3__119__shared_weak_countE__ZTISt12length_error__ZTISt20bad_array_new_length__ZTVN10__cxxabiv117__class_type_infoE__ZTVN10__cxxabiv120__si_class_type_infoE__ZTVSt12length_error__ZdaPv__ZdlPv__Znam__Znwm___cxa_allocate_exception___cxa_begin_catch___cxa_end_catch___cxa_free_exception___cxa_rethrow___cxa_throw___gxx_personality_v0_fclose_fopen_fwrite_memcpy_memmove_memset_strcmp_strlen__ZNSt3__111make_uniqueB8ne200100I8ResourceJRA9_KcELi0EEENS_10unique_ptrIT_NS_14default_deleteIS6_EEEEDpOT0___ZNSt3__110unique_ptrI8ResourceNS_14default_deleteIS1_EEED1B8ne200100Ev__ZNSt3__110shared_ptrI4NodeED1B8ne200100Ev__ZNSt3__110shared_ptrI8ResourceED1B8ne200100Ev__ZNSt3__110unique_ptrI7__sFILE10FileCloserED1B8ne200100Ev__ZNSt3__111make_uniqueB8ne200100I8ResourceJRA11_KcELi0EEENS_10unique_ptrIT_NS_14default_deleteIS6_EEEEDpOT0___ZNSt3__16vectorINS_10unique_ptrI8ResourceNS_14default_deleteIS2_EEEENS_9allocatorIS5_EEED1B8ne200100Ev__ZNSt3__16vectorINS_10unique_ptrI5ShapeNS_14default_deleteIS2_EEEENS_9allocatorIS5_EEED1B8ne200100Ev__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne200100Ev__ZNSt3__120__throw_length_errorB8ne200100EPKc__ZNSt12length_errorC1B8ne200100EPKc__ZSt28__throw_bad_array_new_lengthB8ne200100v___clang_call_terminate__ZN8ResourceC2ERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE25__init_copy_ctor_externalEPKcm__ZNSt3__16vectorINS_10unique_ptrI8ResourceNS_14default_deleteIS2_EEEENS_9allocatorIS5_EEE20__throw_length_errorB8ne200100Ev__ZNSt3__124__put_character_sequenceB8ne200100IcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m__ZNSt3__116__pad_and_outputB8ne200100IcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4___ZN8ResourceD2Ev__ZNSt3__120__shared_ptr_emplaceI8ResourceNS_9allocatorIS1_EEED1Ev__ZNSt3__120__shared_ptr_emplaceI8ResourceNS_9allocatorIS1_EEED0Ev__ZNSt3__120__shared_ptr_emplaceI8ResourceNS_9allocatorIS1_EEE16__on_zero_sharedEv__ZNSt3__120__shared_ptr_emplaceI8ResourceNS_9allocatorIS1_EEE21__on_zero_shared_weakEv__ZNSt3__112construct_atB8ne200100I8ResourceJRA9_KcEPS1_EEPT_S7_DpOT0___ZNSt3__120__shared_ptr_emplaceI4NodeNS_9allocatorIS1_EEED1Ev__ZNSt3__120__shared_ptr_emplaceI4NodeNS_9allocatorIS1_EEED0Ev__ZNSt3__120__shared_ptr_emplaceI4NodeNS_9allocatorIS1_EEE16__on_zero_sharedEv__ZNSt3__120__shared_ptr_emplaceI4NodeNS_9allocatorIS1_EEE21__on_zero_shared_weakEv__ZNSt3__112construct_atB8ne200100I4NodeJRA2_KcEPS1_EEPT_S7_DpOT0___ZN4NodeC2ERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE__ZN4NodeD2Ev__ZZ19demo_custom_deletervENK3$_0clEP8Resource__ZNSt3__120__shared_ptr_pointerIP8ResourceZ19demo_custom_deletervE3$_0NS_9allocatorIS1_EEED1Ev__ZNSt3__120__shared_ptr_pointerIP8ResourceZ19demo_custom_deletervE3$_0NS_9allocatorIS1_EEED0Ev__ZNSt3__120__shared_ptr_pointerIP8ResourceZ19demo_custom_deletervE3$_0NS_9allocatorIS1_EEE16__on_zero_sharedEv__ZNKSt3__120__shared_ptr_pointerIP8ResourceZ19demo_custom_deletervE3$_0NS_9allocatorIS1_EEE13__get_deleterERKSt9type_info__ZNSt3__120__shared_ptr_pointerIP8ResourceZ19demo_custom_deletervE3$_0NS_9allocatorIS1_EEE21__on_zero_shared_weakEv__ZN9RectangleD1Ev__ZN6CircleD1Ev__ZN9RectangleD0Ev__ZN6CircleD0Ev__ZNK6Circle4drawEv__ZNK9Rectangle4drawEv__ZN4NodeC2ERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE.cold.1__ZTSNSt3__120__shared_ptr_emplaceI8ResourceNS_9allocatorIS1_EEEE__ZTSNSt3__120__shared_ptr_emplaceI4NodeNS_9allocatorIS1_EEEE__ZTSNSt3__120__shared_ptr_pointerIP8ResourceZ19demo_custom_deletervE3$_0NS_9allocatorIS1_EEEE__ZTSZ19demo_custom_deletervE3$_0__ZTS6Circle__ZTS5Shape__ZTS9RectangleGCC_except_table0GCC_except_table1GCC_except_table3GCC_except_table5GCC_except_table7GCC_except_table8GCC_except_table9GCC_except_table10GCC_except_table12GCC_except_table16GCC_except_table20GCC_except_table23GCC_except_table24GCC_except_table25GCC_except_table30GCC_except_table35GCC_except_table36GCC_except_table37GCC_except_table41__ZTVNSt3__120__shared_ptr_emplaceI8ResourceNS_9allocatorIS1_EEEE__ZTINSt3__120__shared_ptr_emplaceI8ResourceNS_9allocatorIS1_EEEE__ZTVNSt3__120__shared_ptr_emplaceI4NodeNS_9allocatorIS1_EEEE__ZTINSt3__120__shared_ptr_emplaceI4NodeNS_9allocatorIS1_EEEE__ZTVNSt3__120__shared_ptr_pointerIP8ResourceZ19demo_custom_deletervE3$_0NS_9allocatorIS1_EEEE__ZTINSt3__120__shared_ptr_pointerIP8ResourceZ19demo_custom_deletervE3$_0NS_9allocatorIS1_EEEE__ZTV6Circle__ZTI5Shape__ZTI6Circle__ZTV9Rectangle__ZTI9Rectangle�������jX�` �03_smart_pointers��6ۏ0�e/րdz�ie��3�氉:�����0��{��Hz�q�\@���*R�(50�Q8@�?kWh�*R��lf���<����8��-�O�Dc��2:�/t��>G�Zҩ�q���DM�w��]�&p�Dt-�xI��i��!���,巷�����Xo��f����kOX�|�|z�ڽ�H�,����Xo��f����kOX�|�|z�ڽ�H�,����Xo��f����kOX�|�|z�ڽ�H�,�~�X��=��V�������0MH��L�����V�r{��@��`f e��m���צ�wq)g7��E8~����q�M6�ʐ�|���ٚ4;
88��T�