GAS LISTING /tmp/cc3o2J9C.s page 1 1 .file "global.cpp" 2 .text 3 .Ltext0: 4 .section .text._ZN9my_structD2Ev,"axG",@progbits,_ZN9my_structD5Ev,comdat 5 .align 2 6 .weak _ZN9my_structD2Ev 8 _ZN9my_structD2Ev: 9 .LFB1251: 10 .file 1 "global.cpp" 1:global.cpp **** #include <iostream> 2:global.cpp **** 3:global.cpp **** using namespace std; 4:global.cpp **** 5:global.cpp **** struct my_struct { 11 .loc 1 5 0 12 .cfi_startproc 13 .LVL0: 14 0000 4883EC08 subq $8, %rsp 15 .cfi_def_cfa_offset 16 16 .LBB2: 17 .loc 1 5 0 18 0004 4883C710 addq $16, %rdi 19 .LVL1: 20 0008 E8000000 call _ZNSsD1Ev 20 00 21 .LVL2: 22 .LBE2: 23 000d 4883C408 addq $8, %rsp 24 .cfi_def_cfa_offset 8 25 0011 C3 ret 26 .cfi_endproc 27 .LFE1251: 29 .weak _ZN9my_structD1Ev 30 .set _ZN9my_structD1Ev,_ZN9my_structD2Ev 31 .text 32 .align 2 33 .globl _ZN9my_structC2ESsi 35 _ZN9my_structC2ESsi: 36 .LFB1244: 6:global.cpp **** int _x, _y, _z; 7:global.cpp **** string _name; 8:global.cpp **** my_struct(string name, int val); 9:global.cpp **** }; 10:global.cpp **** 11:global.cpp **** my_struct::my_struct(string name, int val) : 37 .loc 1 11 0 38 .cfi_startproc 39 .LVL3: 40 0000 4883EC08 subq $8, %rsp 41 .cfi_def_cfa_offset 16 42 .LBB3: 12:global.cpp **** _x(val), _y(val), _z(val), _name(name) 43 .loc 1 12 0 44 0004 8917 movl %edx, (%rdi) 45 0006 895704 movl %edx, 4(%rdi) 46 0009 895708 movl %edx, 8(%rdi) 47 000c 4883C710 addq $16, %rdi GAS LISTING /tmp/cc3o2J9C.s page 2 48 .LVL4: 49 0010 E8000000 call _ZNSsC1ERKSs 49 00 50 .LVL5: 51 .LBE3: 13:global.cpp **** {} 52 .loc 1 13 0 53 0015 4883C408 addq $8, %rsp 54 .cfi_def_cfa_offset 8 55 0019 C3 ret 56 .cfi_endproc 57 .LFE1244: 59 .globl _ZN9my_structC1ESsi 60 .set _ZN9my_structC1ESsi,_ZN9my_structC2ESsi 61 .section .text._ZN9my_structC2ERKS_,"axG",@progbits,_ZN9my_structC5ERKS_,comdat 62 .align 2 63 .weak _ZN9my_structC2ERKS_ 65 _ZN9my_structC2ERKS_: 66 .LFB1248: 5:global.cpp **** int _x, _y, _z; 67 .loc 1 5 0 68 .cfi_startproc 69 .LVL6: 70 0000 4883EC08 subq $8, %rsp 71 .cfi_def_cfa_offset 16 72 .LBB4: 5:global.cpp **** int _x, _y, _z; 73 .loc 1 5 0 74 0004 8B06 movl (%rsi), %eax 75 0006 8907 movl %eax, (%rdi) 76 0008 8B4604 movl 4(%rsi), %eax 77 000b 894704 movl %eax, 4(%rdi) 78 000e 8B4608 movl 8(%rsi), %eax 79 0011 894708 movl %eax, 8(%rdi) 80 0014 4883C610 addq $16, %rsi 81 0018 4883C710 addq $16, %rdi 82 .LVL7: 83 001c E8000000 call _ZNSsC1ERKSs 83 00 84 .LVL8: 85 .LBE4: 86 0021 4883C408 addq $8, %rsp 87 .cfi_def_cfa_offset 8 88 0025 C3 ret 89 .cfi_endproc 90 .LFE1248: 92 .weak _ZN9my_structC1ERKS_ 93 .set _ZN9my_structC1ERKS_,_ZN9my_structC2ERKS_ 94 .section .rodata.str1.1,"aMS",@progbits,1 95 .LC0: 96 0000 676C6F62 .string "globalTest " 96 616C5465 96 73742000 97 .LC1: 98 000c 2000 .string " " 99 .text 100 .globl _Z6globalv GAS LISTING /tmp/cc3o2J9C.s page 3 102 _Z6globalv: 103 .LFB1246: 14:global.cpp **** 15:global.cpp **** // Globals. 16:global.cpp **** int global_int = 4; 17:global.cpp **** string global_string = "test"; 18:global.cpp **** my_struct global_struct(global_string + "bob", 37); 19:global.cpp **** 20:global.cpp **** void global() { 104 .loc 1 20 0 105 .cfi_startproc 106 .cfi_personality 0x3,__gxx_personality_v0 107 .cfi_lsda 0x3,.LLSDA1246 108 001a 53 pushq %rbx 109 .cfi_def_cfa_offset 16 110 .cfi_offset 3, -16 111 001b 4883EC30 subq $48, %rsp 112 .cfi_def_cfa_offset 64 113 .LBB5: 21:global.cpp **** int local_int = global_int; 114 .loc 1 21 0 115 001f 8B1D0000 movl global_int(%rip), %ebx 115 0000 116 .LVL9: 22:global.cpp **** string local_string(global_string); 117 .loc 1 22 0 118 0025 BE000000 movl $global_string, %esi 118 00 119 002a 4889E7 movq %rsp, %rdi 120 .LEHB0: 121 002d E8000000 call _ZNSsC1ERKSs 121 00 122 .LEHE0: 123 .LVL10: 23:global.cpp **** my_struct local_struct(global_struct); 124 .loc 1 23 0 125 0032 BE000000 movl $global_struct, %esi 125 00 126 0037 488D7C24 leaq 16(%rsp), %rdi 126 10 127 .LEHB1: 128 003c E8000000 call _ZN9my_structC1ERKS_ 128 00 129 .LEHE1: 130 .LVL11: 24:global.cpp **** std::cout << "globalTest " << local_int << " " << local_string << std::endl; 131 .loc 1 24 0 132 0041 BE000000 movl $.LC0, %esi 132 00 133 0046 BF000000 movl $_ZSt4cout, %edi 133 00 134 .LEHB2: 135 004b E8000000 call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc 135 00 136 .LVL12: 137 0050 89DE movl %ebx, %esi 138 0052 4889C7 movq %rax, %rdi GAS LISTING /tmp/cc3o2J9C.s page 4 139 0055 E8000000 call _ZNSolsEi 139 00 140 .LVL13: 141 .loc 1 24 0 is_stmt 0 discriminator 1 142 005a BE000000 movl $.LC1, %esi 142 00 143 005f 4889C7 movq %rax, %rdi 144 0062 E8000000 call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc 144 00 145 .LVL14: 146 0067 4889E6 movq %rsp, %rsi 147 006a 4889C7 movq %rax, %rdi 148 006d E8000000 call _ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E 148 00 149 .LVL15: 150 0072 BE000000 movl $_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_, %esi 150 00 151 0077 4889C7 movq %rax, %rdi 152 007a E8000000 call _ZNSolsEPFRSoS_E 152 00 153 .LEHE2: 154 .LVL16: 23:global.cpp **** my_struct local_struct(global_struct); 155 .loc 1 23 0 is_stmt 1 156 007f 488D7C24 leaq 16(%rsp), %rdi 156 10 157 0084 E8000000 call _ZN9my_structD1Ev 157 00 158 .LVL17: 159 .loc 1 24 0 160 0089 4889E7 movq %rsp, %rdi 161 008c E8000000 call _ZNSsD1Ev 161 00 162 .LVL18: 163 0091 EB22 jmp .L12 164 .L11: 165 0093 4889C3 movq %rax, %rbx 166 .LVL19: 23:global.cpp **** my_struct local_struct(global_struct); 167 .loc 1 23 0 168 0096 488D7C24 leaq 16(%rsp), %rdi 168 10 169 009b E8000000 call _ZN9my_structD1Ev 169 00 170 .LVL20: 171 00a0 EB03 jmp .L9 172 .LVL21: 173 .L10: 174 00a2 4889C3 movq %rax, %rbx 175 .LVL22: 176 .L9: 177 .loc 1 24 0 178 00a5 4889E7 movq %rsp, %rdi 179 00a8 E8000000 call _ZNSsD1Ev 179 00 180 .LVL23: 181 00ad 4889DF movq %rbx, %rdi GAS LISTING /tmp/cc3o2J9C.s page 5 182 .LEHB3: 183 00b0 E8000000 call _Unwind_Resume 183 00 184 .LEHE3: 185 .LVL24: 186 .L12: 187 .LBE5: 25:global.cpp **** } 188 .loc 1 25 0 189 00b5 4883C430 addq $48, %rsp 190 .cfi_def_cfa_offset 16 191 00b9 5B popq %rbx 192 .cfi_def_cfa_offset 8 193 .LVL25: 194 00ba C3 ret 195 .cfi_endproc 196 .LFE1246: 197 .globl __gxx_personality_v0 198 .section .gcc_except_table,"a",@progbits 199 .LLSDA1246: 200 0000 FF .byte 0xff 201 0001 FF .byte 0xff 202 0002 01 .byte 0x1 203 0003 12 .uleb128 .LLSDACSE1246-.LLSDACSB1246 204 .LLSDACSB1246: 205 0004 13 .uleb128 .LEHB0-.LFB1246 206 0005 05 .uleb128 .LEHE0-.LEHB0 207 0006 00 .uleb128 0 208 0007 00 .uleb128 0 209 0008 22 .uleb128 .LEHB1-.LFB1246 210 0009 05 .uleb128 .LEHE1-.LEHB1 211 000a 8801 .uleb128 .L10-.LFB1246 212 000c 00 .uleb128 0 213 000d 31 .uleb128 .LEHB2-.LFB1246 214 000e 34 .uleb128 .LEHE2-.LEHB2 215 000f 79 .uleb128 .L11-.LFB1246 216 0010 00 .uleb128 0 217 0011 9601 .uleb128 .LEHB3-.LFB1246 218 0013 05 .uleb128 .LEHE3-.LEHB3 219 0014 00 .uleb128 0 220 0015 00 .uleb128 0 221 .LLSDACSE1246: 222 .text 224 .section .text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_,"axG",@progbits,_ZStplIcSt11 225 .weak _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_ 227 _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_: 228 .LFB1313: 229 .file 2 "/usr/include/c++/4.8/bits/basic_string.h" 1:/usr/include/c++/4.8/bits/basic_string.h **** // Components for manipulating sequences of characters -*- C++ -*- 2:/usr/include/c++/4.8/bits/basic_string.h **** 3:/usr/include/c++/4.8/bits/basic_string.h **** // Copyright (C) 1997-2013 Free Software Foundation, Inc. 4:/usr/include/c++/4.8/bits/basic_string.h **** // 5:/usr/include/c++/4.8/bits/basic_string.h **** // This file is part of the GNU ISO C++ Library. This library is free 6:/usr/include/c++/4.8/bits/basic_string.h **** // software; you can redistribute it and/or modify it under the 7:/usr/include/c++/4.8/bits/basic_string.h **** // terms of the GNU General Public License as published by the 8:/usr/include/c++/4.8/bits/basic_string.h **** // Free Software Foundation; either version 3, or (at your option) 9:/usr/include/c++/4.8/bits/basic_string.h **** // any later version. GAS LISTING /tmp/cc3o2J9C.s page 6 10:/usr/include/c++/4.8/bits/basic_string.h **** 11:/usr/include/c++/4.8/bits/basic_string.h **** // This library is distributed in the hope that it will be useful, 12:/usr/include/c++/4.8/bits/basic_string.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of 13:/usr/include/c++/4.8/bits/basic_string.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14:/usr/include/c++/4.8/bits/basic_string.h **** // GNU General Public License for more details. 15:/usr/include/c++/4.8/bits/basic_string.h **** 16:/usr/include/c++/4.8/bits/basic_string.h **** // Under Section 7 of GPL version 3, you are granted additional 17:/usr/include/c++/4.8/bits/basic_string.h **** // permissions described in the GCC Runtime Library Exception, version 18:/usr/include/c++/4.8/bits/basic_string.h **** // 3.1, as published by the Free Software Foundation. 19:/usr/include/c++/4.8/bits/basic_string.h **** 20:/usr/include/c++/4.8/bits/basic_string.h **** // You should have received a copy of the GNU General Public License and 21:/usr/include/c++/4.8/bits/basic_string.h **** // a copy of the GCC Runtime Library Exception along with this program; 22:/usr/include/c++/4.8/bits/basic_string.h **** // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23:/usr/include/c++/4.8/bits/basic_string.h **** // <http://www.gnu.org/licenses/>. 24:/usr/include/c++/4.8/bits/basic_string.h **** 25:/usr/include/c++/4.8/bits/basic_string.h **** /** @file bits/basic_string.h 26:/usr/include/c++/4.8/bits/basic_string.h **** * This is an internal header file, included by other library headers. 27:/usr/include/c++/4.8/bits/basic_string.h **** * Do not attempt to use it directly. @headername{string} 28:/usr/include/c++/4.8/bits/basic_string.h **** */ 29:/usr/include/c++/4.8/bits/basic_string.h **** 30:/usr/include/c++/4.8/bits/basic_string.h **** // 31:/usr/include/c++/4.8/bits/basic_string.h **** // ISO C++ 14882: 21 Strings library 32:/usr/include/c++/4.8/bits/basic_string.h **** // 33:/usr/include/c++/4.8/bits/basic_string.h **** 34:/usr/include/c++/4.8/bits/basic_string.h **** #ifndef _BASIC_STRING_H 35:/usr/include/c++/4.8/bits/basic_string.h **** #define _BASIC_STRING_H 1 36:/usr/include/c++/4.8/bits/basic_string.h **** 37:/usr/include/c++/4.8/bits/basic_string.h **** #pragma GCC system_header 38:/usr/include/c++/4.8/bits/basic_string.h **** 39:/usr/include/c++/4.8/bits/basic_string.h **** #include <ext/atomicity.h> 40:/usr/include/c++/4.8/bits/basic_string.h **** #include <debug/debug.h> 41:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L 42:/usr/include/c++/4.8/bits/basic_string.h **** #include <initializer_list> 43:/usr/include/c++/4.8/bits/basic_string.h **** #endif 44:/usr/include/c++/4.8/bits/basic_string.h **** 45:/usr/include/c++/4.8/bits/basic_string.h **** namespace std _GLIBCXX_VISIBILITY(default) 46:/usr/include/c++/4.8/bits/basic_string.h **** { 47:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION 48:/usr/include/c++/4.8/bits/basic_string.h **** 49:/usr/include/c++/4.8/bits/basic_string.h **** /** 50:/usr/include/c++/4.8/bits/basic_string.h **** * @class basic_string basic_string.h <string> 51:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Managing sequences of characters and character-like objects. 52:/usr/include/c++/4.8/bits/basic_string.h **** * 53:/usr/include/c++/4.8/bits/basic_string.h **** * @ingroup strings 54:/usr/include/c++/4.8/bits/basic_string.h **** * @ingroup sequences 55:/usr/include/c++/4.8/bits/basic_string.h **** * 56:/usr/include/c++/4.8/bits/basic_string.h **** * @tparam _CharT Type of character 57:/usr/include/c++/4.8/bits/basic_string.h **** * @tparam _Traits Traits for character type, defaults to 58:/usr/include/c++/4.8/bits/basic_string.h **** * char_traits<_CharT>. 59:/usr/include/c++/4.8/bits/basic_string.h **** * @tparam _Alloc Allocator type, defaults to allocator<_CharT>. 60:/usr/include/c++/4.8/bits/basic_string.h **** * 61:/usr/include/c++/4.8/bits/basic_string.h **** * Meets the requirements of a <a href="tables.html#65">container</a>, a 62:/usr/include/c++/4.8/bits/basic_string.h **** * <a href="tables.html#66">reversible container</a>, and a 63:/usr/include/c++/4.8/bits/basic_string.h **** * <a href="tables.html#67">sequence</a>. Of the 64:/usr/include/c++/4.8/bits/basic_string.h **** * <a href="tables.html#68">optional sequence requirements</a>, only 65:/usr/include/c++/4.8/bits/basic_string.h **** * @c push_back, @c at, and @c %array access are supported. 66:/usr/include/c++/4.8/bits/basic_string.h **** * GAS LISTING /tmp/cc3o2J9C.s page 7 67:/usr/include/c++/4.8/bits/basic_string.h **** * @doctodo 68:/usr/include/c++/4.8/bits/basic_string.h **** * 69:/usr/include/c++/4.8/bits/basic_string.h **** * 70:/usr/include/c++/4.8/bits/basic_string.h **** * Documentation? What's that? 71:/usr/include/c++/4.8/bits/basic_string.h **** * Nathan Myers <ncm@cantrip.org>. 72:/usr/include/c++/4.8/bits/basic_string.h **** * 73:/usr/include/c++/4.8/bits/basic_string.h **** * A string looks like this: 74:/usr/include/c++/4.8/bits/basic_string.h **** * 75:/usr/include/c++/4.8/bits/basic_string.h **** * @code 76:/usr/include/c++/4.8/bits/basic_string.h **** * [_Rep] 77:/usr/include/c++/4.8/bits/basic_string.h **** * _M_length 78:/usr/include/c++/4.8/bits/basic_string.h **** * [basic_string<char_type>] _M_capacity 79:/usr/include/c++/4.8/bits/basic_string.h **** * _M_dataplus _M_refcount 80:/usr/include/c++/4.8/bits/basic_string.h **** * _M_p ----------------> unnamed array of char_type 81:/usr/include/c++/4.8/bits/basic_string.h **** * @endcode 82:/usr/include/c++/4.8/bits/basic_string.h **** * 83:/usr/include/c++/4.8/bits/basic_string.h **** * Where the _M_p points to the first character in the string, and 84:/usr/include/c++/4.8/bits/basic_string.h **** * you cast it to a pointer-to-_Rep and subtract 1 to get a 85:/usr/include/c++/4.8/bits/basic_string.h **** * pointer to the header. 86:/usr/include/c++/4.8/bits/basic_string.h **** * 87:/usr/include/c++/4.8/bits/basic_string.h **** * This approach has the enormous advantage that a string object 88:/usr/include/c++/4.8/bits/basic_string.h **** * requires only one allocation. All the ugliness is confined 89:/usr/include/c++/4.8/bits/basic_string.h **** * within a single %pair of inline functions, which each compile to 90:/usr/include/c++/4.8/bits/basic_string.h **** * a single @a add instruction: _Rep::_M_data(), and 91:/usr/include/c++/4.8/bits/basic_string.h **** * string::_M_rep(); and the allocation function which gets a 92:/usr/include/c++/4.8/bits/basic_string.h **** * block of raw bytes and with room enough and constructs a _Rep 93:/usr/include/c++/4.8/bits/basic_string.h **** * object at the front. 94:/usr/include/c++/4.8/bits/basic_string.h **** * 95:/usr/include/c++/4.8/bits/basic_string.h **** * The reason you want _M_data pointing to the character %array and 96:/usr/include/c++/4.8/bits/basic_string.h **** * not the _Rep is so that the debugger can see the string 97:/usr/include/c++/4.8/bits/basic_string.h **** * contents. (Probably we should add a non-inline member to get 98:/usr/include/c++/4.8/bits/basic_string.h **** * the _Rep for the debugger to use, so users can check the actual 99:/usr/include/c++/4.8/bits/basic_string.h **** * string length.) 100:/usr/include/c++/4.8/bits/basic_string.h **** * 101:/usr/include/c++/4.8/bits/basic_string.h **** * Note that the _Rep object is a POD so that you can have a 102:/usr/include/c++/4.8/bits/basic_string.h **** * static <em>empty string</em> _Rep object already @a constructed before 103:/usr/include/c++/4.8/bits/basic_string.h **** * static constructors have run. The reference-count encoding is 104:/usr/include/c++/4.8/bits/basic_string.h **** * chosen so that a 0 indicates one reference, so you never try to 105:/usr/include/c++/4.8/bits/basic_string.h **** * destroy the empty-string _Rep object. 106:/usr/include/c++/4.8/bits/basic_string.h **** * 107:/usr/include/c++/4.8/bits/basic_string.h **** * All but the last paragraph is considered pretty conventional 108:/usr/include/c++/4.8/bits/basic_string.h **** * for a C++ string implementation. 109:/usr/include/c++/4.8/bits/basic_string.h **** */ 110:/usr/include/c++/4.8/bits/basic_string.h **** // 21.3 Template class basic_string 111:/usr/include/c++/4.8/bits/basic_string.h **** template<typename _CharT, typename _Traits, typename _Alloc> 112:/usr/include/c++/4.8/bits/basic_string.h **** class basic_string 113:/usr/include/c++/4.8/bits/basic_string.h **** { 114:/usr/include/c++/4.8/bits/basic_string.h **** typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type; 115:/usr/include/c++/4.8/bits/basic_string.h **** 116:/usr/include/c++/4.8/bits/basic_string.h **** // Types: 117:/usr/include/c++/4.8/bits/basic_string.h **** public: 118:/usr/include/c++/4.8/bits/basic_string.h **** typedef _Traits traits_type; 119:/usr/include/c++/4.8/bits/basic_string.h **** typedef typename _Traits::char_type value_type; 120:/usr/include/c++/4.8/bits/basic_string.h **** typedef _Alloc allocator_type; 121:/usr/include/c++/4.8/bits/basic_string.h **** typedef typename _CharT_alloc_type::size_type size_type; 122:/usr/include/c++/4.8/bits/basic_string.h **** typedef typename _CharT_alloc_type::difference_type difference_type; 123:/usr/include/c++/4.8/bits/basic_string.h **** typedef typename _CharT_alloc_type::reference reference; GAS LISTING /tmp/cc3o2J9C.s page 8 124:/usr/include/c++/4.8/bits/basic_string.h **** typedef typename _CharT_alloc_type::const_reference const_reference; 125:/usr/include/c++/4.8/bits/basic_string.h **** typedef typename _CharT_alloc_type::pointer pointer; 126:/usr/include/c++/4.8/bits/basic_string.h **** typedef typename _CharT_alloc_type::const_pointer const_pointer; 127:/usr/include/c++/4.8/bits/basic_string.h **** typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator; 128:/usr/include/c++/4.8/bits/basic_string.h **** typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string> 129:/usr/include/c++/4.8/bits/basic_string.h **** const_iterator; 130:/usr/include/c++/4.8/bits/basic_string.h **** typedef std::reverse_iterator<const_iterator> const_reverse_iterator; 131:/usr/include/c++/4.8/bits/basic_string.h **** typedef std::reverse_iterator<iterator> reverse_iterator; 132:/usr/include/c++/4.8/bits/basic_string.h **** 133:/usr/include/c++/4.8/bits/basic_string.h **** private: 134:/usr/include/c++/4.8/bits/basic_string.h **** // _Rep: string representation 135:/usr/include/c++/4.8/bits/basic_string.h **** // Invariants: 136:/usr/include/c++/4.8/bits/basic_string.h **** // 1. String really contains _M_length + 1 characters: due to 21.3.4 137:/usr/include/c++/4.8/bits/basic_string.h **** // must be kept null-terminated. 138:/usr/include/c++/4.8/bits/basic_string.h **** // 2. _M_capacity >= _M_length 139:/usr/include/c++/4.8/bits/basic_string.h **** // Allocated memory is always (_M_capacity + 1) * sizeof(_CharT). 140:/usr/include/c++/4.8/bits/basic_string.h **** // 3. _M_refcount has three states: 141:/usr/include/c++/4.8/bits/basic_string.h **** // -1: leaked, one reference, no ref-copies allowed, non-const. 142:/usr/include/c++/4.8/bits/basic_string.h **** // 0: one reference, non-const. 143:/usr/include/c++/4.8/bits/basic_string.h **** // n>0: n + 1 references, operations require a lock, const. 144:/usr/include/c++/4.8/bits/basic_string.h **** // 4. All fields==0 is an empty string, given the extra storage 145:/usr/include/c++/4.8/bits/basic_string.h **** // beyond-the-end for a null terminator; thus, the shared 146:/usr/include/c++/4.8/bits/basic_string.h **** // empty string representation needs no constructor. 147:/usr/include/c++/4.8/bits/basic_string.h **** 148:/usr/include/c++/4.8/bits/basic_string.h **** struct _Rep_base 149:/usr/include/c++/4.8/bits/basic_string.h **** { 150:/usr/include/c++/4.8/bits/basic_string.h **** size_type _M_length; 151:/usr/include/c++/4.8/bits/basic_string.h **** size_type _M_capacity; 152:/usr/include/c++/4.8/bits/basic_string.h **** _Atomic_word _M_refcount; 153:/usr/include/c++/4.8/bits/basic_string.h **** }; 154:/usr/include/c++/4.8/bits/basic_string.h **** 155:/usr/include/c++/4.8/bits/basic_string.h **** struct _Rep : _Rep_base 156:/usr/include/c++/4.8/bits/basic_string.h **** { 157:/usr/include/c++/4.8/bits/basic_string.h **** // Types: 158:/usr/include/c++/4.8/bits/basic_string.h **** typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc; 159:/usr/include/c++/4.8/bits/basic_string.h **** 160:/usr/include/c++/4.8/bits/basic_string.h **** // (Public) Data members: 161:/usr/include/c++/4.8/bits/basic_string.h **** 162:/usr/include/c++/4.8/bits/basic_string.h **** // The maximum number of individual char_type elements of an 163:/usr/include/c++/4.8/bits/basic_string.h **** // individual string is determined by _S_max_size. This is the 164:/usr/include/c++/4.8/bits/basic_string.h **** // value that will be returned by max_size(). (Whereas npos 165:/usr/include/c++/4.8/bits/basic_string.h **** // is the maximum number of bytes the allocator can allocate.) 166:/usr/include/c++/4.8/bits/basic_string.h **** // If one was to divvy up the theoretical largest size string, 167:/usr/include/c++/4.8/bits/basic_string.h **** // with a terminating character and m _CharT elements, it'd 168:/usr/include/c++/4.8/bits/basic_string.h **** // look like this: 169:/usr/include/c++/4.8/bits/basic_string.h **** // npos = sizeof(_Rep) + (m * sizeof(_CharT)) + sizeof(_CharT) 170:/usr/include/c++/4.8/bits/basic_string.h **** // Solving for m: 171:/usr/include/c++/4.8/bits/basic_string.h **** // m = ((npos - sizeof(_Rep))/sizeof(CharT)) - 1 172:/usr/include/c++/4.8/bits/basic_string.h **** // In addition, this implementation quarters this amount. 173:/usr/include/c++/4.8/bits/basic_string.h **** static const size_type _S_max_size; 174:/usr/include/c++/4.8/bits/basic_string.h **** static const _CharT _S_terminal; 175:/usr/include/c++/4.8/bits/basic_string.h **** 176:/usr/include/c++/4.8/bits/basic_string.h **** // The following storage is init'd to 0 by the linker, resulting 177:/usr/include/c++/4.8/bits/basic_string.h **** // (carefully) in an empty string with one reference. 178:/usr/include/c++/4.8/bits/basic_string.h **** static size_type _S_empty_rep_storage[]; 179:/usr/include/c++/4.8/bits/basic_string.h **** 180:/usr/include/c++/4.8/bits/basic_string.h **** static _Rep& GAS LISTING /tmp/cc3o2J9C.s page 9 181:/usr/include/c++/4.8/bits/basic_string.h **** _S_empty_rep() 182:/usr/include/c++/4.8/bits/basic_string.h **** { 183:/usr/include/c++/4.8/bits/basic_string.h **** // NB: Mild hack to avoid strict-aliasing warnings. Note that 184:/usr/include/c++/4.8/bits/basic_string.h **** // _S_empty_rep_storage is never modified and the punning should 185:/usr/include/c++/4.8/bits/basic_string.h **** // be reasonably safe in this case. 186:/usr/include/c++/4.8/bits/basic_string.h **** void* __p = reinterpret_cast<void*>(&_S_empty_rep_storage); 187:/usr/include/c++/4.8/bits/basic_string.h **** return *reinterpret_cast<_Rep*>(__p); 188:/usr/include/c++/4.8/bits/basic_string.h **** } 189:/usr/include/c++/4.8/bits/basic_string.h **** 190:/usr/include/c++/4.8/bits/basic_string.h **** bool 191:/usr/include/c++/4.8/bits/basic_string.h **** _M_is_leaked() const 192:/usr/include/c++/4.8/bits/basic_string.h **** { return this->_M_refcount < 0; } 193:/usr/include/c++/4.8/bits/basic_string.h **** 194:/usr/include/c++/4.8/bits/basic_string.h **** bool 195:/usr/include/c++/4.8/bits/basic_string.h **** _M_is_shared() const 196:/usr/include/c++/4.8/bits/basic_string.h **** { return this->_M_refcount > 0; } 197:/usr/include/c++/4.8/bits/basic_string.h **** 198:/usr/include/c++/4.8/bits/basic_string.h **** void 199:/usr/include/c++/4.8/bits/basic_string.h **** _M_set_leaked() 200:/usr/include/c++/4.8/bits/basic_string.h **** { this->_M_refcount = -1; } 201:/usr/include/c++/4.8/bits/basic_string.h **** 202:/usr/include/c++/4.8/bits/basic_string.h **** void 203:/usr/include/c++/4.8/bits/basic_string.h **** _M_set_sharable() 204:/usr/include/c++/4.8/bits/basic_string.h **** { this->_M_refcount = 0; } 205:/usr/include/c++/4.8/bits/basic_string.h **** 206:/usr/include/c++/4.8/bits/basic_string.h **** void 207:/usr/include/c++/4.8/bits/basic_string.h **** _M_set_length_and_sharable(size_type __n) 208:/usr/include/c++/4.8/bits/basic_string.h **** { 209:/usr/include/c++/4.8/bits/basic_string.h **** #if _GLIBCXX_FULLY_DYNAMIC_STRING == 0 210:/usr/include/c++/4.8/bits/basic_string.h **** if (__builtin_expect(this != &_S_empty_rep(), false)) 211:/usr/include/c++/4.8/bits/basic_string.h **** #endif 212:/usr/include/c++/4.8/bits/basic_string.h **** { 213:/usr/include/c++/4.8/bits/basic_string.h **** this->_M_set_sharable(); // One reference. 214:/usr/include/c++/4.8/bits/basic_string.h **** this->_M_length = __n; 215:/usr/include/c++/4.8/bits/basic_string.h **** traits_type::assign(this->_M_refdata()[__n], _S_terminal); 216:/usr/include/c++/4.8/bits/basic_string.h **** // grrr. (per 21.3.4) 217:/usr/include/c++/4.8/bits/basic_string.h **** // You cannot leave those LWG people alone for a second. 218:/usr/include/c++/4.8/bits/basic_string.h **** } 219:/usr/include/c++/4.8/bits/basic_string.h **** } 220:/usr/include/c++/4.8/bits/basic_string.h **** 221:/usr/include/c++/4.8/bits/basic_string.h **** _CharT* 222:/usr/include/c++/4.8/bits/basic_string.h **** _M_refdata() throw() 223:/usr/include/c++/4.8/bits/basic_string.h **** { return reinterpret_cast<_CharT*>(this + 1); } 224:/usr/include/c++/4.8/bits/basic_string.h **** 225:/usr/include/c++/4.8/bits/basic_string.h **** _CharT* 226:/usr/include/c++/4.8/bits/basic_string.h **** _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2) 227:/usr/include/c++/4.8/bits/basic_string.h **** { 228:/usr/include/c++/4.8/bits/basic_string.h **** return (!_M_is_leaked() && __alloc1 == __alloc2) 229:/usr/include/c++/4.8/bits/basic_string.h **** ? _M_refcopy() : _M_clone(__alloc1); 230:/usr/include/c++/4.8/bits/basic_string.h **** } 231:/usr/include/c++/4.8/bits/basic_string.h **** 232:/usr/include/c++/4.8/bits/basic_string.h **** // Create & Destroy 233:/usr/include/c++/4.8/bits/basic_string.h **** static _Rep* 234:/usr/include/c++/4.8/bits/basic_string.h **** _S_create(size_type, size_type, const _Alloc&); 235:/usr/include/c++/4.8/bits/basic_string.h **** 236:/usr/include/c++/4.8/bits/basic_string.h **** void 237:/usr/include/c++/4.8/bits/basic_string.h **** _M_dispose(const _Alloc& __a) GAS LISTING /tmp/cc3o2J9C.s page 10 238:/usr/include/c++/4.8/bits/basic_string.h **** { 239:/usr/include/c++/4.8/bits/basic_string.h **** #if _GLIBCXX_FULLY_DYNAMIC_STRING == 0 240:/usr/include/c++/4.8/bits/basic_string.h **** if (__builtin_expect(this != &_S_empty_rep(), false)) 241:/usr/include/c++/4.8/bits/basic_string.h **** #endif 242:/usr/include/c++/4.8/bits/basic_string.h **** { 243:/usr/include/c++/4.8/bits/basic_string.h **** // Be race-detector-friendly. For more info see bits/c++config. 244:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(&this->_M_refcount); 245:/usr/include/c++/4.8/bits/basic_string.h **** if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount, 246:/usr/include/c++/4.8/bits/basic_string.h **** -1) <= 0) 247:/usr/include/c++/4.8/bits/basic_string.h **** { 248:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(&this->_M_refcount); 249:/usr/include/c++/4.8/bits/basic_string.h **** _M_destroy(__a); 250:/usr/include/c++/4.8/bits/basic_string.h **** } 251:/usr/include/c++/4.8/bits/basic_string.h **** } 252:/usr/include/c++/4.8/bits/basic_string.h **** } // XXX MT 253:/usr/include/c++/4.8/bits/basic_string.h **** 254:/usr/include/c++/4.8/bits/basic_string.h **** void 255:/usr/include/c++/4.8/bits/basic_string.h **** _M_destroy(const _Alloc&) throw(); 256:/usr/include/c++/4.8/bits/basic_string.h **** 257:/usr/include/c++/4.8/bits/basic_string.h **** _CharT* 258:/usr/include/c++/4.8/bits/basic_string.h **** _M_refcopy() throw() 259:/usr/include/c++/4.8/bits/basic_string.h **** { 260:/usr/include/c++/4.8/bits/basic_string.h **** #if _GLIBCXX_FULLY_DYNAMIC_STRING == 0 261:/usr/include/c++/4.8/bits/basic_string.h **** if (__builtin_expect(this != &_S_empty_rep(), false)) 262:/usr/include/c++/4.8/bits/basic_string.h **** #endif 263:/usr/include/c++/4.8/bits/basic_string.h **** __gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1); 264:/usr/include/c++/4.8/bits/basic_string.h **** return _M_refdata(); 265:/usr/include/c++/4.8/bits/basic_string.h **** } // XXX MT 266:/usr/include/c++/4.8/bits/basic_string.h **** 267:/usr/include/c++/4.8/bits/basic_string.h **** _CharT* 268:/usr/include/c++/4.8/bits/basic_string.h **** _M_clone(const _Alloc&, size_type __res = 0); 269:/usr/include/c++/4.8/bits/basic_string.h **** }; 270:/usr/include/c++/4.8/bits/basic_string.h **** 271:/usr/include/c++/4.8/bits/basic_string.h **** // Use empty-base optimization: http://www.cantrip.org/emptyopt.html 272:/usr/include/c++/4.8/bits/basic_string.h **** struct _Alloc_hider : _Alloc 273:/usr/include/c++/4.8/bits/basic_string.h **** { 274:/usr/include/c++/4.8/bits/basic_string.h **** _Alloc_hider(_CharT* __dat, const _Alloc& __a) 275:/usr/include/c++/4.8/bits/basic_string.h **** : _Alloc(__a), _M_p(__dat) { } 276:/usr/include/c++/4.8/bits/basic_string.h **** 277:/usr/include/c++/4.8/bits/basic_string.h **** _CharT* _M_p; // The actual data. 278:/usr/include/c++/4.8/bits/basic_string.h **** }; 279:/usr/include/c++/4.8/bits/basic_string.h **** 280:/usr/include/c++/4.8/bits/basic_string.h **** public: 281:/usr/include/c++/4.8/bits/basic_string.h **** // Data Members (public): 282:/usr/include/c++/4.8/bits/basic_string.h **** // NB: This is an unsigned type, and thus represents the maximum 283:/usr/include/c++/4.8/bits/basic_string.h **** // size that the allocator can hold. 284:/usr/include/c++/4.8/bits/basic_string.h **** /// Value returned by various member functions when they fail. 285:/usr/include/c++/4.8/bits/basic_string.h **** static const size_type npos = static_cast<size_type>(-1); 286:/usr/include/c++/4.8/bits/basic_string.h **** 287:/usr/include/c++/4.8/bits/basic_string.h **** private: 288:/usr/include/c++/4.8/bits/basic_string.h **** // Data Members (private): 289:/usr/include/c++/4.8/bits/basic_string.h **** mutable _Alloc_hider _M_dataplus; 290:/usr/include/c++/4.8/bits/basic_string.h **** 291:/usr/include/c++/4.8/bits/basic_string.h **** _CharT* 292:/usr/include/c++/4.8/bits/basic_string.h **** _M_data() const 293:/usr/include/c++/4.8/bits/basic_string.h **** { return _M_dataplus._M_p; } 294:/usr/include/c++/4.8/bits/basic_string.h **** GAS LISTING /tmp/cc3o2J9C.s page 11 295:/usr/include/c++/4.8/bits/basic_string.h **** _CharT* 296:/usr/include/c++/4.8/bits/basic_string.h **** _M_data(_CharT* __p) 297:/usr/include/c++/4.8/bits/basic_string.h **** { return (_M_dataplus._M_p = __p); } 298:/usr/include/c++/4.8/bits/basic_string.h **** 299:/usr/include/c++/4.8/bits/basic_string.h **** _Rep* 300:/usr/include/c++/4.8/bits/basic_string.h **** _M_rep() const 301:/usr/include/c++/4.8/bits/basic_string.h **** { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); } 302:/usr/include/c++/4.8/bits/basic_string.h **** 303:/usr/include/c++/4.8/bits/basic_string.h **** // For the internal use we have functions similar to `begin'/`end' 304:/usr/include/c++/4.8/bits/basic_string.h **** // but they do not call _M_leak. 305:/usr/include/c++/4.8/bits/basic_string.h **** iterator 306:/usr/include/c++/4.8/bits/basic_string.h **** _M_ibegin() const 307:/usr/include/c++/4.8/bits/basic_string.h **** { return iterator(_M_data()); } 308:/usr/include/c++/4.8/bits/basic_string.h **** 309:/usr/include/c++/4.8/bits/basic_string.h **** iterator 310:/usr/include/c++/4.8/bits/basic_string.h **** _M_iend() const 311:/usr/include/c++/4.8/bits/basic_string.h **** { return iterator(_M_data() + this->size()); } 312:/usr/include/c++/4.8/bits/basic_string.h **** 313:/usr/include/c++/4.8/bits/basic_string.h **** void 314:/usr/include/c++/4.8/bits/basic_string.h **** _M_leak() // for use in begin() & non-const op[] 315:/usr/include/c++/4.8/bits/basic_string.h **** { 316:/usr/include/c++/4.8/bits/basic_string.h **** if (!_M_rep()->_M_is_leaked()) 317:/usr/include/c++/4.8/bits/basic_string.h **** _M_leak_hard(); 318:/usr/include/c++/4.8/bits/basic_string.h **** } 319:/usr/include/c++/4.8/bits/basic_string.h **** 320:/usr/include/c++/4.8/bits/basic_string.h **** size_type 321:/usr/include/c++/4.8/bits/basic_string.h **** _M_check(size_type __pos, const char* __s) const 322:/usr/include/c++/4.8/bits/basic_string.h **** { 323:/usr/include/c++/4.8/bits/basic_string.h **** if (__pos > this->size()) 324:/usr/include/c++/4.8/bits/basic_string.h **** __throw_out_of_range(__N(__s)); 325:/usr/include/c++/4.8/bits/basic_string.h **** return __pos; 326:/usr/include/c++/4.8/bits/basic_string.h **** } 327:/usr/include/c++/4.8/bits/basic_string.h **** 328:/usr/include/c++/4.8/bits/basic_string.h **** void 329:/usr/include/c++/4.8/bits/basic_string.h **** _M_check_length(size_type __n1, size_type __n2, const char* __s) const 330:/usr/include/c++/4.8/bits/basic_string.h **** { 331:/usr/include/c++/4.8/bits/basic_string.h **** if (this->max_size() - (this->size() - __n1) < __n2) 332:/usr/include/c++/4.8/bits/basic_string.h **** __throw_length_error(__N(__s)); 333:/usr/include/c++/4.8/bits/basic_string.h **** } 334:/usr/include/c++/4.8/bits/basic_string.h **** 335:/usr/include/c++/4.8/bits/basic_string.h **** // NB: _M_limit doesn't check for a bad __pos value. 336:/usr/include/c++/4.8/bits/basic_string.h **** size_type 337:/usr/include/c++/4.8/bits/basic_string.h **** _M_limit(size_type __pos, size_type __off) const 338:/usr/include/c++/4.8/bits/basic_string.h **** { 339:/usr/include/c++/4.8/bits/basic_string.h **** const bool __testoff = __off < this->size() - __pos; 340:/usr/include/c++/4.8/bits/basic_string.h **** return __testoff ? __off : this->size() - __pos; 341:/usr/include/c++/4.8/bits/basic_string.h **** } 342:/usr/include/c++/4.8/bits/basic_string.h **** 343:/usr/include/c++/4.8/bits/basic_string.h **** // True if _Rep and source do not overlap. 344:/usr/include/c++/4.8/bits/basic_string.h **** bool 345:/usr/include/c++/4.8/bits/basic_string.h **** _M_disjunct(const _CharT* __s) const 346:/usr/include/c++/4.8/bits/basic_string.h **** { 347:/usr/include/c++/4.8/bits/basic_string.h **** return (less<const _CharT*>()(__s, _M_data()) 348:/usr/include/c++/4.8/bits/basic_string.h **** || less<const _CharT*>()(_M_data() + this->size(), __s)); 349:/usr/include/c++/4.8/bits/basic_string.h **** } 350:/usr/include/c++/4.8/bits/basic_string.h **** 351:/usr/include/c++/4.8/bits/basic_string.h **** // When __n = 1 way faster than the general multichar GAS LISTING /tmp/cc3o2J9C.s page 12 352:/usr/include/c++/4.8/bits/basic_string.h **** // traits_type::copy/move/assign. 353:/usr/include/c++/4.8/bits/basic_string.h **** static void 354:/usr/include/c++/4.8/bits/basic_string.h **** _M_copy(_CharT* __d, const _CharT* __s, size_type __n) 355:/usr/include/c++/4.8/bits/basic_string.h **** { 356:/usr/include/c++/4.8/bits/basic_string.h **** if (__n == 1) 357:/usr/include/c++/4.8/bits/basic_string.h **** traits_type::assign(*__d, *__s); 358:/usr/include/c++/4.8/bits/basic_string.h **** else 359:/usr/include/c++/4.8/bits/basic_string.h **** traits_type::copy(__d, __s, __n); 360:/usr/include/c++/4.8/bits/basic_string.h **** } 361:/usr/include/c++/4.8/bits/basic_string.h **** 362:/usr/include/c++/4.8/bits/basic_string.h **** static void 363:/usr/include/c++/4.8/bits/basic_string.h **** _M_move(_CharT* __d, const _CharT* __s, size_type __n) 364:/usr/include/c++/4.8/bits/basic_string.h **** { 365:/usr/include/c++/4.8/bits/basic_string.h **** if (__n == 1) 366:/usr/include/c++/4.8/bits/basic_string.h **** traits_type::assign(*__d, *__s); 367:/usr/include/c++/4.8/bits/basic_string.h **** else 368:/usr/include/c++/4.8/bits/basic_string.h **** traits_type::move(__d, __s, __n); 369:/usr/include/c++/4.8/bits/basic_string.h **** } 370:/usr/include/c++/4.8/bits/basic_string.h **** 371:/usr/include/c++/4.8/bits/basic_string.h **** static void 372:/usr/include/c++/4.8/bits/basic_string.h **** _M_assign(_CharT* __d, size_type __n, _CharT __c) 373:/usr/include/c++/4.8/bits/basic_string.h **** { 374:/usr/include/c++/4.8/bits/basic_string.h **** if (__n == 1) 375:/usr/include/c++/4.8/bits/basic_string.h **** traits_type::assign(*__d, __c); 376:/usr/include/c++/4.8/bits/basic_string.h **** else 377:/usr/include/c++/4.8/bits/basic_string.h **** traits_type::assign(__d, __n, __c); 378:/usr/include/c++/4.8/bits/basic_string.h **** } 379:/usr/include/c++/4.8/bits/basic_string.h **** 380:/usr/include/c++/4.8/bits/basic_string.h **** // _S_copy_chars is a separate template to permit specialization 381:/usr/include/c++/4.8/bits/basic_string.h **** // to optimize for the common case of pointers as iterators. 382:/usr/include/c++/4.8/bits/basic_string.h **** template<class _Iterator> 383:/usr/include/c++/4.8/bits/basic_string.h **** static void 384:/usr/include/c++/4.8/bits/basic_string.h **** _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) 385:/usr/include/c++/4.8/bits/basic_string.h **** { 386:/usr/include/c++/4.8/bits/basic_string.h **** for (; __k1 != __k2; ++__k1, ++__p) 387:/usr/include/c++/4.8/bits/basic_string.h **** traits_type::assign(*__p, *__k1); // These types are off. 388:/usr/include/c++/4.8/bits/basic_string.h **** } 389:/usr/include/c++/4.8/bits/basic_string.h **** 390:/usr/include/c++/4.8/bits/basic_string.h **** static void 391:/usr/include/c++/4.8/bits/basic_string.h **** _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) 392:/usr/include/c++/4.8/bits/basic_string.h **** { _S_copy_chars(__p, __k1.base(), __k2.base()); } 393:/usr/include/c++/4.8/bits/basic_string.h **** 394:/usr/include/c++/4.8/bits/basic_string.h **** static void 395:/usr/include/c++/4.8/bits/basic_string.h **** _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) 396:/usr/include/c++/4.8/bits/basic_string.h **** { _S_copy_chars(__p, __k1.base(), __k2.base()); } 397:/usr/include/c++/4.8/bits/basic_string.h **** 398:/usr/include/c++/4.8/bits/basic_string.h **** static void 399:/usr/include/c++/4.8/bits/basic_string.h **** _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) 400:/usr/include/c++/4.8/bits/basic_string.h **** { _M_copy(__p, __k1, __k2 - __k1); } 401:/usr/include/c++/4.8/bits/basic_string.h **** 402:/usr/include/c++/4.8/bits/basic_string.h **** static void 403:/usr/include/c++/4.8/bits/basic_string.h **** _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) 404:/usr/include/c++/4.8/bits/basic_string.h **** { _M_copy(__p, __k1, __k2 - __k1); } 405:/usr/include/c++/4.8/bits/basic_string.h **** 406:/usr/include/c++/4.8/bits/basic_string.h **** static int 407:/usr/include/c++/4.8/bits/basic_string.h **** _S_compare(size_type __n1, size_type __n2) 408:/usr/include/c++/4.8/bits/basic_string.h **** { GAS LISTING /tmp/cc3o2J9C.s page 13 409:/usr/include/c++/4.8/bits/basic_string.h **** const difference_type __d = difference_type(__n1 - __n2); 410:/usr/include/c++/4.8/bits/basic_string.h **** 411:/usr/include/c++/4.8/bits/basic_string.h **** if (__d > __gnu_cxx::__numeric_traits<int>::__max) 412:/usr/include/c++/4.8/bits/basic_string.h **** return __gnu_cxx::__numeric_traits<int>::__max; 413:/usr/include/c++/4.8/bits/basic_string.h **** else if (__d < __gnu_cxx::__numeric_traits<int>::__min) 414:/usr/include/c++/4.8/bits/basic_string.h **** return __gnu_cxx::__numeric_traits<int>::__min; 415:/usr/include/c++/4.8/bits/basic_string.h **** else 416:/usr/include/c++/4.8/bits/basic_string.h **** return int(__d); 417:/usr/include/c++/4.8/bits/basic_string.h **** } 418:/usr/include/c++/4.8/bits/basic_string.h **** 419:/usr/include/c++/4.8/bits/basic_string.h **** void 420:/usr/include/c++/4.8/bits/basic_string.h **** _M_mutate(size_type __pos, size_type __len1, size_type __len2); 421:/usr/include/c++/4.8/bits/basic_string.h **** 422:/usr/include/c++/4.8/bits/basic_string.h **** void 423:/usr/include/c++/4.8/bits/basic_string.h **** _M_leak_hard(); 424:/usr/include/c++/4.8/bits/basic_string.h **** 425:/usr/include/c++/4.8/bits/basic_string.h **** static _Rep& 426:/usr/include/c++/4.8/bits/basic_string.h **** _S_empty_rep() 427:/usr/include/c++/4.8/bits/basic_string.h **** { return _Rep::_S_empty_rep(); } 428:/usr/include/c++/4.8/bits/basic_string.h **** 429:/usr/include/c++/4.8/bits/basic_string.h **** public: 430:/usr/include/c++/4.8/bits/basic_string.h **** // Construct/copy/destroy: 431:/usr/include/c++/4.8/bits/basic_string.h **** // NB: We overload ctors in some cases instead of using default 432:/usr/include/c++/4.8/bits/basic_string.h **** // arguments, per 17.4.4.4 para. 2 item 2. 433:/usr/include/c++/4.8/bits/basic_string.h **** 434:/usr/include/c++/4.8/bits/basic_string.h **** /** 435:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Default constructor creates an empty string. 436:/usr/include/c++/4.8/bits/basic_string.h **** */ 437:/usr/include/c++/4.8/bits/basic_string.h **** basic_string() 438:/usr/include/c++/4.8/bits/basic_string.h **** #if _GLIBCXX_FULLY_DYNAMIC_STRING == 0 439:/usr/include/c++/4.8/bits/basic_string.h **** : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { } 440:/usr/include/c++/4.8/bits/basic_string.h **** #else 441:/usr/include/c++/4.8/bits/basic_string.h **** : _M_dataplus(_S_construct(size_type(), _CharT(), _Alloc()), _Alloc()){ } 442:/usr/include/c++/4.8/bits/basic_string.h **** #endif 443:/usr/include/c++/4.8/bits/basic_string.h **** 444:/usr/include/c++/4.8/bits/basic_string.h **** /** 445:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Construct an empty string using allocator @a a. 446:/usr/include/c++/4.8/bits/basic_string.h **** */ 447:/usr/include/c++/4.8/bits/basic_string.h **** explicit 448:/usr/include/c++/4.8/bits/basic_string.h **** basic_string(const _Alloc& __a); 449:/usr/include/c++/4.8/bits/basic_string.h **** 450:/usr/include/c++/4.8/bits/basic_string.h **** // NB: per LWG issue 42, semantics different from IS: 451:/usr/include/c++/4.8/bits/basic_string.h **** /** 452:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Construct string with copy of value of @a str. 453:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str Source string. 454:/usr/include/c++/4.8/bits/basic_string.h **** */ 455:/usr/include/c++/4.8/bits/basic_string.h **** basic_string(const basic_string& __str); 456:/usr/include/c++/4.8/bits/basic_string.h **** /** 457:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Construct string as copy of a substring. 458:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str Source string. 459:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of first character to copy from. 460:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters to copy (default remainder). 461:/usr/include/c++/4.8/bits/basic_string.h **** */ 462:/usr/include/c++/4.8/bits/basic_string.h **** basic_string(const basic_string& __str, size_type __pos, 463:/usr/include/c++/4.8/bits/basic_string.h **** size_type __n = npos); 464:/usr/include/c++/4.8/bits/basic_string.h **** /** 465:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Construct string as copy of a substring. GAS LISTING /tmp/cc3o2J9C.s page 14 466:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str Source string. 467:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of first character to copy from. 468:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters to copy. 469:/usr/include/c++/4.8/bits/basic_string.h **** * @param __a Allocator to use. 470:/usr/include/c++/4.8/bits/basic_string.h **** */ 471:/usr/include/c++/4.8/bits/basic_string.h **** basic_string(const basic_string& __str, size_type __pos, 472:/usr/include/c++/4.8/bits/basic_string.h **** size_type __n, const _Alloc& __a); 473:/usr/include/c++/4.8/bits/basic_string.h **** 474:/usr/include/c++/4.8/bits/basic_string.h **** /** 475:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Construct string initialized by a character %array. 476:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s Source character %array. 477:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters to copy. 478:/usr/include/c++/4.8/bits/basic_string.h **** * @param __a Allocator to use (default is default allocator). 479:/usr/include/c++/4.8/bits/basic_string.h **** * 480:/usr/include/c++/4.8/bits/basic_string.h **** * NB: @a __s must have at least @a __n characters, '\\0' 481:/usr/include/c++/4.8/bits/basic_string.h **** * has no special meaning. 482:/usr/include/c++/4.8/bits/basic_string.h **** */ 483:/usr/include/c++/4.8/bits/basic_string.h **** basic_string(const _CharT* __s, size_type __n, 484:/usr/include/c++/4.8/bits/basic_string.h **** const _Alloc& __a = _Alloc()); 485:/usr/include/c++/4.8/bits/basic_string.h **** /** 486:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Construct string as copy of a C string. 487:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s Source C string. 488:/usr/include/c++/4.8/bits/basic_string.h **** * @param __a Allocator to use (default is default allocator). 489:/usr/include/c++/4.8/bits/basic_string.h **** */ 490:/usr/include/c++/4.8/bits/basic_string.h **** basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()); 491:/usr/include/c++/4.8/bits/basic_string.h **** /** 492:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Construct string as multiple characters. 493:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters. 494:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c Character to use. 495:/usr/include/c++/4.8/bits/basic_string.h **** * @param __a Allocator to use (default is default allocator). 496:/usr/include/c++/4.8/bits/basic_string.h **** */ 497:/usr/include/c++/4.8/bits/basic_string.h **** basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()); 498:/usr/include/c++/4.8/bits/basic_string.h **** 499:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L 500:/usr/include/c++/4.8/bits/basic_string.h **** /** 501:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Move construct string. 502:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str Source string. 503:/usr/include/c++/4.8/bits/basic_string.h **** * 504:/usr/include/c++/4.8/bits/basic_string.h **** * The newly-created string contains the exact contents of @a __str. 505:/usr/include/c++/4.8/bits/basic_string.h **** * @a __str is a valid, but unspecified string. 506:/usr/include/c++/4.8/bits/basic_string.h **** **/ 507:/usr/include/c++/4.8/bits/basic_string.h **** basic_string(basic_string&& __str) noexcept 508:/usr/include/c++/4.8/bits/basic_string.h **** : _M_dataplus(__str._M_dataplus) 509:/usr/include/c++/4.8/bits/basic_string.h **** { 510:/usr/include/c++/4.8/bits/basic_string.h **** #if _GLIBCXX_FULLY_DYNAMIC_STRING == 0 511:/usr/include/c++/4.8/bits/basic_string.h **** __str._M_data(_S_empty_rep()._M_refdata()); 512:/usr/include/c++/4.8/bits/basic_string.h **** #else 513:/usr/include/c++/4.8/bits/basic_string.h **** __str._M_data(_S_construct(size_type(), _CharT(), get_allocator())); 514:/usr/include/c++/4.8/bits/basic_string.h **** #endif 515:/usr/include/c++/4.8/bits/basic_string.h **** } 516:/usr/include/c++/4.8/bits/basic_string.h **** 517:/usr/include/c++/4.8/bits/basic_string.h **** /** 518:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Construct string from an initializer %list. 519:/usr/include/c++/4.8/bits/basic_string.h **** * @param __l std::initializer_list of characters. 520:/usr/include/c++/4.8/bits/basic_string.h **** * @param __a Allocator to use (default is default allocator). 521:/usr/include/c++/4.8/bits/basic_string.h **** */ 522:/usr/include/c++/4.8/bits/basic_string.h **** basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()); GAS LISTING /tmp/cc3o2J9C.s page 15 523:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11 524:/usr/include/c++/4.8/bits/basic_string.h **** 525:/usr/include/c++/4.8/bits/basic_string.h **** /** 526:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Construct string as copy of a range. 527:/usr/include/c++/4.8/bits/basic_string.h **** * @param __beg Start of range. 528:/usr/include/c++/4.8/bits/basic_string.h **** * @param __end End of range. 529:/usr/include/c++/4.8/bits/basic_string.h **** * @param __a Allocator to use (default is default allocator). 530:/usr/include/c++/4.8/bits/basic_string.h **** */ 531:/usr/include/c++/4.8/bits/basic_string.h **** template<class _InputIterator> 532:/usr/include/c++/4.8/bits/basic_string.h **** basic_string(_InputIterator __beg, _InputIterator __end, 533:/usr/include/c++/4.8/bits/basic_string.h **** const _Alloc& __a = _Alloc()); 534:/usr/include/c++/4.8/bits/basic_string.h **** 535:/usr/include/c++/4.8/bits/basic_string.h **** /** 536:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Destroy the string instance. 537:/usr/include/c++/4.8/bits/basic_string.h **** */ 538:/usr/include/c++/4.8/bits/basic_string.h **** ~basic_string() _GLIBCXX_NOEXCEPT 539:/usr/include/c++/4.8/bits/basic_string.h **** { _M_rep()->_M_dispose(this->get_allocator()); } 540:/usr/include/c++/4.8/bits/basic_string.h **** 541:/usr/include/c++/4.8/bits/basic_string.h **** /** 542:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Assign the value of @a str to this string. 543:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str Source string. 544:/usr/include/c++/4.8/bits/basic_string.h **** */ 545:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 546:/usr/include/c++/4.8/bits/basic_string.h **** operator=(const basic_string& __str) 547:/usr/include/c++/4.8/bits/basic_string.h **** { return this->assign(__str); } 548:/usr/include/c++/4.8/bits/basic_string.h **** 549:/usr/include/c++/4.8/bits/basic_string.h **** /** 550:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Copy contents of @a s into this string. 551:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s Source null-terminated string. 552:/usr/include/c++/4.8/bits/basic_string.h **** */ 553:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 554:/usr/include/c++/4.8/bits/basic_string.h **** operator=(const _CharT* __s) 555:/usr/include/c++/4.8/bits/basic_string.h **** { return this->assign(__s); } 556:/usr/include/c++/4.8/bits/basic_string.h **** 557:/usr/include/c++/4.8/bits/basic_string.h **** /** 558:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Set value to string of length 1. 559:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c Source character. 560:/usr/include/c++/4.8/bits/basic_string.h **** * 561:/usr/include/c++/4.8/bits/basic_string.h **** * Assigning to a character makes this string length 1 and 562:/usr/include/c++/4.8/bits/basic_string.h **** * (*this)[0] == @a c. 563:/usr/include/c++/4.8/bits/basic_string.h **** */ 564:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 565:/usr/include/c++/4.8/bits/basic_string.h **** operator=(_CharT __c) 566:/usr/include/c++/4.8/bits/basic_string.h **** { 567:/usr/include/c++/4.8/bits/basic_string.h **** this->assign(1, __c); 568:/usr/include/c++/4.8/bits/basic_string.h **** return *this; 569:/usr/include/c++/4.8/bits/basic_string.h **** } 570:/usr/include/c++/4.8/bits/basic_string.h **** 571:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L 572:/usr/include/c++/4.8/bits/basic_string.h **** /** 573:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Move assign the value of @a str to this string. 574:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str Source string. 575:/usr/include/c++/4.8/bits/basic_string.h **** * 576:/usr/include/c++/4.8/bits/basic_string.h **** * The contents of @a str are moved into this string (without copying). 577:/usr/include/c++/4.8/bits/basic_string.h **** * @a str is a valid, but unspecified string. 578:/usr/include/c++/4.8/bits/basic_string.h **** **/ 579:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& GAS LISTING /tmp/cc3o2J9C.s page 16 580:/usr/include/c++/4.8/bits/basic_string.h **** operator=(basic_string&& __str) 581:/usr/include/c++/4.8/bits/basic_string.h **** { 582:/usr/include/c++/4.8/bits/basic_string.h **** // NB: DR 1204. 583:/usr/include/c++/4.8/bits/basic_string.h **** this->swap(__str); 584:/usr/include/c++/4.8/bits/basic_string.h **** return *this; 585:/usr/include/c++/4.8/bits/basic_string.h **** } 586:/usr/include/c++/4.8/bits/basic_string.h **** 587:/usr/include/c++/4.8/bits/basic_string.h **** /** 588:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Set value to string constructed from initializer %list. 589:/usr/include/c++/4.8/bits/basic_string.h **** * @param __l std::initializer_list. 590:/usr/include/c++/4.8/bits/basic_string.h **** */ 591:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 592:/usr/include/c++/4.8/bits/basic_string.h **** operator=(initializer_list<_CharT> __l) 593:/usr/include/c++/4.8/bits/basic_string.h **** { 594:/usr/include/c++/4.8/bits/basic_string.h **** this->assign(__l.begin(), __l.size()); 595:/usr/include/c++/4.8/bits/basic_string.h **** return *this; 596:/usr/include/c++/4.8/bits/basic_string.h **** } 597:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11 598:/usr/include/c++/4.8/bits/basic_string.h **** 599:/usr/include/c++/4.8/bits/basic_string.h **** // Iterators: 600:/usr/include/c++/4.8/bits/basic_string.h **** /** 601:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read/write iterator that points to the first character in 602:/usr/include/c++/4.8/bits/basic_string.h **** * the %string. Unshares the string. 603:/usr/include/c++/4.8/bits/basic_string.h **** */ 604:/usr/include/c++/4.8/bits/basic_string.h **** iterator 605:/usr/include/c++/4.8/bits/basic_string.h **** begin() _GLIBCXX_NOEXCEPT 606:/usr/include/c++/4.8/bits/basic_string.h **** { 607:/usr/include/c++/4.8/bits/basic_string.h **** _M_leak(); 608:/usr/include/c++/4.8/bits/basic_string.h **** return iterator(_M_data()); 609:/usr/include/c++/4.8/bits/basic_string.h **** } 610:/usr/include/c++/4.8/bits/basic_string.h **** 611:/usr/include/c++/4.8/bits/basic_string.h **** /** 612:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read-only (constant) iterator that points to the first 613:/usr/include/c++/4.8/bits/basic_string.h **** * character in the %string. 614:/usr/include/c++/4.8/bits/basic_string.h **** */ 615:/usr/include/c++/4.8/bits/basic_string.h **** const_iterator 616:/usr/include/c++/4.8/bits/basic_string.h **** begin() const _GLIBCXX_NOEXCEPT 617:/usr/include/c++/4.8/bits/basic_string.h **** { return const_iterator(_M_data()); } 618:/usr/include/c++/4.8/bits/basic_string.h **** 619:/usr/include/c++/4.8/bits/basic_string.h **** /** 620:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read/write iterator that points one past the last 621:/usr/include/c++/4.8/bits/basic_string.h **** * character in the %string. Unshares the string. 622:/usr/include/c++/4.8/bits/basic_string.h **** */ 623:/usr/include/c++/4.8/bits/basic_string.h **** iterator 624:/usr/include/c++/4.8/bits/basic_string.h **** end() _GLIBCXX_NOEXCEPT 625:/usr/include/c++/4.8/bits/basic_string.h **** { 626:/usr/include/c++/4.8/bits/basic_string.h **** _M_leak(); 627:/usr/include/c++/4.8/bits/basic_string.h **** return iterator(_M_data() + this->size()); 628:/usr/include/c++/4.8/bits/basic_string.h **** } 629:/usr/include/c++/4.8/bits/basic_string.h **** 630:/usr/include/c++/4.8/bits/basic_string.h **** /** 631:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read-only (constant) iterator that points one past the 632:/usr/include/c++/4.8/bits/basic_string.h **** * last character in the %string. 633:/usr/include/c++/4.8/bits/basic_string.h **** */ 634:/usr/include/c++/4.8/bits/basic_string.h **** const_iterator 635:/usr/include/c++/4.8/bits/basic_string.h **** end() const _GLIBCXX_NOEXCEPT 636:/usr/include/c++/4.8/bits/basic_string.h **** { return const_iterator(_M_data() + this->size()); } GAS LISTING /tmp/cc3o2J9C.s page 17 637:/usr/include/c++/4.8/bits/basic_string.h **** 638:/usr/include/c++/4.8/bits/basic_string.h **** /** 639:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read/write reverse iterator that points to the last 640:/usr/include/c++/4.8/bits/basic_string.h **** * character in the %string. Iteration is done in reverse element 641:/usr/include/c++/4.8/bits/basic_string.h **** * order. Unshares the string. 642:/usr/include/c++/4.8/bits/basic_string.h **** */ 643:/usr/include/c++/4.8/bits/basic_string.h **** reverse_iterator 644:/usr/include/c++/4.8/bits/basic_string.h **** rbegin() _GLIBCXX_NOEXCEPT 645:/usr/include/c++/4.8/bits/basic_string.h **** { return reverse_iterator(this->end()); } 646:/usr/include/c++/4.8/bits/basic_string.h **** 647:/usr/include/c++/4.8/bits/basic_string.h **** /** 648:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read-only (constant) reverse iterator that points 649:/usr/include/c++/4.8/bits/basic_string.h **** * to the last character in the %string. Iteration is done in 650:/usr/include/c++/4.8/bits/basic_string.h **** * reverse element order. 651:/usr/include/c++/4.8/bits/basic_string.h **** */ 652:/usr/include/c++/4.8/bits/basic_string.h **** const_reverse_iterator 653:/usr/include/c++/4.8/bits/basic_string.h **** rbegin() const _GLIBCXX_NOEXCEPT 654:/usr/include/c++/4.8/bits/basic_string.h **** { return const_reverse_iterator(this->end()); } 655:/usr/include/c++/4.8/bits/basic_string.h **** 656:/usr/include/c++/4.8/bits/basic_string.h **** /** 657:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read/write reverse iterator that points to one before the 658:/usr/include/c++/4.8/bits/basic_string.h **** * first character in the %string. Iteration is done in reverse 659:/usr/include/c++/4.8/bits/basic_string.h **** * element order. Unshares the string. 660:/usr/include/c++/4.8/bits/basic_string.h **** */ 661:/usr/include/c++/4.8/bits/basic_string.h **** reverse_iterator 662:/usr/include/c++/4.8/bits/basic_string.h **** rend() _GLIBCXX_NOEXCEPT 663:/usr/include/c++/4.8/bits/basic_string.h **** { return reverse_iterator(this->begin()); } 664:/usr/include/c++/4.8/bits/basic_string.h **** 665:/usr/include/c++/4.8/bits/basic_string.h **** /** 666:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read-only (constant) reverse iterator that points 667:/usr/include/c++/4.8/bits/basic_string.h **** * to one before the first character in the %string. Iteration 668:/usr/include/c++/4.8/bits/basic_string.h **** * is done in reverse element order. 669:/usr/include/c++/4.8/bits/basic_string.h **** */ 670:/usr/include/c++/4.8/bits/basic_string.h **** const_reverse_iterator 671:/usr/include/c++/4.8/bits/basic_string.h **** rend() const _GLIBCXX_NOEXCEPT 672:/usr/include/c++/4.8/bits/basic_string.h **** { return const_reverse_iterator(this->begin()); } 673:/usr/include/c++/4.8/bits/basic_string.h **** 674:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L 675:/usr/include/c++/4.8/bits/basic_string.h **** /** 676:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read-only (constant) iterator that points to the first 677:/usr/include/c++/4.8/bits/basic_string.h **** * character in the %string. 678:/usr/include/c++/4.8/bits/basic_string.h **** */ 679:/usr/include/c++/4.8/bits/basic_string.h **** const_iterator 680:/usr/include/c++/4.8/bits/basic_string.h **** cbegin() const noexcept 681:/usr/include/c++/4.8/bits/basic_string.h **** { return const_iterator(this->_M_data()); } 682:/usr/include/c++/4.8/bits/basic_string.h **** 683:/usr/include/c++/4.8/bits/basic_string.h **** /** 684:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read-only (constant) iterator that points one past the 685:/usr/include/c++/4.8/bits/basic_string.h **** * last character in the %string. 686:/usr/include/c++/4.8/bits/basic_string.h **** */ 687:/usr/include/c++/4.8/bits/basic_string.h **** const_iterator 688:/usr/include/c++/4.8/bits/basic_string.h **** cend() const noexcept 689:/usr/include/c++/4.8/bits/basic_string.h **** { return const_iterator(this->_M_data() + this->size()); } 690:/usr/include/c++/4.8/bits/basic_string.h **** 691:/usr/include/c++/4.8/bits/basic_string.h **** /** 692:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read-only (constant) reverse iterator that points 693:/usr/include/c++/4.8/bits/basic_string.h **** * to the last character in the %string. Iteration is done in GAS LISTING /tmp/cc3o2J9C.s page 18 694:/usr/include/c++/4.8/bits/basic_string.h **** * reverse element order. 695:/usr/include/c++/4.8/bits/basic_string.h **** */ 696:/usr/include/c++/4.8/bits/basic_string.h **** const_reverse_iterator 697:/usr/include/c++/4.8/bits/basic_string.h **** crbegin() const noexcept 698:/usr/include/c++/4.8/bits/basic_string.h **** { return const_reverse_iterator(this->end()); } 699:/usr/include/c++/4.8/bits/basic_string.h **** 700:/usr/include/c++/4.8/bits/basic_string.h **** /** 701:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read-only (constant) reverse iterator that points 702:/usr/include/c++/4.8/bits/basic_string.h **** * to one before the first character in the %string. Iteration 703:/usr/include/c++/4.8/bits/basic_string.h **** * is done in reverse element order. 704:/usr/include/c++/4.8/bits/basic_string.h **** */ 705:/usr/include/c++/4.8/bits/basic_string.h **** const_reverse_iterator 706:/usr/include/c++/4.8/bits/basic_string.h **** crend() const noexcept 707:/usr/include/c++/4.8/bits/basic_string.h **** { return const_reverse_iterator(this->begin()); } 708:/usr/include/c++/4.8/bits/basic_string.h **** #endif 709:/usr/include/c++/4.8/bits/basic_string.h **** 710:/usr/include/c++/4.8/bits/basic_string.h **** public: 711:/usr/include/c++/4.8/bits/basic_string.h **** // Capacity: 712:/usr/include/c++/4.8/bits/basic_string.h **** /// Returns the number of characters in the string, not including any 713:/usr/include/c++/4.8/bits/basic_string.h **** /// null-termination. 714:/usr/include/c++/4.8/bits/basic_string.h **** size_type 715:/usr/include/c++/4.8/bits/basic_string.h **** size() const _GLIBCXX_NOEXCEPT 716:/usr/include/c++/4.8/bits/basic_string.h **** { return _M_rep()->_M_length; } 717:/usr/include/c++/4.8/bits/basic_string.h **** 718:/usr/include/c++/4.8/bits/basic_string.h **** /// Returns the number of characters in the string, not including any 719:/usr/include/c++/4.8/bits/basic_string.h **** /// null-termination. 720:/usr/include/c++/4.8/bits/basic_string.h **** size_type 721:/usr/include/c++/4.8/bits/basic_string.h **** length() const _GLIBCXX_NOEXCEPT 722:/usr/include/c++/4.8/bits/basic_string.h **** { return _M_rep()->_M_length; } 723:/usr/include/c++/4.8/bits/basic_string.h **** 724:/usr/include/c++/4.8/bits/basic_string.h **** /// Returns the size() of the largest possible %string. 725:/usr/include/c++/4.8/bits/basic_string.h **** size_type 726:/usr/include/c++/4.8/bits/basic_string.h **** max_size() const _GLIBCXX_NOEXCEPT 727:/usr/include/c++/4.8/bits/basic_string.h **** { return _Rep::_S_max_size; } 728:/usr/include/c++/4.8/bits/basic_string.h **** 729:/usr/include/c++/4.8/bits/basic_string.h **** /** 730:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Resizes the %string to the specified number of characters. 731:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters the %string should contain. 732:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c Character to fill any new elements. 733:/usr/include/c++/4.8/bits/basic_string.h **** * 734:/usr/include/c++/4.8/bits/basic_string.h **** * This function will %resize the %string to the specified 735:/usr/include/c++/4.8/bits/basic_string.h **** * number of characters. If the number is smaller than the 736:/usr/include/c++/4.8/bits/basic_string.h **** * %string's current size the %string is truncated, otherwise 737:/usr/include/c++/4.8/bits/basic_string.h **** * the %string is extended and new elements are %set to @a __c. 738:/usr/include/c++/4.8/bits/basic_string.h **** */ 739:/usr/include/c++/4.8/bits/basic_string.h **** void 740:/usr/include/c++/4.8/bits/basic_string.h **** resize(size_type __n, _CharT __c); 741:/usr/include/c++/4.8/bits/basic_string.h **** 742:/usr/include/c++/4.8/bits/basic_string.h **** /** 743:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Resizes the %string to the specified number of characters. 744:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters the %string should contain. 745:/usr/include/c++/4.8/bits/basic_string.h **** * 746:/usr/include/c++/4.8/bits/basic_string.h **** * This function will resize the %string to the specified length. If 747:/usr/include/c++/4.8/bits/basic_string.h **** * the new size is smaller than the %string's current size the %string 748:/usr/include/c++/4.8/bits/basic_string.h **** * is truncated, otherwise the %string is extended and new characters 749:/usr/include/c++/4.8/bits/basic_string.h **** * are default-constructed. For basic types such as char, this means 750:/usr/include/c++/4.8/bits/basic_string.h **** * setting them to 0. GAS LISTING /tmp/cc3o2J9C.s page 19 751:/usr/include/c++/4.8/bits/basic_string.h **** */ 752:/usr/include/c++/4.8/bits/basic_string.h **** void 753:/usr/include/c++/4.8/bits/basic_string.h **** resize(size_type __n) 754:/usr/include/c++/4.8/bits/basic_string.h **** { this->resize(__n, _CharT()); } 755:/usr/include/c++/4.8/bits/basic_string.h **** 756:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L 757:/usr/include/c++/4.8/bits/basic_string.h **** /// A non-binding request to reduce capacity() to size(). 758:/usr/include/c++/4.8/bits/basic_string.h **** void 759:/usr/include/c++/4.8/bits/basic_string.h **** shrink_to_fit() 760:/usr/include/c++/4.8/bits/basic_string.h **** { 761:/usr/include/c++/4.8/bits/basic_string.h **** if (capacity() > size()) 762:/usr/include/c++/4.8/bits/basic_string.h **** { 763:/usr/include/c++/4.8/bits/basic_string.h **** __try 764:/usr/include/c++/4.8/bits/basic_string.h **** { reserve(0); } 765:/usr/include/c++/4.8/bits/basic_string.h **** __catch(...) 766:/usr/include/c++/4.8/bits/basic_string.h **** { } 767:/usr/include/c++/4.8/bits/basic_string.h **** } 768:/usr/include/c++/4.8/bits/basic_string.h **** } 769:/usr/include/c++/4.8/bits/basic_string.h **** #endif 770:/usr/include/c++/4.8/bits/basic_string.h **** 771:/usr/include/c++/4.8/bits/basic_string.h **** /** 772:/usr/include/c++/4.8/bits/basic_string.h **** * Returns the total number of characters that the %string can hold 773:/usr/include/c++/4.8/bits/basic_string.h **** * before needing to allocate more memory. 774:/usr/include/c++/4.8/bits/basic_string.h **** */ 775:/usr/include/c++/4.8/bits/basic_string.h **** size_type 776:/usr/include/c++/4.8/bits/basic_string.h **** capacity() const _GLIBCXX_NOEXCEPT 777:/usr/include/c++/4.8/bits/basic_string.h **** { return _M_rep()->_M_capacity; } 778:/usr/include/c++/4.8/bits/basic_string.h **** 779:/usr/include/c++/4.8/bits/basic_string.h **** /** 780:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Attempt to preallocate enough memory for specified number of 781:/usr/include/c++/4.8/bits/basic_string.h **** * characters. 782:/usr/include/c++/4.8/bits/basic_string.h **** * @param __res_arg Number of characters required. 783:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If @a __res_arg exceeds @c max_size(). 784:/usr/include/c++/4.8/bits/basic_string.h **** * 785:/usr/include/c++/4.8/bits/basic_string.h **** * This function attempts to reserve enough memory for the 786:/usr/include/c++/4.8/bits/basic_string.h **** * %string to hold the specified number of characters. If the 787:/usr/include/c++/4.8/bits/basic_string.h **** * number requested is more than max_size(), length_error is 788:/usr/include/c++/4.8/bits/basic_string.h **** * thrown. 789:/usr/include/c++/4.8/bits/basic_string.h **** * 790:/usr/include/c++/4.8/bits/basic_string.h **** * The advantage of this function is that if optimal code is a 791:/usr/include/c++/4.8/bits/basic_string.h **** * necessity and the user can determine the string length that will be 792:/usr/include/c++/4.8/bits/basic_string.h **** * required, the user can reserve the memory in %advance, and thus 793:/usr/include/c++/4.8/bits/basic_string.h **** * prevent a possible reallocation of memory and copying of %string 794:/usr/include/c++/4.8/bits/basic_string.h **** * data. 795:/usr/include/c++/4.8/bits/basic_string.h **** */ 796:/usr/include/c++/4.8/bits/basic_string.h **** void 797:/usr/include/c++/4.8/bits/basic_string.h **** reserve(size_type __res_arg = 0); 798:/usr/include/c++/4.8/bits/basic_string.h **** 799:/usr/include/c++/4.8/bits/basic_string.h **** /** 800:/usr/include/c++/4.8/bits/basic_string.h **** * Erases the string, making it empty. 801:/usr/include/c++/4.8/bits/basic_string.h **** */ 802:/usr/include/c++/4.8/bits/basic_string.h **** void 803:/usr/include/c++/4.8/bits/basic_string.h **** clear() _GLIBCXX_NOEXCEPT 804:/usr/include/c++/4.8/bits/basic_string.h **** { _M_mutate(0, this->size(), 0); } 805:/usr/include/c++/4.8/bits/basic_string.h **** 806:/usr/include/c++/4.8/bits/basic_string.h **** /** 807:/usr/include/c++/4.8/bits/basic_string.h **** * Returns true if the %string is empty. Equivalent to GAS LISTING /tmp/cc3o2J9C.s page 20 808:/usr/include/c++/4.8/bits/basic_string.h **** * <code>*this == ""</code>. 809:/usr/include/c++/4.8/bits/basic_string.h **** */ 810:/usr/include/c++/4.8/bits/basic_string.h **** bool 811:/usr/include/c++/4.8/bits/basic_string.h **** empty() const _GLIBCXX_NOEXCEPT 812:/usr/include/c++/4.8/bits/basic_string.h **** { return this->size() == 0; } 813:/usr/include/c++/4.8/bits/basic_string.h **** 814:/usr/include/c++/4.8/bits/basic_string.h **** // Element access: 815:/usr/include/c++/4.8/bits/basic_string.h **** /** 816:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Subscript access to the data contained in the %string. 817:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos The index of the character to access. 818:/usr/include/c++/4.8/bits/basic_string.h **** * @return Read-only (constant) reference to the character. 819:/usr/include/c++/4.8/bits/basic_string.h **** * 820:/usr/include/c++/4.8/bits/basic_string.h **** * This operator allows for easy, array-style, data access. 821:/usr/include/c++/4.8/bits/basic_string.h **** * Note that data access with this operator is unchecked and 822:/usr/include/c++/4.8/bits/basic_string.h **** * out_of_range lookups are not defined. (For checked lookups 823:/usr/include/c++/4.8/bits/basic_string.h **** * see at().) 824:/usr/include/c++/4.8/bits/basic_string.h **** */ 825:/usr/include/c++/4.8/bits/basic_string.h **** const_reference 826:/usr/include/c++/4.8/bits/basic_string.h **** operator[] (size_type __pos) const 827:/usr/include/c++/4.8/bits/basic_string.h **** { 828:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_DEBUG_ASSERT(__pos <= size()); 829:/usr/include/c++/4.8/bits/basic_string.h **** return _M_data()[__pos]; 830:/usr/include/c++/4.8/bits/basic_string.h **** } 831:/usr/include/c++/4.8/bits/basic_string.h **** 832:/usr/include/c++/4.8/bits/basic_string.h **** /** 833:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Subscript access to the data contained in the %string. 834:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos The index of the character to access. 835:/usr/include/c++/4.8/bits/basic_string.h **** * @return Read/write reference to the character. 836:/usr/include/c++/4.8/bits/basic_string.h **** * 837:/usr/include/c++/4.8/bits/basic_string.h **** * This operator allows for easy, array-style, data access. 838:/usr/include/c++/4.8/bits/basic_string.h **** * Note that data access with this operator is unchecked and 839:/usr/include/c++/4.8/bits/basic_string.h **** * out_of_range lookups are not defined. (For checked lookups 840:/usr/include/c++/4.8/bits/basic_string.h **** * see at().) Unshares the string. 841:/usr/include/c++/4.8/bits/basic_string.h **** */ 842:/usr/include/c++/4.8/bits/basic_string.h **** reference 843:/usr/include/c++/4.8/bits/basic_string.h **** operator[](size_type __pos) 844:/usr/include/c++/4.8/bits/basic_string.h **** { 845:/usr/include/c++/4.8/bits/basic_string.h **** // allow pos == size() as v3 extension: 846:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_DEBUG_ASSERT(__pos <= size()); 847:/usr/include/c++/4.8/bits/basic_string.h **** // but be strict in pedantic mode: 848:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_DEBUG_PEDASSERT(__pos < size()); 849:/usr/include/c++/4.8/bits/basic_string.h **** _M_leak(); 850:/usr/include/c++/4.8/bits/basic_string.h **** return _M_data()[__pos]; 851:/usr/include/c++/4.8/bits/basic_string.h **** } 852:/usr/include/c++/4.8/bits/basic_string.h **** 853:/usr/include/c++/4.8/bits/basic_string.h **** /** 854:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Provides access to the data contained in the %string. 855:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n The index of the character to access. 856:/usr/include/c++/4.8/bits/basic_string.h **** * @return Read-only (const) reference to the character. 857:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range If @a n is an invalid index. 858:/usr/include/c++/4.8/bits/basic_string.h **** * 859:/usr/include/c++/4.8/bits/basic_string.h **** * This function provides for safer data access. The parameter is 860:/usr/include/c++/4.8/bits/basic_string.h **** * first checked that it is in the range of the string. The function 861:/usr/include/c++/4.8/bits/basic_string.h **** * throws out_of_range if the check fails. 862:/usr/include/c++/4.8/bits/basic_string.h **** */ 863:/usr/include/c++/4.8/bits/basic_string.h **** const_reference 864:/usr/include/c++/4.8/bits/basic_string.h **** at(size_type __n) const GAS LISTING /tmp/cc3o2J9C.s page 21 865:/usr/include/c++/4.8/bits/basic_string.h **** { 866:/usr/include/c++/4.8/bits/basic_string.h **** if (__n >= this->size()) 867:/usr/include/c++/4.8/bits/basic_string.h **** __throw_out_of_range(__N("basic_string::at")); 868:/usr/include/c++/4.8/bits/basic_string.h **** return _M_data()[__n]; 869:/usr/include/c++/4.8/bits/basic_string.h **** } 870:/usr/include/c++/4.8/bits/basic_string.h **** 871:/usr/include/c++/4.8/bits/basic_string.h **** /** 872:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Provides access to the data contained in the %string. 873:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n The index of the character to access. 874:/usr/include/c++/4.8/bits/basic_string.h **** * @return Read/write reference to the character. 875:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range If @a n is an invalid index. 876:/usr/include/c++/4.8/bits/basic_string.h **** * 877:/usr/include/c++/4.8/bits/basic_string.h **** * This function provides for safer data access. The parameter is 878:/usr/include/c++/4.8/bits/basic_string.h **** * first checked that it is in the range of the string. The function 879:/usr/include/c++/4.8/bits/basic_string.h **** * throws out_of_range if the check fails. Success results in 880:/usr/include/c++/4.8/bits/basic_string.h **** * unsharing the string. 881:/usr/include/c++/4.8/bits/basic_string.h **** */ 882:/usr/include/c++/4.8/bits/basic_string.h **** reference 883:/usr/include/c++/4.8/bits/basic_string.h **** at(size_type __n) 884:/usr/include/c++/4.8/bits/basic_string.h **** { 885:/usr/include/c++/4.8/bits/basic_string.h **** if (__n >= size()) 886:/usr/include/c++/4.8/bits/basic_string.h **** __throw_out_of_range(__N("basic_string::at")); 887:/usr/include/c++/4.8/bits/basic_string.h **** _M_leak(); 888:/usr/include/c++/4.8/bits/basic_string.h **** return _M_data()[__n]; 889:/usr/include/c++/4.8/bits/basic_string.h **** } 890:/usr/include/c++/4.8/bits/basic_string.h **** 891:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L 892:/usr/include/c++/4.8/bits/basic_string.h **** /** 893:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read/write reference to the data at the first 894:/usr/include/c++/4.8/bits/basic_string.h **** * element of the %string. 895:/usr/include/c++/4.8/bits/basic_string.h **** */ 896:/usr/include/c++/4.8/bits/basic_string.h **** reference 897:/usr/include/c++/4.8/bits/basic_string.h **** front() 898:/usr/include/c++/4.8/bits/basic_string.h **** { return operator[](0); } 899:/usr/include/c++/4.8/bits/basic_string.h **** 900:/usr/include/c++/4.8/bits/basic_string.h **** /** 901:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read-only (constant) reference to the data at the first 902:/usr/include/c++/4.8/bits/basic_string.h **** * element of the %string. 903:/usr/include/c++/4.8/bits/basic_string.h **** */ 904:/usr/include/c++/4.8/bits/basic_string.h **** const_reference 905:/usr/include/c++/4.8/bits/basic_string.h **** front() const 906:/usr/include/c++/4.8/bits/basic_string.h **** { return operator[](0); } 907:/usr/include/c++/4.8/bits/basic_string.h **** 908:/usr/include/c++/4.8/bits/basic_string.h **** /** 909:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read/write reference to the data at the last 910:/usr/include/c++/4.8/bits/basic_string.h **** * element of the %string. 911:/usr/include/c++/4.8/bits/basic_string.h **** */ 912:/usr/include/c++/4.8/bits/basic_string.h **** reference 913:/usr/include/c++/4.8/bits/basic_string.h **** back() 914:/usr/include/c++/4.8/bits/basic_string.h **** { return operator[](this->size() - 1); } 915:/usr/include/c++/4.8/bits/basic_string.h **** 916:/usr/include/c++/4.8/bits/basic_string.h **** /** 917:/usr/include/c++/4.8/bits/basic_string.h **** * Returns a read-only (constant) reference to the data at the 918:/usr/include/c++/4.8/bits/basic_string.h **** * last element of the %string. 919:/usr/include/c++/4.8/bits/basic_string.h **** */ 920:/usr/include/c++/4.8/bits/basic_string.h **** const_reference 921:/usr/include/c++/4.8/bits/basic_string.h **** back() const GAS LISTING /tmp/cc3o2J9C.s page 22 922:/usr/include/c++/4.8/bits/basic_string.h **** { return operator[](this->size() - 1); } 923:/usr/include/c++/4.8/bits/basic_string.h **** #endif 924:/usr/include/c++/4.8/bits/basic_string.h **** 925:/usr/include/c++/4.8/bits/basic_string.h **** // Modifiers: 926:/usr/include/c++/4.8/bits/basic_string.h **** /** 927:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Append a string to this string. 928:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str The string to append. 929:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 930:/usr/include/c++/4.8/bits/basic_string.h **** */ 931:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 932:/usr/include/c++/4.8/bits/basic_string.h **** operator+=(const basic_string& __str) 933:/usr/include/c++/4.8/bits/basic_string.h **** { return this->append(__str); } 934:/usr/include/c++/4.8/bits/basic_string.h **** 935:/usr/include/c++/4.8/bits/basic_string.h **** /** 936:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Append a C string. 937:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s The C string to append. 938:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 939:/usr/include/c++/4.8/bits/basic_string.h **** */ 940:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 941:/usr/include/c++/4.8/bits/basic_string.h **** operator+=(const _CharT* __s) 942:/usr/include/c++/4.8/bits/basic_string.h **** { return this->append(__s); } 943:/usr/include/c++/4.8/bits/basic_string.h **** 944:/usr/include/c++/4.8/bits/basic_string.h **** /** 945:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Append a character. 946:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c The character to append. 947:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 948:/usr/include/c++/4.8/bits/basic_string.h **** */ 949:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 950:/usr/include/c++/4.8/bits/basic_string.h **** operator+=(_CharT __c) 951:/usr/include/c++/4.8/bits/basic_string.h **** { 952:/usr/include/c++/4.8/bits/basic_string.h **** this->push_back(__c); 953:/usr/include/c++/4.8/bits/basic_string.h **** return *this; 954:/usr/include/c++/4.8/bits/basic_string.h **** } 955:/usr/include/c++/4.8/bits/basic_string.h **** 956:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L 957:/usr/include/c++/4.8/bits/basic_string.h **** /** 958:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Append an initializer_list of characters. 959:/usr/include/c++/4.8/bits/basic_string.h **** * @param __l The initializer_list of characters to be appended. 960:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 961:/usr/include/c++/4.8/bits/basic_string.h **** */ 962:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 963:/usr/include/c++/4.8/bits/basic_string.h **** operator+=(initializer_list<_CharT> __l) 964:/usr/include/c++/4.8/bits/basic_string.h **** { return this->append(__l.begin(), __l.size()); } 965:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11 966:/usr/include/c++/4.8/bits/basic_string.h **** 967:/usr/include/c++/4.8/bits/basic_string.h **** /** 968:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Append a string to this string. 969:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str The string to append. 970:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 971:/usr/include/c++/4.8/bits/basic_string.h **** */ 972:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 973:/usr/include/c++/4.8/bits/basic_string.h **** append(const basic_string& __str); 974:/usr/include/c++/4.8/bits/basic_string.h **** 975:/usr/include/c++/4.8/bits/basic_string.h **** /** 976:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Append a substring. 977:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str The string to append. 978:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of the first character of str to append. GAS LISTING /tmp/cc3o2J9C.s page 23 979:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n The number of characters to append. 980:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 981:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range if @a __pos is not a valid index. 982:/usr/include/c++/4.8/bits/basic_string.h **** * 983:/usr/include/c++/4.8/bits/basic_string.h **** * This function appends @a __n characters from @a __str 984:/usr/include/c++/4.8/bits/basic_string.h **** * starting at @a __pos to this string. If @a __n is is larger 985:/usr/include/c++/4.8/bits/basic_string.h **** * than the number of available characters in @a __str, the 986:/usr/include/c++/4.8/bits/basic_string.h **** * remainder of @a __str is appended. 987:/usr/include/c++/4.8/bits/basic_string.h **** */ 988:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 989:/usr/include/c++/4.8/bits/basic_string.h **** append(const basic_string& __str, size_type __pos, size_type __n); 990:/usr/include/c++/4.8/bits/basic_string.h **** 991:/usr/include/c++/4.8/bits/basic_string.h **** /** 992:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Append a C substring. 993:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s The C string to append. 994:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n The number of characters to append. 995:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 996:/usr/include/c++/4.8/bits/basic_string.h **** */ 997:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 998:/usr/include/c++/4.8/bits/basic_string.h **** append(const _CharT* __s, size_type __n); 999:/usr/include/c++/4.8/bits/basic_string.h **** 1000:/usr/include/c++/4.8/bits/basic_string.h **** /** 1001:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Append a C string. 1002:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s The C string to append. 1003:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1004:/usr/include/c++/4.8/bits/basic_string.h **** */ 1005:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1006:/usr/include/c++/4.8/bits/basic_string.h **** append(const _CharT* __s) 1007:/usr/include/c++/4.8/bits/basic_string.h **** { 1008:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_string(__s); 1009:/usr/include/c++/4.8/bits/basic_string.h **** return this->append(__s, traits_type::length(__s)); 1010:/usr/include/c++/4.8/bits/basic_string.h **** } 1011:/usr/include/c++/4.8/bits/basic_string.h **** 1012:/usr/include/c++/4.8/bits/basic_string.h **** /** 1013:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Append multiple characters. 1014:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n The number of characters to append. 1015:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c The character to use. 1016:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1017:/usr/include/c++/4.8/bits/basic_string.h **** * 1018:/usr/include/c++/4.8/bits/basic_string.h **** * Appends __n copies of __c to this string. 1019:/usr/include/c++/4.8/bits/basic_string.h **** */ 1020:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1021:/usr/include/c++/4.8/bits/basic_string.h **** append(size_type __n, _CharT __c); 1022:/usr/include/c++/4.8/bits/basic_string.h **** 1023:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L 1024:/usr/include/c++/4.8/bits/basic_string.h **** /** 1025:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Append an initializer_list of characters. 1026:/usr/include/c++/4.8/bits/basic_string.h **** * @param __l The initializer_list of characters to append. 1027:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1028:/usr/include/c++/4.8/bits/basic_string.h **** */ 1029:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1030:/usr/include/c++/4.8/bits/basic_string.h **** append(initializer_list<_CharT> __l) 1031:/usr/include/c++/4.8/bits/basic_string.h **** { return this->append(__l.begin(), __l.size()); } 1032:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11 1033:/usr/include/c++/4.8/bits/basic_string.h **** 1034:/usr/include/c++/4.8/bits/basic_string.h **** /** 1035:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Append a range of characters. GAS LISTING /tmp/cc3o2J9C.s page 24 1036:/usr/include/c++/4.8/bits/basic_string.h **** * @param __first Iterator referencing the first character to append. 1037:/usr/include/c++/4.8/bits/basic_string.h **** * @param __last Iterator marking the end of the range. 1038:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1039:/usr/include/c++/4.8/bits/basic_string.h **** * 1040:/usr/include/c++/4.8/bits/basic_string.h **** * Appends characters in the range [__first,__last) to this string. 1041:/usr/include/c++/4.8/bits/basic_string.h **** */ 1042:/usr/include/c++/4.8/bits/basic_string.h **** template<class _InputIterator> 1043:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1044:/usr/include/c++/4.8/bits/basic_string.h **** append(_InputIterator __first, _InputIterator __last) 1045:/usr/include/c++/4.8/bits/basic_string.h **** { return this->replace(_M_iend(), _M_iend(), __first, __last); } 1046:/usr/include/c++/4.8/bits/basic_string.h **** 1047:/usr/include/c++/4.8/bits/basic_string.h **** /** 1048:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Append a single character. 1049:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c Character to append. 1050:/usr/include/c++/4.8/bits/basic_string.h **** */ 1051:/usr/include/c++/4.8/bits/basic_string.h **** void 1052:/usr/include/c++/4.8/bits/basic_string.h **** push_back(_CharT __c) 1053:/usr/include/c++/4.8/bits/basic_string.h **** { 1054:/usr/include/c++/4.8/bits/basic_string.h **** const size_type __len = 1 + this->size(); 1055:/usr/include/c++/4.8/bits/basic_string.h **** if (__len > this->capacity() || _M_rep()->_M_is_shared()) 1056:/usr/include/c++/4.8/bits/basic_string.h **** this->reserve(__len); 1057:/usr/include/c++/4.8/bits/basic_string.h **** traits_type::assign(_M_data()[this->size()], __c); 1058:/usr/include/c++/4.8/bits/basic_string.h **** _M_rep()->_M_set_length_and_sharable(__len); 1059:/usr/include/c++/4.8/bits/basic_string.h **** } 1060:/usr/include/c++/4.8/bits/basic_string.h **** 1061:/usr/include/c++/4.8/bits/basic_string.h **** /** 1062:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Set value to contents of another string. 1063:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str Source string to use. 1064:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1065:/usr/include/c++/4.8/bits/basic_string.h **** */ 1066:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1067:/usr/include/c++/4.8/bits/basic_string.h **** assign(const basic_string& __str); 1068:/usr/include/c++/4.8/bits/basic_string.h **** 1069:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L 1070:/usr/include/c++/4.8/bits/basic_string.h **** /** 1071:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Set value to contents of another string. 1072:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str Source string to use. 1073:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1074:/usr/include/c++/4.8/bits/basic_string.h **** * 1075:/usr/include/c++/4.8/bits/basic_string.h **** * This function sets this string to the exact contents of @a __str. 1076:/usr/include/c++/4.8/bits/basic_string.h **** * @a __str is a valid, but unspecified string. 1077:/usr/include/c++/4.8/bits/basic_string.h **** */ 1078:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1079:/usr/include/c++/4.8/bits/basic_string.h **** assign(basic_string&& __str) 1080:/usr/include/c++/4.8/bits/basic_string.h **** { 1081:/usr/include/c++/4.8/bits/basic_string.h **** this->swap(__str); 1082:/usr/include/c++/4.8/bits/basic_string.h **** return *this; 1083:/usr/include/c++/4.8/bits/basic_string.h **** } 1084:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11 1085:/usr/include/c++/4.8/bits/basic_string.h **** 1086:/usr/include/c++/4.8/bits/basic_string.h **** /** 1087:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Set value to a substring of a string. 1088:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str The string to use. 1089:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of the first character of str. 1090:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters to use. 1091:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1092:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range if @a pos is not a valid index. GAS LISTING /tmp/cc3o2J9C.s page 25 1093:/usr/include/c++/4.8/bits/basic_string.h **** * 1094:/usr/include/c++/4.8/bits/basic_string.h **** * This function sets this string to the substring of @a __str 1095:/usr/include/c++/4.8/bits/basic_string.h **** * consisting of @a __n characters at @a __pos. If @a __n is 1096:/usr/include/c++/4.8/bits/basic_string.h **** * is larger than the number of available characters in @a 1097:/usr/include/c++/4.8/bits/basic_string.h **** * __str, the remainder of @a __str is used. 1098:/usr/include/c++/4.8/bits/basic_string.h **** */ 1099:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1100:/usr/include/c++/4.8/bits/basic_string.h **** assign(const basic_string& __str, size_type __pos, size_type __n) 1101:/usr/include/c++/4.8/bits/basic_string.h **** { return this->assign(__str._M_data() 1102:/usr/include/c++/4.8/bits/basic_string.h **** + __str._M_check(__pos, "basic_string::assign"), 1103:/usr/include/c++/4.8/bits/basic_string.h **** __str._M_limit(__pos, __n)); } 1104:/usr/include/c++/4.8/bits/basic_string.h **** 1105:/usr/include/c++/4.8/bits/basic_string.h **** /** 1106:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Set value to a C substring. 1107:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s The C string to use. 1108:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters to use. 1109:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1110:/usr/include/c++/4.8/bits/basic_string.h **** * 1111:/usr/include/c++/4.8/bits/basic_string.h **** * This function sets the value of this string to the first @a __n 1112:/usr/include/c++/4.8/bits/basic_string.h **** * characters of @a __s. If @a __n is is larger than the number of 1113:/usr/include/c++/4.8/bits/basic_string.h **** * available characters in @a __s, the remainder of @a __s is used. 1114:/usr/include/c++/4.8/bits/basic_string.h **** */ 1115:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1116:/usr/include/c++/4.8/bits/basic_string.h **** assign(const _CharT* __s, size_type __n); 1117:/usr/include/c++/4.8/bits/basic_string.h **** 1118:/usr/include/c++/4.8/bits/basic_string.h **** /** 1119:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Set value to contents of a C string. 1120:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s The C string to use. 1121:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1122:/usr/include/c++/4.8/bits/basic_string.h **** * 1123:/usr/include/c++/4.8/bits/basic_string.h **** * This function sets the value of this string to the value of @a __s. 1124:/usr/include/c++/4.8/bits/basic_string.h **** * The data is copied, so there is no dependence on @a __s once the 1125:/usr/include/c++/4.8/bits/basic_string.h **** * function returns. 1126:/usr/include/c++/4.8/bits/basic_string.h **** */ 1127:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1128:/usr/include/c++/4.8/bits/basic_string.h **** assign(const _CharT* __s) 1129:/usr/include/c++/4.8/bits/basic_string.h **** { 1130:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_string(__s); 1131:/usr/include/c++/4.8/bits/basic_string.h **** return this->assign(__s, traits_type::length(__s)); 1132:/usr/include/c++/4.8/bits/basic_string.h **** } 1133:/usr/include/c++/4.8/bits/basic_string.h **** 1134:/usr/include/c++/4.8/bits/basic_string.h **** /** 1135:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Set value to multiple characters. 1136:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Length of the resulting string. 1137:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c The character to use. 1138:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1139:/usr/include/c++/4.8/bits/basic_string.h **** * 1140:/usr/include/c++/4.8/bits/basic_string.h **** * This function sets the value of this string to @a __n copies of 1141:/usr/include/c++/4.8/bits/basic_string.h **** * character @a __c. 1142:/usr/include/c++/4.8/bits/basic_string.h **** */ 1143:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1144:/usr/include/c++/4.8/bits/basic_string.h **** assign(size_type __n, _CharT __c) 1145:/usr/include/c++/4.8/bits/basic_string.h **** { return _M_replace_aux(size_type(0), this->size(), __n, __c); } 1146:/usr/include/c++/4.8/bits/basic_string.h **** 1147:/usr/include/c++/4.8/bits/basic_string.h **** /** 1148:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Set value to a range of characters. 1149:/usr/include/c++/4.8/bits/basic_string.h **** * @param __first Iterator referencing the first character to append. GAS LISTING /tmp/cc3o2J9C.s page 26 1150:/usr/include/c++/4.8/bits/basic_string.h **** * @param __last Iterator marking the end of the range. 1151:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1152:/usr/include/c++/4.8/bits/basic_string.h **** * 1153:/usr/include/c++/4.8/bits/basic_string.h **** * Sets value of string to characters in the range [__first,__last). 1154:/usr/include/c++/4.8/bits/basic_string.h **** */ 1155:/usr/include/c++/4.8/bits/basic_string.h **** template<class _InputIterator> 1156:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1157:/usr/include/c++/4.8/bits/basic_string.h **** assign(_InputIterator __first, _InputIterator __last) 1158:/usr/include/c++/4.8/bits/basic_string.h **** { return this->replace(_M_ibegin(), _M_iend(), __first, __last); } 1159:/usr/include/c++/4.8/bits/basic_string.h **** 1160:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L 1161:/usr/include/c++/4.8/bits/basic_string.h **** /** 1162:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Set value to an initializer_list of characters. 1163:/usr/include/c++/4.8/bits/basic_string.h **** * @param __l The initializer_list of characters to assign. 1164:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1165:/usr/include/c++/4.8/bits/basic_string.h **** */ 1166:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1167:/usr/include/c++/4.8/bits/basic_string.h **** assign(initializer_list<_CharT> __l) 1168:/usr/include/c++/4.8/bits/basic_string.h **** { return this->assign(__l.begin(), __l.size()); } 1169:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11 1170:/usr/include/c++/4.8/bits/basic_string.h **** 1171:/usr/include/c++/4.8/bits/basic_string.h **** /** 1172:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Insert multiple characters. 1173:/usr/include/c++/4.8/bits/basic_string.h **** * @param __p Iterator referencing location in string to insert at. 1174:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters to insert 1175:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c The character to insert. 1176:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1177:/usr/include/c++/4.8/bits/basic_string.h **** * 1178:/usr/include/c++/4.8/bits/basic_string.h **** * Inserts @a __n copies of character @a __c starting at the 1179:/usr/include/c++/4.8/bits/basic_string.h **** * position referenced by iterator @a __p. If adding 1180:/usr/include/c++/4.8/bits/basic_string.h **** * characters causes the length to exceed max_size(), 1181:/usr/include/c++/4.8/bits/basic_string.h **** * length_error is thrown. The value of the string doesn't 1182:/usr/include/c++/4.8/bits/basic_string.h **** * change if an error is thrown. 1183:/usr/include/c++/4.8/bits/basic_string.h **** */ 1184:/usr/include/c++/4.8/bits/basic_string.h **** void 1185:/usr/include/c++/4.8/bits/basic_string.h **** insert(iterator __p, size_type __n, _CharT __c) 1186:/usr/include/c++/4.8/bits/basic_string.h **** { this->replace(__p, __p, __n, __c); } 1187:/usr/include/c++/4.8/bits/basic_string.h **** 1188:/usr/include/c++/4.8/bits/basic_string.h **** /** 1189:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Insert a range of characters. 1190:/usr/include/c++/4.8/bits/basic_string.h **** * @param __p Iterator referencing location in string to insert at. 1191:/usr/include/c++/4.8/bits/basic_string.h **** * @param __beg Start of range. 1192:/usr/include/c++/4.8/bits/basic_string.h **** * @param __end End of range. 1193:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1194:/usr/include/c++/4.8/bits/basic_string.h **** * 1195:/usr/include/c++/4.8/bits/basic_string.h **** * Inserts characters in range [__beg,__end). If adding 1196:/usr/include/c++/4.8/bits/basic_string.h **** * characters causes the length to exceed max_size(), 1197:/usr/include/c++/4.8/bits/basic_string.h **** * length_error is thrown. The value of the string doesn't 1198:/usr/include/c++/4.8/bits/basic_string.h **** * change if an error is thrown. 1199:/usr/include/c++/4.8/bits/basic_string.h **** */ 1200:/usr/include/c++/4.8/bits/basic_string.h **** template<class _InputIterator> 1201:/usr/include/c++/4.8/bits/basic_string.h **** void 1202:/usr/include/c++/4.8/bits/basic_string.h **** insert(iterator __p, _InputIterator __beg, _InputIterator __end) 1203:/usr/include/c++/4.8/bits/basic_string.h **** { this->replace(__p, __p, __beg, __end); } 1204:/usr/include/c++/4.8/bits/basic_string.h **** 1205:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L 1206:/usr/include/c++/4.8/bits/basic_string.h **** /** GAS LISTING /tmp/cc3o2J9C.s page 27 1207:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Insert an initializer_list of characters. 1208:/usr/include/c++/4.8/bits/basic_string.h **** * @param __p Iterator referencing location in string to insert at. 1209:/usr/include/c++/4.8/bits/basic_string.h **** * @param __l The initializer_list of characters to insert. 1210:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1211:/usr/include/c++/4.8/bits/basic_string.h **** */ 1212:/usr/include/c++/4.8/bits/basic_string.h **** void 1213:/usr/include/c++/4.8/bits/basic_string.h **** insert(iterator __p, initializer_list<_CharT> __l) 1214:/usr/include/c++/4.8/bits/basic_string.h **** { 1215:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_DEBUG_PEDASSERT(__p >= _M_ibegin() && __p <= _M_iend()); 1216:/usr/include/c++/4.8/bits/basic_string.h **** this->insert(__p - _M_ibegin(), __l.begin(), __l.size()); 1217:/usr/include/c++/4.8/bits/basic_string.h **** } 1218:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11 1219:/usr/include/c++/4.8/bits/basic_string.h **** 1220:/usr/include/c++/4.8/bits/basic_string.h **** /** 1221:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Insert value of a string. 1222:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos1 Iterator referencing location in string to insert at. 1223:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str The string to insert. 1224:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1225:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1226:/usr/include/c++/4.8/bits/basic_string.h **** * 1227:/usr/include/c++/4.8/bits/basic_string.h **** * Inserts value of @a __str starting at @a __pos1. If adding 1228:/usr/include/c++/4.8/bits/basic_string.h **** * characters causes the length to exceed max_size(), 1229:/usr/include/c++/4.8/bits/basic_string.h **** * length_error is thrown. The value of the string doesn't 1230:/usr/include/c++/4.8/bits/basic_string.h **** * change if an error is thrown. 1231:/usr/include/c++/4.8/bits/basic_string.h **** */ 1232:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1233:/usr/include/c++/4.8/bits/basic_string.h **** insert(size_type __pos1, const basic_string& __str) 1234:/usr/include/c++/4.8/bits/basic_string.h **** { return this->insert(__pos1, __str, size_type(0), __str.size()); } 1235:/usr/include/c++/4.8/bits/basic_string.h **** 1236:/usr/include/c++/4.8/bits/basic_string.h **** /** 1237:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Insert a substring. 1238:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos1 Iterator referencing location in string to insert at. 1239:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str The string to insert. 1240:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos2 Start of characters in str to insert. 1241:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters to insert. 1242:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1243:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1244:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range If @a pos1 > size() or 1245:/usr/include/c++/4.8/bits/basic_string.h **** * @a __pos2 > @a str.size(). 1246:/usr/include/c++/4.8/bits/basic_string.h **** * 1247:/usr/include/c++/4.8/bits/basic_string.h **** * Starting at @a pos1, insert @a __n character of @a __str 1248:/usr/include/c++/4.8/bits/basic_string.h **** * beginning with @a __pos2. If adding characters causes the 1249:/usr/include/c++/4.8/bits/basic_string.h **** * length to exceed max_size(), length_error is thrown. If @a 1250:/usr/include/c++/4.8/bits/basic_string.h **** * __pos1 is beyond the end of this string or @a __pos2 is 1251:/usr/include/c++/4.8/bits/basic_string.h **** * beyond the end of @a __str, out_of_range is thrown. The 1252:/usr/include/c++/4.8/bits/basic_string.h **** * value of the string doesn't change if an error is thrown. 1253:/usr/include/c++/4.8/bits/basic_string.h **** */ 1254:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1255:/usr/include/c++/4.8/bits/basic_string.h **** insert(size_type __pos1, const basic_string& __str, 1256:/usr/include/c++/4.8/bits/basic_string.h **** size_type __pos2, size_type __n) 1257:/usr/include/c++/4.8/bits/basic_string.h **** { return this->insert(__pos1, __str._M_data() 1258:/usr/include/c++/4.8/bits/basic_string.h **** + __str._M_check(__pos2, "basic_string::insert"), 1259:/usr/include/c++/4.8/bits/basic_string.h **** __str._M_limit(__pos2, __n)); } 1260:/usr/include/c++/4.8/bits/basic_string.h **** 1261:/usr/include/c++/4.8/bits/basic_string.h **** /** 1262:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Insert a C substring. 1263:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Iterator referencing location in string to insert at. GAS LISTING /tmp/cc3o2J9C.s page 28 1264:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s The C string to insert. 1265:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n The number of characters to insert. 1266:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1267:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1268:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range If @a __pos is beyond the end of this 1269:/usr/include/c++/4.8/bits/basic_string.h **** * string. 1270:/usr/include/c++/4.8/bits/basic_string.h **** * 1271:/usr/include/c++/4.8/bits/basic_string.h **** * Inserts the first @a __n characters of @a __s starting at @a 1272:/usr/include/c++/4.8/bits/basic_string.h **** * __pos. If adding characters causes the length to exceed 1273:/usr/include/c++/4.8/bits/basic_string.h **** * max_size(), length_error is thrown. If @a __pos is beyond 1274:/usr/include/c++/4.8/bits/basic_string.h **** * end(), out_of_range is thrown. The value of the string 1275:/usr/include/c++/4.8/bits/basic_string.h **** * doesn't change if an error is thrown. 1276:/usr/include/c++/4.8/bits/basic_string.h **** */ 1277:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1278:/usr/include/c++/4.8/bits/basic_string.h **** insert(size_type __pos, const _CharT* __s, size_type __n); 1279:/usr/include/c++/4.8/bits/basic_string.h **** 1280:/usr/include/c++/4.8/bits/basic_string.h **** /** 1281:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Insert a C string. 1282:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Iterator referencing location in string to insert at. 1283:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s The C string to insert. 1284:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1285:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1286:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range If @a pos is beyond the end of this 1287:/usr/include/c++/4.8/bits/basic_string.h **** * string. 1288:/usr/include/c++/4.8/bits/basic_string.h **** * 1289:/usr/include/c++/4.8/bits/basic_string.h **** * Inserts the first @a n characters of @a __s starting at @a __pos. If 1290:/usr/include/c++/4.8/bits/basic_string.h **** * adding characters causes the length to exceed max_size(), 1291:/usr/include/c++/4.8/bits/basic_string.h **** * length_error is thrown. If @a __pos is beyond end(), out_of_range is 1292:/usr/include/c++/4.8/bits/basic_string.h **** * thrown. The value of the string doesn't change if an error is 1293:/usr/include/c++/4.8/bits/basic_string.h **** * thrown. 1294:/usr/include/c++/4.8/bits/basic_string.h **** */ 1295:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1296:/usr/include/c++/4.8/bits/basic_string.h **** insert(size_type __pos, const _CharT* __s) 1297:/usr/include/c++/4.8/bits/basic_string.h **** { 1298:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_string(__s); 1299:/usr/include/c++/4.8/bits/basic_string.h **** return this->insert(__pos, __s, traits_type::length(__s)); 1300:/usr/include/c++/4.8/bits/basic_string.h **** } 1301:/usr/include/c++/4.8/bits/basic_string.h **** 1302:/usr/include/c++/4.8/bits/basic_string.h **** /** 1303:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Insert multiple characters. 1304:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index in string to insert at. 1305:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters to insert 1306:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c The character to insert. 1307:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1308:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1309:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range If @a __pos is beyond the end of this 1310:/usr/include/c++/4.8/bits/basic_string.h **** * string. 1311:/usr/include/c++/4.8/bits/basic_string.h **** * 1312:/usr/include/c++/4.8/bits/basic_string.h **** * Inserts @a __n copies of character @a __c starting at index 1313:/usr/include/c++/4.8/bits/basic_string.h **** * @a __pos. If adding characters causes the length to exceed 1314:/usr/include/c++/4.8/bits/basic_string.h **** * max_size(), length_error is thrown. If @a __pos > length(), 1315:/usr/include/c++/4.8/bits/basic_string.h **** * out_of_range is thrown. The value of the string doesn't 1316:/usr/include/c++/4.8/bits/basic_string.h **** * change if an error is thrown. 1317:/usr/include/c++/4.8/bits/basic_string.h **** */ 1318:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1319:/usr/include/c++/4.8/bits/basic_string.h **** insert(size_type __pos, size_type __n, _CharT __c) 1320:/usr/include/c++/4.8/bits/basic_string.h **** { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), GAS LISTING /tmp/cc3o2J9C.s page 29 1321:/usr/include/c++/4.8/bits/basic_string.h **** size_type(0), __n, __c); } 1322:/usr/include/c++/4.8/bits/basic_string.h **** 1323:/usr/include/c++/4.8/bits/basic_string.h **** /** 1324:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Insert one character. 1325:/usr/include/c++/4.8/bits/basic_string.h **** * @param __p Iterator referencing position in string to insert at. 1326:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c The character to insert. 1327:/usr/include/c++/4.8/bits/basic_string.h **** * @return Iterator referencing newly inserted char. 1328:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1329:/usr/include/c++/4.8/bits/basic_string.h **** * 1330:/usr/include/c++/4.8/bits/basic_string.h **** * Inserts character @a __c at position referenced by @a __p. 1331:/usr/include/c++/4.8/bits/basic_string.h **** * If adding character causes the length to exceed max_size(), 1332:/usr/include/c++/4.8/bits/basic_string.h **** * length_error is thrown. If @a __p is beyond end of string, 1333:/usr/include/c++/4.8/bits/basic_string.h **** * out_of_range is thrown. The value of the string doesn't 1334:/usr/include/c++/4.8/bits/basic_string.h **** * change if an error is thrown. 1335:/usr/include/c++/4.8/bits/basic_string.h **** */ 1336:/usr/include/c++/4.8/bits/basic_string.h **** iterator 1337:/usr/include/c++/4.8/bits/basic_string.h **** insert(iterator __p, _CharT __c) 1338:/usr/include/c++/4.8/bits/basic_string.h **** { 1339:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_DEBUG_PEDASSERT(__p >= _M_ibegin() && __p <= _M_iend()); 1340:/usr/include/c++/4.8/bits/basic_string.h **** const size_type __pos = __p - _M_ibegin(); 1341:/usr/include/c++/4.8/bits/basic_string.h **** _M_replace_aux(__pos, size_type(0), size_type(1), __c); 1342:/usr/include/c++/4.8/bits/basic_string.h **** _M_rep()->_M_set_leaked(); 1343:/usr/include/c++/4.8/bits/basic_string.h **** return iterator(_M_data() + __pos); 1344:/usr/include/c++/4.8/bits/basic_string.h **** } 1345:/usr/include/c++/4.8/bits/basic_string.h **** 1346:/usr/include/c++/4.8/bits/basic_string.h **** /** 1347:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Remove characters. 1348:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of first character to remove (default 0). 1349:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters to remove (default remainder). 1350:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1351:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range If @a pos is beyond the end of this 1352:/usr/include/c++/4.8/bits/basic_string.h **** * string. 1353:/usr/include/c++/4.8/bits/basic_string.h **** * 1354:/usr/include/c++/4.8/bits/basic_string.h **** * Removes @a __n characters from this string starting at @a 1355:/usr/include/c++/4.8/bits/basic_string.h **** * __pos. The length of the string is reduced by @a __n. If 1356:/usr/include/c++/4.8/bits/basic_string.h **** * there are < @a __n characters to remove, the remainder of 1357:/usr/include/c++/4.8/bits/basic_string.h **** * the string is truncated. If @a __p is beyond end of string, 1358:/usr/include/c++/4.8/bits/basic_string.h **** * out_of_range is thrown. The value of the string doesn't 1359:/usr/include/c++/4.8/bits/basic_string.h **** * change if an error is thrown. 1360:/usr/include/c++/4.8/bits/basic_string.h **** */ 1361:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1362:/usr/include/c++/4.8/bits/basic_string.h **** erase(size_type __pos = 0, size_type __n = npos) 1363:/usr/include/c++/4.8/bits/basic_string.h **** { 1364:/usr/include/c++/4.8/bits/basic_string.h **** _M_mutate(_M_check(__pos, "basic_string::erase"), 1365:/usr/include/c++/4.8/bits/basic_string.h **** _M_limit(__pos, __n), size_type(0)); 1366:/usr/include/c++/4.8/bits/basic_string.h **** return *this; 1367:/usr/include/c++/4.8/bits/basic_string.h **** } 1368:/usr/include/c++/4.8/bits/basic_string.h **** 1369:/usr/include/c++/4.8/bits/basic_string.h **** /** 1370:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Remove one character. 1371:/usr/include/c++/4.8/bits/basic_string.h **** * @param __position Iterator referencing the character to remove. 1372:/usr/include/c++/4.8/bits/basic_string.h **** * @return iterator referencing same location after removal. 1373:/usr/include/c++/4.8/bits/basic_string.h **** * 1374:/usr/include/c++/4.8/bits/basic_string.h **** * Removes the character at @a __position from this string. The value 1375:/usr/include/c++/4.8/bits/basic_string.h **** * of the string doesn't change if an error is thrown. 1376:/usr/include/c++/4.8/bits/basic_string.h **** */ 1377:/usr/include/c++/4.8/bits/basic_string.h **** iterator GAS LISTING /tmp/cc3o2J9C.s page 30 1378:/usr/include/c++/4.8/bits/basic_string.h **** erase(iterator __position) 1379:/usr/include/c++/4.8/bits/basic_string.h **** { 1380:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_DEBUG_PEDASSERT(__position >= _M_ibegin() 1381:/usr/include/c++/4.8/bits/basic_string.h **** && __position < _M_iend()); 1382:/usr/include/c++/4.8/bits/basic_string.h **** const size_type __pos = __position - _M_ibegin(); 1383:/usr/include/c++/4.8/bits/basic_string.h **** _M_mutate(__pos, size_type(1), size_type(0)); 1384:/usr/include/c++/4.8/bits/basic_string.h **** _M_rep()->_M_set_leaked(); 1385:/usr/include/c++/4.8/bits/basic_string.h **** return iterator(_M_data() + __pos); 1386:/usr/include/c++/4.8/bits/basic_string.h **** } 1387:/usr/include/c++/4.8/bits/basic_string.h **** 1388:/usr/include/c++/4.8/bits/basic_string.h **** /** 1389:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Remove a range of characters. 1390:/usr/include/c++/4.8/bits/basic_string.h **** * @param __first Iterator referencing the first character to remove. 1391:/usr/include/c++/4.8/bits/basic_string.h **** * @param __last Iterator referencing the end of the range. 1392:/usr/include/c++/4.8/bits/basic_string.h **** * @return Iterator referencing location of first after removal. 1393:/usr/include/c++/4.8/bits/basic_string.h **** * 1394:/usr/include/c++/4.8/bits/basic_string.h **** * Removes the characters in the range [first,last) from this string. 1395:/usr/include/c++/4.8/bits/basic_string.h **** * The value of the string doesn't change if an error is thrown. 1396:/usr/include/c++/4.8/bits/basic_string.h **** */ 1397:/usr/include/c++/4.8/bits/basic_string.h **** iterator 1398:/usr/include/c++/4.8/bits/basic_string.h **** erase(iterator __first, iterator __last); 1399:/usr/include/c++/4.8/bits/basic_string.h **** 1400:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L 1401:/usr/include/c++/4.8/bits/basic_string.h **** /** 1402:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Remove the last character. 1403:/usr/include/c++/4.8/bits/basic_string.h **** * 1404:/usr/include/c++/4.8/bits/basic_string.h **** * The string must be non-empty. 1405:/usr/include/c++/4.8/bits/basic_string.h **** */ 1406:/usr/include/c++/4.8/bits/basic_string.h **** void 1407:/usr/include/c++/4.8/bits/basic_string.h **** pop_back() 1408:/usr/include/c++/4.8/bits/basic_string.h **** { erase(size()-1, 1); } 1409:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11 1410:/usr/include/c++/4.8/bits/basic_string.h **** 1411:/usr/include/c++/4.8/bits/basic_string.h **** /** 1412:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Replace characters with value from another string. 1413:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of first character to replace. 1414:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters to be replaced. 1415:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str String to insert. 1416:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1417:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range If @a pos is beyond the end of this 1418:/usr/include/c++/4.8/bits/basic_string.h **** * string. 1419:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1420:/usr/include/c++/4.8/bits/basic_string.h **** * 1421:/usr/include/c++/4.8/bits/basic_string.h **** * Removes the characters in the range [__pos,__pos+__n) from 1422:/usr/include/c++/4.8/bits/basic_string.h **** * this string. In place, the value of @a __str is inserted. 1423:/usr/include/c++/4.8/bits/basic_string.h **** * If @a __pos is beyond end of string, out_of_range is thrown. 1424:/usr/include/c++/4.8/bits/basic_string.h **** * If the length of the result exceeds max_size(), length_error 1425:/usr/include/c++/4.8/bits/basic_string.h **** * is thrown. The value of the string doesn't change if an 1426:/usr/include/c++/4.8/bits/basic_string.h **** * error is thrown. 1427:/usr/include/c++/4.8/bits/basic_string.h **** */ 1428:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1429:/usr/include/c++/4.8/bits/basic_string.h **** replace(size_type __pos, size_type __n, const basic_string& __str) 1430:/usr/include/c++/4.8/bits/basic_string.h **** { return this->replace(__pos, __n, __str._M_data(), __str.size()); } 1431:/usr/include/c++/4.8/bits/basic_string.h **** 1432:/usr/include/c++/4.8/bits/basic_string.h **** /** 1433:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Replace characters with value from another string. 1434:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos1 Index of first character to replace. GAS LISTING /tmp/cc3o2J9C.s page 31 1435:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n1 Number of characters to be replaced. 1436:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str String to insert. 1437:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos2 Index of first character of str to use. 1438:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n2 Number of characters from str to use. 1439:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1440:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range If @a __pos1 > size() or @a __pos2 > 1441:/usr/include/c++/4.8/bits/basic_string.h **** * __str.size(). 1442:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1443:/usr/include/c++/4.8/bits/basic_string.h **** * 1444:/usr/include/c++/4.8/bits/basic_string.h **** * Removes the characters in the range [__pos1,__pos1 + n) from this 1445:/usr/include/c++/4.8/bits/basic_string.h **** * string. In place, the value of @a __str is inserted. If @a __pos is 1446:/usr/include/c++/4.8/bits/basic_string.h **** * beyond end of string, out_of_range is thrown. If the length of the 1447:/usr/include/c++/4.8/bits/basic_string.h **** * result exceeds max_size(), length_error is thrown. The value of the 1448:/usr/include/c++/4.8/bits/basic_string.h **** * string doesn't change if an error is thrown. 1449:/usr/include/c++/4.8/bits/basic_string.h **** */ 1450:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1451:/usr/include/c++/4.8/bits/basic_string.h **** replace(size_type __pos1, size_type __n1, const basic_string& __str, 1452:/usr/include/c++/4.8/bits/basic_string.h **** size_type __pos2, size_type __n2) 1453:/usr/include/c++/4.8/bits/basic_string.h **** { return this->replace(__pos1, __n1, __str._M_data() 1454:/usr/include/c++/4.8/bits/basic_string.h **** + __str._M_check(__pos2, "basic_string::replace"), 1455:/usr/include/c++/4.8/bits/basic_string.h **** __str._M_limit(__pos2, __n2)); } 1456:/usr/include/c++/4.8/bits/basic_string.h **** 1457:/usr/include/c++/4.8/bits/basic_string.h **** /** 1458:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Replace characters with value of a C substring. 1459:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of first character to replace. 1460:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n1 Number of characters to be replaced. 1461:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string to insert. 1462:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n2 Number of characters from @a s to use. 1463:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1464:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range If @a pos1 > size(). 1465:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1466:/usr/include/c++/4.8/bits/basic_string.h **** * 1467:/usr/include/c++/4.8/bits/basic_string.h **** * Removes the characters in the range [__pos,__pos + __n1) 1468:/usr/include/c++/4.8/bits/basic_string.h **** * from this string. In place, the first @a __n2 characters of 1469:/usr/include/c++/4.8/bits/basic_string.h **** * @a __s are inserted, or all of @a __s if @a __n2 is too large. If 1470:/usr/include/c++/4.8/bits/basic_string.h **** * @a __pos is beyond end of string, out_of_range is thrown. If 1471:/usr/include/c++/4.8/bits/basic_string.h **** * the length of result exceeds max_size(), length_error is 1472:/usr/include/c++/4.8/bits/basic_string.h **** * thrown. The value of the string doesn't change if an error 1473:/usr/include/c++/4.8/bits/basic_string.h **** * is thrown. 1474:/usr/include/c++/4.8/bits/basic_string.h **** */ 1475:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1476:/usr/include/c++/4.8/bits/basic_string.h **** replace(size_type __pos, size_type __n1, const _CharT* __s, 1477:/usr/include/c++/4.8/bits/basic_string.h **** size_type __n2); 1478:/usr/include/c++/4.8/bits/basic_string.h **** 1479:/usr/include/c++/4.8/bits/basic_string.h **** /** 1480:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Replace characters with value of a C string. 1481:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of first character to replace. 1482:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n1 Number of characters to be replaced. 1483:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string to insert. 1484:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1485:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range If @a pos > size(). 1486:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1487:/usr/include/c++/4.8/bits/basic_string.h **** * 1488:/usr/include/c++/4.8/bits/basic_string.h **** * Removes the characters in the range [__pos,__pos + __n1) 1489:/usr/include/c++/4.8/bits/basic_string.h **** * from this string. In place, the characters of @a __s are 1490:/usr/include/c++/4.8/bits/basic_string.h **** * inserted. If @a __pos is beyond end of string, out_of_range 1491:/usr/include/c++/4.8/bits/basic_string.h **** * is thrown. If the length of result exceeds max_size(), GAS LISTING /tmp/cc3o2J9C.s page 32 1492:/usr/include/c++/4.8/bits/basic_string.h **** * length_error is thrown. The value of the string doesn't 1493:/usr/include/c++/4.8/bits/basic_string.h **** * change if an error is thrown. 1494:/usr/include/c++/4.8/bits/basic_string.h **** */ 1495:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1496:/usr/include/c++/4.8/bits/basic_string.h **** replace(size_type __pos, size_type __n1, const _CharT* __s) 1497:/usr/include/c++/4.8/bits/basic_string.h **** { 1498:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_string(__s); 1499:/usr/include/c++/4.8/bits/basic_string.h **** return this->replace(__pos, __n1, __s, traits_type::length(__s)); 1500:/usr/include/c++/4.8/bits/basic_string.h **** } 1501:/usr/include/c++/4.8/bits/basic_string.h **** 1502:/usr/include/c++/4.8/bits/basic_string.h **** /** 1503:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Replace characters with multiple characters. 1504:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of first character to replace. 1505:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n1 Number of characters to be replaced. 1506:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n2 Number of characters to insert. 1507:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c Character to insert. 1508:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1509:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range If @a __pos > size(). 1510:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1511:/usr/include/c++/4.8/bits/basic_string.h **** * 1512:/usr/include/c++/4.8/bits/basic_string.h **** * Removes the characters in the range [pos,pos + n1) from this 1513:/usr/include/c++/4.8/bits/basic_string.h **** * string. In place, @a __n2 copies of @a __c are inserted. 1514:/usr/include/c++/4.8/bits/basic_string.h **** * If @a __pos is beyond end of string, out_of_range is thrown. 1515:/usr/include/c++/4.8/bits/basic_string.h **** * If the length of result exceeds max_size(), length_error is 1516:/usr/include/c++/4.8/bits/basic_string.h **** * thrown. The value of the string doesn't change if an error 1517:/usr/include/c++/4.8/bits/basic_string.h **** * is thrown. 1518:/usr/include/c++/4.8/bits/basic_string.h **** */ 1519:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1520:/usr/include/c++/4.8/bits/basic_string.h **** replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) 1521:/usr/include/c++/4.8/bits/basic_string.h **** { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), 1522:/usr/include/c++/4.8/bits/basic_string.h **** _M_limit(__pos, __n1), __n2, __c); } 1523:/usr/include/c++/4.8/bits/basic_string.h **** 1524:/usr/include/c++/4.8/bits/basic_string.h **** /** 1525:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Replace range of characters with string. 1526:/usr/include/c++/4.8/bits/basic_string.h **** * @param __i1 Iterator referencing start of range to replace. 1527:/usr/include/c++/4.8/bits/basic_string.h **** * @param __i2 Iterator referencing end of range to replace. 1528:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str String value to insert. 1529:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1530:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1531:/usr/include/c++/4.8/bits/basic_string.h **** * 1532:/usr/include/c++/4.8/bits/basic_string.h **** * Removes the characters in the range [__i1,__i2). In place, 1533:/usr/include/c++/4.8/bits/basic_string.h **** * the value of @a __str is inserted. If the length of result 1534:/usr/include/c++/4.8/bits/basic_string.h **** * exceeds max_size(), length_error is thrown. The value of 1535:/usr/include/c++/4.8/bits/basic_string.h **** * the string doesn't change if an error is thrown. 1536:/usr/include/c++/4.8/bits/basic_string.h **** */ 1537:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1538:/usr/include/c++/4.8/bits/basic_string.h **** replace(iterator __i1, iterator __i2, const basic_string& __str) 1539:/usr/include/c++/4.8/bits/basic_string.h **** { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } 1540:/usr/include/c++/4.8/bits/basic_string.h **** 1541:/usr/include/c++/4.8/bits/basic_string.h **** /** 1542:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Replace range of characters with C substring. 1543:/usr/include/c++/4.8/bits/basic_string.h **** * @param __i1 Iterator referencing start of range to replace. 1544:/usr/include/c++/4.8/bits/basic_string.h **** * @param __i2 Iterator referencing end of range to replace. 1545:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string value to insert. 1546:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters from s to insert. 1547:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1548:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). GAS LISTING /tmp/cc3o2J9C.s page 33 1549:/usr/include/c++/4.8/bits/basic_string.h **** * 1550:/usr/include/c++/4.8/bits/basic_string.h **** * Removes the characters in the range [__i1,__i2). In place, 1551:/usr/include/c++/4.8/bits/basic_string.h **** * the first @a __n characters of @a __s are inserted. If the 1552:/usr/include/c++/4.8/bits/basic_string.h **** * length of result exceeds max_size(), length_error is thrown. 1553:/usr/include/c++/4.8/bits/basic_string.h **** * The value of the string doesn't change if an error is 1554:/usr/include/c++/4.8/bits/basic_string.h **** * thrown. 1555:/usr/include/c++/4.8/bits/basic_string.h **** */ 1556:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1557:/usr/include/c++/4.8/bits/basic_string.h **** replace(iterator __i1, iterator __i2, const _CharT* __s, size_type __n) 1558:/usr/include/c++/4.8/bits/basic_string.h **** { 1559:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2 1560:/usr/include/c++/4.8/bits/basic_string.h **** && __i2 <= _M_iend()); 1561:/usr/include/c++/4.8/bits/basic_string.h **** return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n); 1562:/usr/include/c++/4.8/bits/basic_string.h **** } 1563:/usr/include/c++/4.8/bits/basic_string.h **** 1564:/usr/include/c++/4.8/bits/basic_string.h **** /** 1565:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Replace range of characters with C string. 1566:/usr/include/c++/4.8/bits/basic_string.h **** * @param __i1 Iterator referencing start of range to replace. 1567:/usr/include/c++/4.8/bits/basic_string.h **** * @param __i2 Iterator referencing end of range to replace. 1568:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string value to insert. 1569:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1570:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1571:/usr/include/c++/4.8/bits/basic_string.h **** * 1572:/usr/include/c++/4.8/bits/basic_string.h **** * Removes the characters in the range [__i1,__i2). In place, 1573:/usr/include/c++/4.8/bits/basic_string.h **** * the characters of @a __s are inserted. If the length of 1574:/usr/include/c++/4.8/bits/basic_string.h **** * result exceeds max_size(), length_error is thrown. The 1575:/usr/include/c++/4.8/bits/basic_string.h **** * value of the string doesn't change if an error is thrown. 1576:/usr/include/c++/4.8/bits/basic_string.h **** */ 1577:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1578:/usr/include/c++/4.8/bits/basic_string.h **** replace(iterator __i1, iterator __i2, const _CharT* __s) 1579:/usr/include/c++/4.8/bits/basic_string.h **** { 1580:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_string(__s); 1581:/usr/include/c++/4.8/bits/basic_string.h **** return this->replace(__i1, __i2, __s, traits_type::length(__s)); 1582:/usr/include/c++/4.8/bits/basic_string.h **** } 1583:/usr/include/c++/4.8/bits/basic_string.h **** 1584:/usr/include/c++/4.8/bits/basic_string.h **** /** 1585:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Replace range of characters with multiple characters 1586:/usr/include/c++/4.8/bits/basic_string.h **** * @param __i1 Iterator referencing start of range to replace. 1587:/usr/include/c++/4.8/bits/basic_string.h **** * @param __i2 Iterator referencing end of range to replace. 1588:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters to insert. 1589:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c Character to insert. 1590:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1591:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1592:/usr/include/c++/4.8/bits/basic_string.h **** * 1593:/usr/include/c++/4.8/bits/basic_string.h **** * Removes the characters in the range [__i1,__i2). In place, 1594:/usr/include/c++/4.8/bits/basic_string.h **** * @a __n copies of @a __c are inserted. If the length of 1595:/usr/include/c++/4.8/bits/basic_string.h **** * result exceeds max_size(), length_error is thrown. The 1596:/usr/include/c++/4.8/bits/basic_string.h **** * value of the string doesn't change if an error is thrown. 1597:/usr/include/c++/4.8/bits/basic_string.h **** */ 1598:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1599:/usr/include/c++/4.8/bits/basic_string.h **** replace(iterator __i1, iterator __i2, size_type __n, _CharT __c) 1600:/usr/include/c++/4.8/bits/basic_string.h **** { 1601:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2 1602:/usr/include/c++/4.8/bits/basic_string.h **** && __i2 <= _M_iend()); 1603:/usr/include/c++/4.8/bits/basic_string.h **** return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __c); 1604:/usr/include/c++/4.8/bits/basic_string.h **** } 1605:/usr/include/c++/4.8/bits/basic_string.h **** GAS LISTING /tmp/cc3o2J9C.s page 34 1606:/usr/include/c++/4.8/bits/basic_string.h **** /** 1607:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Replace range of characters with range. 1608:/usr/include/c++/4.8/bits/basic_string.h **** * @param __i1 Iterator referencing start of range to replace. 1609:/usr/include/c++/4.8/bits/basic_string.h **** * @param __i2 Iterator referencing end of range to replace. 1610:/usr/include/c++/4.8/bits/basic_string.h **** * @param __k1 Iterator referencing start of range to insert. 1611:/usr/include/c++/4.8/bits/basic_string.h **** * @param __k2 Iterator referencing end of range to insert. 1612:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1613:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1614:/usr/include/c++/4.8/bits/basic_string.h **** * 1615:/usr/include/c++/4.8/bits/basic_string.h **** * Removes the characters in the range [__i1,__i2). In place, 1616:/usr/include/c++/4.8/bits/basic_string.h **** * characters in the range [__k1,__k2) are inserted. If the 1617:/usr/include/c++/4.8/bits/basic_string.h **** * length of result exceeds max_size(), length_error is thrown. 1618:/usr/include/c++/4.8/bits/basic_string.h **** * The value of the string doesn't change if an error is 1619:/usr/include/c++/4.8/bits/basic_string.h **** * thrown. 1620:/usr/include/c++/4.8/bits/basic_string.h **** */ 1621:/usr/include/c++/4.8/bits/basic_string.h **** template<class _InputIterator> 1622:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1623:/usr/include/c++/4.8/bits/basic_string.h **** replace(iterator __i1, iterator __i2, 1624:/usr/include/c++/4.8/bits/basic_string.h **** _InputIterator __k1, _InputIterator __k2) 1625:/usr/include/c++/4.8/bits/basic_string.h **** { 1626:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2 1627:/usr/include/c++/4.8/bits/basic_string.h **** && __i2 <= _M_iend()); 1628:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_valid_range(__k1, __k2); 1629:/usr/include/c++/4.8/bits/basic_string.h **** typedef typename std::__is_integer<_InputIterator>::__type _Integral; 1630:/usr/include/c++/4.8/bits/basic_string.h **** return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral()); 1631:/usr/include/c++/4.8/bits/basic_string.h **** } 1632:/usr/include/c++/4.8/bits/basic_string.h **** 1633:/usr/include/c++/4.8/bits/basic_string.h **** // Specializations for the common case of pointer and iterator: 1634:/usr/include/c++/4.8/bits/basic_string.h **** // useful to avoid the overhead of temporary buffering in _M_replace. 1635:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1636:/usr/include/c++/4.8/bits/basic_string.h **** replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2) 1637:/usr/include/c++/4.8/bits/basic_string.h **** { 1638:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2 1639:/usr/include/c++/4.8/bits/basic_string.h **** && __i2 <= _M_iend()); 1640:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_valid_range(__k1, __k2); 1641:/usr/include/c++/4.8/bits/basic_string.h **** return this->replace(__i1 - _M_ibegin(), __i2 - __i1, 1642:/usr/include/c++/4.8/bits/basic_string.h **** __k1, __k2 - __k1); 1643:/usr/include/c++/4.8/bits/basic_string.h **** } 1644:/usr/include/c++/4.8/bits/basic_string.h **** 1645:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1646:/usr/include/c++/4.8/bits/basic_string.h **** replace(iterator __i1, iterator __i2, 1647:/usr/include/c++/4.8/bits/basic_string.h **** const _CharT* __k1, const _CharT* __k2) 1648:/usr/include/c++/4.8/bits/basic_string.h **** { 1649:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2 1650:/usr/include/c++/4.8/bits/basic_string.h **** && __i2 <= _M_iend()); 1651:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_valid_range(__k1, __k2); 1652:/usr/include/c++/4.8/bits/basic_string.h **** return this->replace(__i1 - _M_ibegin(), __i2 - __i1, 1653:/usr/include/c++/4.8/bits/basic_string.h **** __k1, __k2 - __k1); 1654:/usr/include/c++/4.8/bits/basic_string.h **** } 1655:/usr/include/c++/4.8/bits/basic_string.h **** 1656:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1657:/usr/include/c++/4.8/bits/basic_string.h **** replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2) 1658:/usr/include/c++/4.8/bits/basic_string.h **** { 1659:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2 1660:/usr/include/c++/4.8/bits/basic_string.h **** && __i2 <= _M_iend()); 1661:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_valid_range(__k1, __k2); 1662:/usr/include/c++/4.8/bits/basic_string.h **** return this->replace(__i1 - _M_ibegin(), __i2 - __i1, GAS LISTING /tmp/cc3o2J9C.s page 35 1663:/usr/include/c++/4.8/bits/basic_string.h **** __k1.base(), __k2 - __k1); 1664:/usr/include/c++/4.8/bits/basic_string.h **** } 1665:/usr/include/c++/4.8/bits/basic_string.h **** 1666:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1667:/usr/include/c++/4.8/bits/basic_string.h **** replace(iterator __i1, iterator __i2, 1668:/usr/include/c++/4.8/bits/basic_string.h **** const_iterator __k1, const_iterator __k2) 1669:/usr/include/c++/4.8/bits/basic_string.h **** { 1670:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2 1671:/usr/include/c++/4.8/bits/basic_string.h **** && __i2 <= _M_iend()); 1672:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_valid_range(__k1, __k2); 1673:/usr/include/c++/4.8/bits/basic_string.h **** return this->replace(__i1 - _M_ibegin(), __i2 - __i1, 1674:/usr/include/c++/4.8/bits/basic_string.h **** __k1.base(), __k2 - __k1); 1675:/usr/include/c++/4.8/bits/basic_string.h **** } 1676:/usr/include/c++/4.8/bits/basic_string.h **** 1677:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L 1678:/usr/include/c++/4.8/bits/basic_string.h **** /** 1679:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Replace range of characters with initializer_list. 1680:/usr/include/c++/4.8/bits/basic_string.h **** * @param __i1 Iterator referencing start of range to replace. 1681:/usr/include/c++/4.8/bits/basic_string.h **** * @param __i2 Iterator referencing end of range to replace. 1682:/usr/include/c++/4.8/bits/basic_string.h **** * @param __l The initializer_list of characters to insert. 1683:/usr/include/c++/4.8/bits/basic_string.h **** * @return Reference to this string. 1684:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::length_error If new length exceeds @c max_size(). 1685:/usr/include/c++/4.8/bits/basic_string.h **** * 1686:/usr/include/c++/4.8/bits/basic_string.h **** * Removes the characters in the range [__i1,__i2). In place, 1687:/usr/include/c++/4.8/bits/basic_string.h **** * characters in the range [__k1,__k2) are inserted. If the 1688:/usr/include/c++/4.8/bits/basic_string.h **** * length of result exceeds max_size(), length_error is thrown. 1689:/usr/include/c++/4.8/bits/basic_string.h **** * The value of the string doesn't change if an error is 1690:/usr/include/c++/4.8/bits/basic_string.h **** * thrown. 1691:/usr/include/c++/4.8/bits/basic_string.h **** */ 1692:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& replace(iterator __i1, iterator __i2, 1693:/usr/include/c++/4.8/bits/basic_string.h **** initializer_list<_CharT> __l) 1694:/usr/include/c++/4.8/bits/basic_string.h **** { return this->replace(__i1, __i2, __l.begin(), __l.end()); } 1695:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11 1696:/usr/include/c++/4.8/bits/basic_string.h **** 1697:/usr/include/c++/4.8/bits/basic_string.h **** private: 1698:/usr/include/c++/4.8/bits/basic_string.h **** template<class _Integer> 1699:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1700:/usr/include/c++/4.8/bits/basic_string.h **** _M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n, 1701:/usr/include/c++/4.8/bits/basic_string.h **** _Integer __val, __true_type) 1702:/usr/include/c++/4.8/bits/basic_string.h **** { return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); } 1703:/usr/include/c++/4.8/bits/basic_string.h **** 1704:/usr/include/c++/4.8/bits/basic_string.h **** template<class _InputIterator> 1705:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1706:/usr/include/c++/4.8/bits/basic_string.h **** _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1, 1707:/usr/include/c++/4.8/bits/basic_string.h **** _InputIterator __k2, __false_type); 1708:/usr/include/c++/4.8/bits/basic_string.h **** 1709:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1710:/usr/include/c++/4.8/bits/basic_string.h **** _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 1711:/usr/include/c++/4.8/bits/basic_string.h **** _CharT __c); 1712:/usr/include/c++/4.8/bits/basic_string.h **** 1713:/usr/include/c++/4.8/bits/basic_string.h **** basic_string& 1714:/usr/include/c++/4.8/bits/basic_string.h **** _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s, 1715:/usr/include/c++/4.8/bits/basic_string.h **** size_type __n2); 1716:/usr/include/c++/4.8/bits/basic_string.h **** 1717:/usr/include/c++/4.8/bits/basic_string.h **** // _S_construct_aux is used to implement the 21.3.1 para 15 which 1718:/usr/include/c++/4.8/bits/basic_string.h **** // requires special behaviour if _InIter is an integral type 1719:/usr/include/c++/4.8/bits/basic_string.h **** template<class _InIterator> GAS LISTING /tmp/cc3o2J9C.s page 36 1720:/usr/include/c++/4.8/bits/basic_string.h **** static _CharT* 1721:/usr/include/c++/4.8/bits/basic_string.h **** _S_construct_aux(_InIterator __beg, _InIterator __end, 1722:/usr/include/c++/4.8/bits/basic_string.h **** const _Alloc& __a, __false_type) 1723:/usr/include/c++/4.8/bits/basic_string.h **** { 1724:/usr/include/c++/4.8/bits/basic_string.h **** typedef typename iterator_traits<_InIterator>::iterator_category _Tag; 1725:/usr/include/c++/4.8/bits/basic_string.h **** return _S_construct(__beg, __end, __a, _Tag()); 1726:/usr/include/c++/4.8/bits/basic_string.h **** } 1727:/usr/include/c++/4.8/bits/basic_string.h **** 1728:/usr/include/c++/4.8/bits/basic_string.h **** // _GLIBCXX_RESOLVE_LIB_DEFECTS 1729:/usr/include/c++/4.8/bits/basic_string.h **** // 438. Ambiguity in the "do the right thing" clause 1730:/usr/include/c++/4.8/bits/basic_string.h **** template<class _Integer> 1731:/usr/include/c++/4.8/bits/basic_string.h **** static _CharT* 1732:/usr/include/c++/4.8/bits/basic_string.h **** _S_construct_aux(_Integer __beg, _Integer __end, 1733:/usr/include/c++/4.8/bits/basic_string.h **** const _Alloc& __a, __true_type) 1734:/usr/include/c++/4.8/bits/basic_string.h **** { return _S_construct_aux_2(static_cast<size_type>(__beg), 1735:/usr/include/c++/4.8/bits/basic_string.h **** __end, __a); } 1736:/usr/include/c++/4.8/bits/basic_string.h **** 1737:/usr/include/c++/4.8/bits/basic_string.h **** static _CharT* 1738:/usr/include/c++/4.8/bits/basic_string.h **** _S_construct_aux_2(size_type __req, _CharT __c, const _Alloc& __a) 1739:/usr/include/c++/4.8/bits/basic_string.h **** { return _S_construct(__req, __c, __a); } 1740:/usr/include/c++/4.8/bits/basic_string.h **** 1741:/usr/include/c++/4.8/bits/basic_string.h **** template<class _InIterator> 1742:/usr/include/c++/4.8/bits/basic_string.h **** static _CharT* 1743:/usr/include/c++/4.8/bits/basic_string.h **** _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a) 1744:/usr/include/c++/4.8/bits/basic_string.h **** { 1745:/usr/include/c++/4.8/bits/basic_string.h **** typedef typename std::__is_integer<_InIterator>::__type _Integral; 1746:/usr/include/c++/4.8/bits/basic_string.h **** return _S_construct_aux(__beg, __end, __a, _Integral()); 1747:/usr/include/c++/4.8/bits/basic_string.h **** } 1748:/usr/include/c++/4.8/bits/basic_string.h **** 1749:/usr/include/c++/4.8/bits/basic_string.h **** // For Input Iterators, used in istreambuf_iterators, etc. 1750:/usr/include/c++/4.8/bits/basic_string.h **** template<class _InIterator> 1751:/usr/include/c++/4.8/bits/basic_string.h **** static _CharT* 1752:/usr/include/c++/4.8/bits/basic_string.h **** _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a, 1753:/usr/include/c++/4.8/bits/basic_string.h **** input_iterator_tag); 1754:/usr/include/c++/4.8/bits/basic_string.h **** 1755:/usr/include/c++/4.8/bits/basic_string.h **** // For forward_iterators up to random_access_iterators, used for 1756:/usr/include/c++/4.8/bits/basic_string.h **** // string::iterator, _CharT*, etc. 1757:/usr/include/c++/4.8/bits/basic_string.h **** template<class _FwdIterator> 1758:/usr/include/c++/4.8/bits/basic_string.h **** static _CharT* 1759:/usr/include/c++/4.8/bits/basic_string.h **** _S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a, 1760:/usr/include/c++/4.8/bits/basic_string.h **** forward_iterator_tag); 1761:/usr/include/c++/4.8/bits/basic_string.h **** 1762:/usr/include/c++/4.8/bits/basic_string.h **** static _CharT* 1763:/usr/include/c++/4.8/bits/basic_string.h **** _S_construct(size_type __req, _CharT __c, const _Alloc& __a); 1764:/usr/include/c++/4.8/bits/basic_string.h **** 1765:/usr/include/c++/4.8/bits/basic_string.h **** public: 1766:/usr/include/c++/4.8/bits/basic_string.h **** 1767:/usr/include/c++/4.8/bits/basic_string.h **** /** 1768:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Copy substring into C string. 1769:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string to copy value into. 1770:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters to copy. 1771:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of first character to copy. 1772:/usr/include/c++/4.8/bits/basic_string.h **** * @return Number of characters actually copied 1773:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range If __pos > size(). 1774:/usr/include/c++/4.8/bits/basic_string.h **** * 1775:/usr/include/c++/4.8/bits/basic_string.h **** * Copies up to @a __n characters starting at @a __pos into the 1776:/usr/include/c++/4.8/bits/basic_string.h **** * C string @a __s. If @a __pos is %greater than size(), GAS LISTING /tmp/cc3o2J9C.s page 37 1777:/usr/include/c++/4.8/bits/basic_string.h **** * out_of_range is thrown. 1778:/usr/include/c++/4.8/bits/basic_string.h **** */ 1779:/usr/include/c++/4.8/bits/basic_string.h **** size_type 1780:/usr/include/c++/4.8/bits/basic_string.h **** copy(_CharT* __s, size_type __n, size_type __pos = 0) const; 1781:/usr/include/c++/4.8/bits/basic_string.h **** 1782:/usr/include/c++/4.8/bits/basic_string.h **** /** 1783:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Swap contents with another string. 1784:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s String to swap with. 1785:/usr/include/c++/4.8/bits/basic_string.h **** * 1786:/usr/include/c++/4.8/bits/basic_string.h **** * Exchanges the contents of this string with that of @a __s in constant 1787:/usr/include/c++/4.8/bits/basic_string.h **** * time. 1788:/usr/include/c++/4.8/bits/basic_string.h **** */ 1789:/usr/include/c++/4.8/bits/basic_string.h **** void 1790:/usr/include/c++/4.8/bits/basic_string.h **** swap(basic_string& __s); 1791:/usr/include/c++/4.8/bits/basic_string.h **** 1792:/usr/include/c++/4.8/bits/basic_string.h **** // String operations: 1793:/usr/include/c++/4.8/bits/basic_string.h **** /** 1794:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Return const pointer to null-terminated contents. 1795:/usr/include/c++/4.8/bits/basic_string.h **** * 1796:/usr/include/c++/4.8/bits/basic_string.h **** * This is a handle to internal data. Do not modify or dire things may 1797:/usr/include/c++/4.8/bits/basic_string.h **** * happen. 1798:/usr/include/c++/4.8/bits/basic_string.h **** */ 1799:/usr/include/c++/4.8/bits/basic_string.h **** const _CharT* 1800:/usr/include/c++/4.8/bits/basic_string.h **** c_str() const _GLIBCXX_NOEXCEPT 1801:/usr/include/c++/4.8/bits/basic_string.h **** { return _M_data(); } 1802:/usr/include/c++/4.8/bits/basic_string.h **** 1803:/usr/include/c++/4.8/bits/basic_string.h **** /** 1804:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Return const pointer to contents. 1805:/usr/include/c++/4.8/bits/basic_string.h **** * 1806:/usr/include/c++/4.8/bits/basic_string.h **** * This is a handle to internal data. Do not modify or dire things may 1807:/usr/include/c++/4.8/bits/basic_string.h **** * happen. 1808:/usr/include/c++/4.8/bits/basic_string.h **** */ 1809:/usr/include/c++/4.8/bits/basic_string.h **** const _CharT* 1810:/usr/include/c++/4.8/bits/basic_string.h **** data() const _GLIBCXX_NOEXCEPT 1811:/usr/include/c++/4.8/bits/basic_string.h **** { return _M_data(); } 1812:/usr/include/c++/4.8/bits/basic_string.h **** 1813:/usr/include/c++/4.8/bits/basic_string.h **** /** 1814:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Return copy of allocator used to construct this string. 1815:/usr/include/c++/4.8/bits/basic_string.h **** */ 1816:/usr/include/c++/4.8/bits/basic_string.h **** allocator_type 1817:/usr/include/c++/4.8/bits/basic_string.h **** get_allocator() const _GLIBCXX_NOEXCEPT 1818:/usr/include/c++/4.8/bits/basic_string.h **** { return _M_dataplus; } 1819:/usr/include/c++/4.8/bits/basic_string.h **** 1820:/usr/include/c++/4.8/bits/basic_string.h **** /** 1821:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find position of a C substring. 1822:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string to locate. 1823:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search from. 1824:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters from @a s to search for. 1825:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of start of first occurrence. 1826:/usr/include/c++/4.8/bits/basic_string.h **** * 1827:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches forward for the first @a 1828:/usr/include/c++/4.8/bits/basic_string.h **** * __n characters in @a __s within this string. If found, 1829:/usr/include/c++/4.8/bits/basic_string.h **** * returns the index where it begins. If not found, returns 1830:/usr/include/c++/4.8/bits/basic_string.h **** * npos. 1831:/usr/include/c++/4.8/bits/basic_string.h **** */ 1832:/usr/include/c++/4.8/bits/basic_string.h **** size_type 1833:/usr/include/c++/4.8/bits/basic_string.h **** find(const _CharT* __s, size_type __pos, size_type __n) const; GAS LISTING /tmp/cc3o2J9C.s page 38 1834:/usr/include/c++/4.8/bits/basic_string.h **** 1835:/usr/include/c++/4.8/bits/basic_string.h **** /** 1836:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find position of a string. 1837:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str String to locate. 1838:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search from (default 0). 1839:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of start of first occurrence. 1840:/usr/include/c++/4.8/bits/basic_string.h **** * 1841:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches forward for value of @a __str within 1842:/usr/include/c++/4.8/bits/basic_string.h **** * this string. If found, returns the index where it begins. If not 1843:/usr/include/c++/4.8/bits/basic_string.h **** * found, returns npos. 1844:/usr/include/c++/4.8/bits/basic_string.h **** */ 1845:/usr/include/c++/4.8/bits/basic_string.h **** size_type 1846:/usr/include/c++/4.8/bits/basic_string.h **** find(const basic_string& __str, size_type __pos = 0) const 1847:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_NOEXCEPT 1848:/usr/include/c++/4.8/bits/basic_string.h **** { return this->find(__str.data(), __pos, __str.size()); } 1849:/usr/include/c++/4.8/bits/basic_string.h **** 1850:/usr/include/c++/4.8/bits/basic_string.h **** /** 1851:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find position of a C string. 1852:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string to locate. 1853:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search from (default 0). 1854:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of start of first occurrence. 1855:/usr/include/c++/4.8/bits/basic_string.h **** * 1856:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches forward for the value of @a 1857:/usr/include/c++/4.8/bits/basic_string.h **** * __s within this string. If found, returns the index where 1858:/usr/include/c++/4.8/bits/basic_string.h **** * it begins. If not found, returns npos. 1859:/usr/include/c++/4.8/bits/basic_string.h **** */ 1860:/usr/include/c++/4.8/bits/basic_string.h **** size_type 1861:/usr/include/c++/4.8/bits/basic_string.h **** find(const _CharT* __s, size_type __pos = 0) const 1862:/usr/include/c++/4.8/bits/basic_string.h **** { 1863:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_string(__s); 1864:/usr/include/c++/4.8/bits/basic_string.h **** return this->find(__s, __pos, traits_type::length(__s)); 1865:/usr/include/c++/4.8/bits/basic_string.h **** } 1866:/usr/include/c++/4.8/bits/basic_string.h **** 1867:/usr/include/c++/4.8/bits/basic_string.h **** /** 1868:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find position of a character. 1869:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c Character to locate. 1870:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search from (default 0). 1871:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of first occurrence. 1872:/usr/include/c++/4.8/bits/basic_string.h **** * 1873:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches forward for @a __c within 1874:/usr/include/c++/4.8/bits/basic_string.h **** * this string. If found, returns the index where it was 1875:/usr/include/c++/4.8/bits/basic_string.h **** * found. If not found, returns npos. 1876:/usr/include/c++/4.8/bits/basic_string.h **** */ 1877:/usr/include/c++/4.8/bits/basic_string.h **** size_type 1878:/usr/include/c++/4.8/bits/basic_string.h **** find(_CharT __c, size_type __pos = 0) const _GLIBCXX_NOEXCEPT; 1879:/usr/include/c++/4.8/bits/basic_string.h **** 1880:/usr/include/c++/4.8/bits/basic_string.h **** /** 1881:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find last position of a string. 1882:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str String to locate. 1883:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search back from (default end). 1884:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of start of last occurrence. 1885:/usr/include/c++/4.8/bits/basic_string.h **** * 1886:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches backward for value of @a 1887:/usr/include/c++/4.8/bits/basic_string.h **** * __str within this string. If found, returns the index where 1888:/usr/include/c++/4.8/bits/basic_string.h **** * it begins. If not found, returns npos. 1889:/usr/include/c++/4.8/bits/basic_string.h **** */ 1890:/usr/include/c++/4.8/bits/basic_string.h **** size_type GAS LISTING /tmp/cc3o2J9C.s page 39 1891:/usr/include/c++/4.8/bits/basic_string.h **** rfind(const basic_string& __str, size_type __pos = npos) const 1892:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_NOEXCEPT 1893:/usr/include/c++/4.8/bits/basic_string.h **** { return this->rfind(__str.data(), __pos, __str.size()); } 1894:/usr/include/c++/4.8/bits/basic_string.h **** 1895:/usr/include/c++/4.8/bits/basic_string.h **** /** 1896:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find last position of a C substring. 1897:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string to locate. 1898:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search back from. 1899:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters from s to search for. 1900:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of start of last occurrence. 1901:/usr/include/c++/4.8/bits/basic_string.h **** * 1902:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches backward for the first @a 1903:/usr/include/c++/4.8/bits/basic_string.h **** * __n characters in @a __s within this string. If found, 1904:/usr/include/c++/4.8/bits/basic_string.h **** * returns the index where it begins. If not found, returns 1905:/usr/include/c++/4.8/bits/basic_string.h **** * npos. 1906:/usr/include/c++/4.8/bits/basic_string.h **** */ 1907:/usr/include/c++/4.8/bits/basic_string.h **** size_type 1908:/usr/include/c++/4.8/bits/basic_string.h **** rfind(const _CharT* __s, size_type __pos, size_type __n) const; 1909:/usr/include/c++/4.8/bits/basic_string.h **** 1910:/usr/include/c++/4.8/bits/basic_string.h **** /** 1911:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find last position of a C string. 1912:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string to locate. 1913:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to start search at (default end). 1914:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of start of last occurrence. 1915:/usr/include/c++/4.8/bits/basic_string.h **** * 1916:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches backward for the value of 1917:/usr/include/c++/4.8/bits/basic_string.h **** * @a __s within this string. If found, returns the index 1918:/usr/include/c++/4.8/bits/basic_string.h **** * where it begins. If not found, returns npos. 1919:/usr/include/c++/4.8/bits/basic_string.h **** */ 1920:/usr/include/c++/4.8/bits/basic_string.h **** size_type 1921:/usr/include/c++/4.8/bits/basic_string.h **** rfind(const _CharT* __s, size_type __pos = npos) const 1922:/usr/include/c++/4.8/bits/basic_string.h **** { 1923:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_string(__s); 1924:/usr/include/c++/4.8/bits/basic_string.h **** return this->rfind(__s, __pos, traits_type::length(__s)); 1925:/usr/include/c++/4.8/bits/basic_string.h **** } 1926:/usr/include/c++/4.8/bits/basic_string.h **** 1927:/usr/include/c++/4.8/bits/basic_string.h **** /** 1928:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find last position of a character. 1929:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c Character to locate. 1930:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search back from (default end). 1931:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of last occurrence. 1932:/usr/include/c++/4.8/bits/basic_string.h **** * 1933:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches backward for @a __c within 1934:/usr/include/c++/4.8/bits/basic_string.h **** * this string. If found, returns the index where it was 1935:/usr/include/c++/4.8/bits/basic_string.h **** * found. If not found, returns npos. 1936:/usr/include/c++/4.8/bits/basic_string.h **** */ 1937:/usr/include/c++/4.8/bits/basic_string.h **** size_type 1938:/usr/include/c++/4.8/bits/basic_string.h **** rfind(_CharT __c, size_type __pos = npos) const _GLIBCXX_NOEXCEPT; 1939:/usr/include/c++/4.8/bits/basic_string.h **** 1940:/usr/include/c++/4.8/bits/basic_string.h **** /** 1941:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find position of a character of string. 1942:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str String containing characters to locate. 1943:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search from (default 0). 1944:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of first occurrence. 1945:/usr/include/c++/4.8/bits/basic_string.h **** * 1946:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches forward for one of the 1947:/usr/include/c++/4.8/bits/basic_string.h **** * characters of @a __str within this string. If found, GAS LISTING /tmp/cc3o2J9C.s page 40 1948:/usr/include/c++/4.8/bits/basic_string.h **** * returns the index where it was found. If not found, returns 1949:/usr/include/c++/4.8/bits/basic_string.h **** * npos. 1950:/usr/include/c++/4.8/bits/basic_string.h **** */ 1951:/usr/include/c++/4.8/bits/basic_string.h **** size_type 1952:/usr/include/c++/4.8/bits/basic_string.h **** find_first_of(const basic_string& __str, size_type __pos = 0) const 1953:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_NOEXCEPT 1954:/usr/include/c++/4.8/bits/basic_string.h **** { return this->find_first_of(__str.data(), __pos, __str.size()); } 1955:/usr/include/c++/4.8/bits/basic_string.h **** 1956:/usr/include/c++/4.8/bits/basic_string.h **** /** 1957:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find position of a character of C substring. 1958:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s String containing characters to locate. 1959:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search from. 1960:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters from s to search for. 1961:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of first occurrence. 1962:/usr/include/c++/4.8/bits/basic_string.h **** * 1963:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches forward for one of the 1964:/usr/include/c++/4.8/bits/basic_string.h **** * first @a __n characters of @a __s within this string. If 1965:/usr/include/c++/4.8/bits/basic_string.h **** * found, returns the index where it was found. If not found, 1966:/usr/include/c++/4.8/bits/basic_string.h **** * returns npos. 1967:/usr/include/c++/4.8/bits/basic_string.h **** */ 1968:/usr/include/c++/4.8/bits/basic_string.h **** size_type 1969:/usr/include/c++/4.8/bits/basic_string.h **** find_first_of(const _CharT* __s, size_type __pos, size_type __n) const; 1970:/usr/include/c++/4.8/bits/basic_string.h **** 1971:/usr/include/c++/4.8/bits/basic_string.h **** /** 1972:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find position of a character of C string. 1973:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s String containing characters to locate. 1974:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search from (default 0). 1975:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of first occurrence. 1976:/usr/include/c++/4.8/bits/basic_string.h **** * 1977:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches forward for one of the 1978:/usr/include/c++/4.8/bits/basic_string.h **** * characters of @a __s within this string. If found, returns 1979:/usr/include/c++/4.8/bits/basic_string.h **** * the index where it was found. If not found, returns npos. 1980:/usr/include/c++/4.8/bits/basic_string.h **** */ 1981:/usr/include/c++/4.8/bits/basic_string.h **** size_type 1982:/usr/include/c++/4.8/bits/basic_string.h **** find_first_of(const _CharT* __s, size_type __pos = 0) const 1983:/usr/include/c++/4.8/bits/basic_string.h **** { 1984:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_string(__s); 1985:/usr/include/c++/4.8/bits/basic_string.h **** return this->find_first_of(__s, __pos, traits_type::length(__s)); 1986:/usr/include/c++/4.8/bits/basic_string.h **** } 1987:/usr/include/c++/4.8/bits/basic_string.h **** 1988:/usr/include/c++/4.8/bits/basic_string.h **** /** 1989:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find position of a character. 1990:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c Character to locate. 1991:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search from (default 0). 1992:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of first occurrence. 1993:/usr/include/c++/4.8/bits/basic_string.h **** * 1994:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches forward for the character 1995:/usr/include/c++/4.8/bits/basic_string.h **** * @a __c within this string. If found, returns the index 1996:/usr/include/c++/4.8/bits/basic_string.h **** * where it was found. If not found, returns npos. 1997:/usr/include/c++/4.8/bits/basic_string.h **** * 1998:/usr/include/c++/4.8/bits/basic_string.h **** * Note: equivalent to find(__c, __pos). 1999:/usr/include/c++/4.8/bits/basic_string.h **** */ 2000:/usr/include/c++/4.8/bits/basic_string.h **** size_type 2001:/usr/include/c++/4.8/bits/basic_string.h **** find_first_of(_CharT __c, size_type __pos = 0) const _GLIBCXX_NOEXCEPT 2002:/usr/include/c++/4.8/bits/basic_string.h **** { return this->find(__c, __pos); } 2003:/usr/include/c++/4.8/bits/basic_string.h **** 2004:/usr/include/c++/4.8/bits/basic_string.h **** /** GAS LISTING /tmp/cc3o2J9C.s page 41 2005:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find last position of a character of string. 2006:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str String containing characters to locate. 2007:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search back from (default end). 2008:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of last occurrence. 2009:/usr/include/c++/4.8/bits/basic_string.h **** * 2010:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches backward for one of the 2011:/usr/include/c++/4.8/bits/basic_string.h **** * characters of @a __str within this string. If found, 2012:/usr/include/c++/4.8/bits/basic_string.h **** * returns the index where it was found. If not found, returns 2013:/usr/include/c++/4.8/bits/basic_string.h **** * npos. 2014:/usr/include/c++/4.8/bits/basic_string.h **** */ 2015:/usr/include/c++/4.8/bits/basic_string.h **** size_type 2016:/usr/include/c++/4.8/bits/basic_string.h **** find_last_of(const basic_string& __str, size_type __pos = npos) const 2017:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_NOEXCEPT 2018:/usr/include/c++/4.8/bits/basic_string.h **** { return this->find_last_of(__str.data(), __pos, __str.size()); } 2019:/usr/include/c++/4.8/bits/basic_string.h **** 2020:/usr/include/c++/4.8/bits/basic_string.h **** /** 2021:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find last position of a character of C substring. 2022:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string containing characters to locate. 2023:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search back from. 2024:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters from s to search for. 2025:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of last occurrence. 2026:/usr/include/c++/4.8/bits/basic_string.h **** * 2027:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches backward for one of the 2028:/usr/include/c++/4.8/bits/basic_string.h **** * first @a __n characters of @a __s within this string. If 2029:/usr/include/c++/4.8/bits/basic_string.h **** * found, returns the index where it was found. If not found, 2030:/usr/include/c++/4.8/bits/basic_string.h **** * returns npos. 2031:/usr/include/c++/4.8/bits/basic_string.h **** */ 2032:/usr/include/c++/4.8/bits/basic_string.h **** size_type 2033:/usr/include/c++/4.8/bits/basic_string.h **** find_last_of(const _CharT* __s, size_type __pos, size_type __n) const; 2034:/usr/include/c++/4.8/bits/basic_string.h **** 2035:/usr/include/c++/4.8/bits/basic_string.h **** /** 2036:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find last position of a character of C string. 2037:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string containing characters to locate. 2038:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search back from (default end). 2039:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of last occurrence. 2040:/usr/include/c++/4.8/bits/basic_string.h **** * 2041:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches backward for one of the 2042:/usr/include/c++/4.8/bits/basic_string.h **** * characters of @a __s within this string. If found, returns 2043:/usr/include/c++/4.8/bits/basic_string.h **** * the index where it was found. If not found, returns npos. 2044:/usr/include/c++/4.8/bits/basic_string.h **** */ 2045:/usr/include/c++/4.8/bits/basic_string.h **** size_type 2046:/usr/include/c++/4.8/bits/basic_string.h **** find_last_of(const _CharT* __s, size_type __pos = npos) const 2047:/usr/include/c++/4.8/bits/basic_string.h **** { 2048:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_string(__s); 2049:/usr/include/c++/4.8/bits/basic_string.h **** return this->find_last_of(__s, __pos, traits_type::length(__s)); 2050:/usr/include/c++/4.8/bits/basic_string.h **** } 2051:/usr/include/c++/4.8/bits/basic_string.h **** 2052:/usr/include/c++/4.8/bits/basic_string.h **** /** 2053:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find last position of a character. 2054:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c Character to locate. 2055:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search back from (default end). 2056:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of last occurrence. 2057:/usr/include/c++/4.8/bits/basic_string.h **** * 2058:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches backward for @a __c within 2059:/usr/include/c++/4.8/bits/basic_string.h **** * this string. If found, returns the index where it was 2060:/usr/include/c++/4.8/bits/basic_string.h **** * found. If not found, returns npos. 2061:/usr/include/c++/4.8/bits/basic_string.h **** * GAS LISTING /tmp/cc3o2J9C.s page 42 2062:/usr/include/c++/4.8/bits/basic_string.h **** * Note: equivalent to rfind(__c, __pos). 2063:/usr/include/c++/4.8/bits/basic_string.h **** */ 2064:/usr/include/c++/4.8/bits/basic_string.h **** size_type 2065:/usr/include/c++/4.8/bits/basic_string.h **** find_last_of(_CharT __c, size_type __pos = npos) const _GLIBCXX_NOEXCEPT 2066:/usr/include/c++/4.8/bits/basic_string.h **** { return this->rfind(__c, __pos); } 2067:/usr/include/c++/4.8/bits/basic_string.h **** 2068:/usr/include/c++/4.8/bits/basic_string.h **** /** 2069:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find position of a character not in string. 2070:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str String containing characters to avoid. 2071:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search from (default 0). 2072:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of first occurrence. 2073:/usr/include/c++/4.8/bits/basic_string.h **** * 2074:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches forward for a character not contained 2075:/usr/include/c++/4.8/bits/basic_string.h **** * in @a __str within this string. If found, returns the index where it 2076:/usr/include/c++/4.8/bits/basic_string.h **** * was found. If not found, returns npos. 2077:/usr/include/c++/4.8/bits/basic_string.h **** */ 2078:/usr/include/c++/4.8/bits/basic_string.h **** size_type 2079:/usr/include/c++/4.8/bits/basic_string.h **** find_first_not_of(const basic_string& __str, size_type __pos = 0) const 2080:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_NOEXCEPT 2081:/usr/include/c++/4.8/bits/basic_string.h **** { return this->find_first_not_of(__str.data(), __pos, __str.size()); } 2082:/usr/include/c++/4.8/bits/basic_string.h **** 2083:/usr/include/c++/4.8/bits/basic_string.h **** /** 2084:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find position of a character not in C substring. 2085:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string containing characters to avoid. 2086:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search from. 2087:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters from __s to consider. 2088:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of first occurrence. 2089:/usr/include/c++/4.8/bits/basic_string.h **** * 2090:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches forward for a character not 2091:/usr/include/c++/4.8/bits/basic_string.h **** * contained in the first @a __n characters of @a __s within 2092:/usr/include/c++/4.8/bits/basic_string.h **** * this string. If found, returns the index where it was 2093:/usr/include/c++/4.8/bits/basic_string.h **** * found. If not found, returns npos. 2094:/usr/include/c++/4.8/bits/basic_string.h **** */ 2095:/usr/include/c++/4.8/bits/basic_string.h **** size_type 2096:/usr/include/c++/4.8/bits/basic_string.h **** find_first_not_of(const _CharT* __s, size_type __pos, 2097:/usr/include/c++/4.8/bits/basic_string.h **** size_type __n) const; 2098:/usr/include/c++/4.8/bits/basic_string.h **** 2099:/usr/include/c++/4.8/bits/basic_string.h **** /** 2100:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find position of a character not in C string. 2101:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string containing characters to avoid. 2102:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search from (default 0). 2103:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of first occurrence. 2104:/usr/include/c++/4.8/bits/basic_string.h **** * 2105:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches forward for a character not 2106:/usr/include/c++/4.8/bits/basic_string.h **** * contained in @a __s within this string. If found, returns 2107:/usr/include/c++/4.8/bits/basic_string.h **** * the index where it was found. If not found, returns npos. 2108:/usr/include/c++/4.8/bits/basic_string.h **** */ 2109:/usr/include/c++/4.8/bits/basic_string.h **** size_type 2110:/usr/include/c++/4.8/bits/basic_string.h **** find_first_not_of(const _CharT* __s, size_type __pos = 0) const 2111:/usr/include/c++/4.8/bits/basic_string.h **** { 2112:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_string(__s); 2113:/usr/include/c++/4.8/bits/basic_string.h **** return this->find_first_not_of(__s, __pos, traits_type::length(__s)); 2114:/usr/include/c++/4.8/bits/basic_string.h **** } 2115:/usr/include/c++/4.8/bits/basic_string.h **** 2116:/usr/include/c++/4.8/bits/basic_string.h **** /** 2117:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find position of a different character. 2118:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c Character to avoid. GAS LISTING /tmp/cc3o2J9C.s page 43 2119:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search from (default 0). 2120:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of first occurrence. 2121:/usr/include/c++/4.8/bits/basic_string.h **** * 2122:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches forward for a character 2123:/usr/include/c++/4.8/bits/basic_string.h **** * other than @a __c within this string. If found, returns the 2124:/usr/include/c++/4.8/bits/basic_string.h **** * index where it was found. If not found, returns npos. 2125:/usr/include/c++/4.8/bits/basic_string.h **** */ 2126:/usr/include/c++/4.8/bits/basic_string.h **** size_type 2127:/usr/include/c++/4.8/bits/basic_string.h **** find_first_not_of(_CharT __c, size_type __pos = 0) const 2128:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_NOEXCEPT; 2129:/usr/include/c++/4.8/bits/basic_string.h **** 2130:/usr/include/c++/4.8/bits/basic_string.h **** /** 2131:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find last position of a character not in string. 2132:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str String containing characters to avoid. 2133:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search back from (default end). 2134:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of last occurrence. 2135:/usr/include/c++/4.8/bits/basic_string.h **** * 2136:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches backward for a character 2137:/usr/include/c++/4.8/bits/basic_string.h **** * not contained in @a __str within this string. If found, 2138:/usr/include/c++/4.8/bits/basic_string.h **** * returns the index where it was found. If not found, returns 2139:/usr/include/c++/4.8/bits/basic_string.h **** * npos. 2140:/usr/include/c++/4.8/bits/basic_string.h **** */ 2141:/usr/include/c++/4.8/bits/basic_string.h **** size_type 2142:/usr/include/c++/4.8/bits/basic_string.h **** find_last_not_of(const basic_string& __str, size_type __pos = npos) const 2143:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_NOEXCEPT 2144:/usr/include/c++/4.8/bits/basic_string.h **** { return this->find_last_not_of(__str.data(), __pos, __str.size()); } 2145:/usr/include/c++/4.8/bits/basic_string.h **** 2146:/usr/include/c++/4.8/bits/basic_string.h **** /** 2147:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find last position of a character not in C substring. 2148:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string containing characters to avoid. 2149:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search back from. 2150:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters from s to consider. 2151:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of last occurrence. 2152:/usr/include/c++/4.8/bits/basic_string.h **** * 2153:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches backward for a character not 2154:/usr/include/c++/4.8/bits/basic_string.h **** * contained in the first @a __n characters of @a __s within this string. 2155:/usr/include/c++/4.8/bits/basic_string.h **** * If found, returns the index where it was found. If not found, 2156:/usr/include/c++/4.8/bits/basic_string.h **** * returns npos. 2157:/usr/include/c++/4.8/bits/basic_string.h **** */ 2158:/usr/include/c++/4.8/bits/basic_string.h **** size_type 2159:/usr/include/c++/4.8/bits/basic_string.h **** find_last_not_of(const _CharT* __s, size_type __pos, 2160:/usr/include/c++/4.8/bits/basic_string.h **** size_type __n) const; 2161:/usr/include/c++/4.8/bits/basic_string.h **** /** 2162:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find last position of a character not in C string. 2163:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string containing characters to avoid. 2164:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search back from (default end). 2165:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of last occurrence. 2166:/usr/include/c++/4.8/bits/basic_string.h **** * 2167:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches backward for a character 2168:/usr/include/c++/4.8/bits/basic_string.h **** * not contained in @a __s within this string. If found, 2169:/usr/include/c++/4.8/bits/basic_string.h **** * returns the index where it was found. If not found, returns 2170:/usr/include/c++/4.8/bits/basic_string.h **** * npos. 2171:/usr/include/c++/4.8/bits/basic_string.h **** */ 2172:/usr/include/c++/4.8/bits/basic_string.h **** size_type 2173:/usr/include/c++/4.8/bits/basic_string.h **** find_last_not_of(const _CharT* __s, size_type __pos = npos) const 2174:/usr/include/c++/4.8/bits/basic_string.h **** { 2175:/usr/include/c++/4.8/bits/basic_string.h **** __glibcxx_requires_string(__s); GAS LISTING /tmp/cc3o2J9C.s page 44 2176:/usr/include/c++/4.8/bits/basic_string.h **** return this->find_last_not_of(__s, __pos, traits_type::length(__s)); 2177:/usr/include/c++/4.8/bits/basic_string.h **** } 2178:/usr/include/c++/4.8/bits/basic_string.h **** 2179:/usr/include/c++/4.8/bits/basic_string.h **** /** 2180:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Find last position of a different character. 2181:/usr/include/c++/4.8/bits/basic_string.h **** * @param __c Character to avoid. 2182:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of character to search back from (default end). 2183:/usr/include/c++/4.8/bits/basic_string.h **** * @return Index of last occurrence. 2184:/usr/include/c++/4.8/bits/basic_string.h **** * 2185:/usr/include/c++/4.8/bits/basic_string.h **** * Starting from @a __pos, searches backward for a character other than 2186:/usr/include/c++/4.8/bits/basic_string.h **** * @a __c within this string. If found, returns the index where it was 2187:/usr/include/c++/4.8/bits/basic_string.h **** * found. If not found, returns npos. 2188:/usr/include/c++/4.8/bits/basic_string.h **** */ 2189:/usr/include/c++/4.8/bits/basic_string.h **** size_type 2190:/usr/include/c++/4.8/bits/basic_string.h **** find_last_not_of(_CharT __c, size_type __pos = npos) const 2191:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_NOEXCEPT; 2192:/usr/include/c++/4.8/bits/basic_string.h **** 2193:/usr/include/c++/4.8/bits/basic_string.h **** /** 2194:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Get a substring. 2195:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of first character (default 0). 2196:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters in substring (default remainder). 2197:/usr/include/c++/4.8/bits/basic_string.h **** * @return The new string. 2198:/usr/include/c++/4.8/bits/basic_string.h **** * @throw std::out_of_range If __pos > size(). 2199:/usr/include/c++/4.8/bits/basic_string.h **** * 2200:/usr/include/c++/4.8/bits/basic_string.h **** * Construct and return a new string using the @a __n 2201:/usr/include/c++/4.8/bits/basic_string.h **** * characters starting at @a __pos. If the string is too 2202:/usr/include/c++/4.8/bits/basic_string.h **** * short, use the remainder of the characters. If @a __pos is 2203:/usr/include/c++/4.8/bits/basic_string.h **** * beyond the end of the string, out_of_range is thrown. 2204:/usr/include/c++/4.8/bits/basic_string.h **** */ 2205:/usr/include/c++/4.8/bits/basic_string.h **** basic_string 2206:/usr/include/c++/4.8/bits/basic_string.h **** substr(size_type __pos = 0, size_type __n = npos) const 2207:/usr/include/c++/4.8/bits/basic_string.h **** { return basic_string(*this, 2208:/usr/include/c++/4.8/bits/basic_string.h **** _M_check(__pos, "basic_string::substr"), __n); } 2209:/usr/include/c++/4.8/bits/basic_string.h **** 2210:/usr/include/c++/4.8/bits/basic_string.h **** /** 2211:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Compare to a string. 2212:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str String to compare against. 2213:/usr/include/c++/4.8/bits/basic_string.h **** * @return Integer < 0, 0, or > 0. 2214:/usr/include/c++/4.8/bits/basic_string.h **** * 2215:/usr/include/c++/4.8/bits/basic_string.h **** * Returns an integer < 0 if this string is ordered before @a 2216:/usr/include/c++/4.8/bits/basic_string.h **** * __str, 0 if their values are equivalent, or > 0 if this 2217:/usr/include/c++/4.8/bits/basic_string.h **** * string is ordered after @a __str. Determines the effective 2218:/usr/include/c++/4.8/bits/basic_string.h **** * length rlen of the strings to compare as the smallest of 2219:/usr/include/c++/4.8/bits/basic_string.h **** * size() and str.size(). The function then compares the two 2220:/usr/include/c++/4.8/bits/basic_string.h **** * strings by calling traits::compare(data(), str.data(),rlen). 2221:/usr/include/c++/4.8/bits/basic_string.h **** * If the result of the comparison is nonzero returns it, 2222:/usr/include/c++/4.8/bits/basic_string.h **** * otherwise the shorter one is ordered first. 2223:/usr/include/c++/4.8/bits/basic_string.h **** */ 2224:/usr/include/c++/4.8/bits/basic_string.h **** int 2225:/usr/include/c++/4.8/bits/basic_string.h **** compare(const basic_string& __str) const 2226:/usr/include/c++/4.8/bits/basic_string.h **** { 2227:/usr/include/c++/4.8/bits/basic_string.h **** const size_type __size = this->size(); 2228:/usr/include/c++/4.8/bits/basic_string.h **** const size_type __osize = __str.size(); 2229:/usr/include/c++/4.8/bits/basic_string.h **** const size_type __len = std::min(__size, __osize); 2230:/usr/include/c++/4.8/bits/basic_string.h **** 2231:/usr/include/c++/4.8/bits/basic_string.h **** int __r = traits_type::compare(_M_data(), __str.data(), __len); 2232:/usr/include/c++/4.8/bits/basic_string.h **** if (!__r) GAS LISTING /tmp/cc3o2J9C.s page 45 2233:/usr/include/c++/4.8/bits/basic_string.h **** __r = _S_compare(__size, __osize); 2234:/usr/include/c++/4.8/bits/basic_string.h **** return __r; 2235:/usr/include/c++/4.8/bits/basic_string.h **** } 2236:/usr/include/c++/4.8/bits/basic_string.h **** 2237:/usr/include/c++/4.8/bits/basic_string.h **** /** 2238:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Compare substring to a string. 2239:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of first character of substring. 2240:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n Number of characters in substring. 2241:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str String to compare against. 2242:/usr/include/c++/4.8/bits/basic_string.h **** * @return Integer < 0, 0, or > 0. 2243:/usr/include/c++/4.8/bits/basic_string.h **** * 2244:/usr/include/c++/4.8/bits/basic_string.h **** * Form the substring of this string from the @a __n characters 2245:/usr/include/c++/4.8/bits/basic_string.h **** * starting at @a __pos. Returns an integer < 0 if the 2246:/usr/include/c++/4.8/bits/basic_string.h **** * substring is ordered before @a __str, 0 if their values are 2247:/usr/include/c++/4.8/bits/basic_string.h **** * equivalent, or > 0 if the substring is ordered after @a 2248:/usr/include/c++/4.8/bits/basic_string.h **** * __str. Determines the effective length rlen of the strings 2249:/usr/include/c++/4.8/bits/basic_string.h **** * to compare as the smallest of the length of the substring 2250:/usr/include/c++/4.8/bits/basic_string.h **** * and @a __str.size(). The function then compares the two 2251:/usr/include/c++/4.8/bits/basic_string.h **** * strings by calling 2252:/usr/include/c++/4.8/bits/basic_string.h **** * traits::compare(substring.data(),str.data(),rlen). If the 2253:/usr/include/c++/4.8/bits/basic_string.h **** * result of the comparison is nonzero returns it, otherwise 2254:/usr/include/c++/4.8/bits/basic_string.h **** * the shorter one is ordered first. 2255:/usr/include/c++/4.8/bits/basic_string.h **** */ 2256:/usr/include/c++/4.8/bits/basic_string.h **** int 2257:/usr/include/c++/4.8/bits/basic_string.h **** compare(size_type __pos, size_type __n, const basic_string& __str) const; 2258:/usr/include/c++/4.8/bits/basic_string.h **** 2259:/usr/include/c++/4.8/bits/basic_string.h **** /** 2260:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Compare substring to a substring. 2261:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos1 Index of first character of substring. 2262:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n1 Number of characters in substring. 2263:/usr/include/c++/4.8/bits/basic_string.h **** * @param __str String to compare against. 2264:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos2 Index of first character of substring of str. 2265:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n2 Number of characters in substring of str. 2266:/usr/include/c++/4.8/bits/basic_string.h **** * @return Integer < 0, 0, or > 0. 2267:/usr/include/c++/4.8/bits/basic_string.h **** * 2268:/usr/include/c++/4.8/bits/basic_string.h **** * Form the substring of this string from the @a __n1 2269:/usr/include/c++/4.8/bits/basic_string.h **** * characters starting at @a __pos1. Form the substring of @a 2270:/usr/include/c++/4.8/bits/basic_string.h **** * __str from the @a __n2 characters starting at @a __pos2. 2271:/usr/include/c++/4.8/bits/basic_string.h **** * Returns an integer < 0 if this substring is ordered before 2272:/usr/include/c++/4.8/bits/basic_string.h **** * the substring of @a __str, 0 if their values are equivalent, 2273:/usr/include/c++/4.8/bits/basic_string.h **** * or > 0 if this substring is ordered after the substring of 2274:/usr/include/c++/4.8/bits/basic_string.h **** * @a __str. Determines the effective length rlen of the 2275:/usr/include/c++/4.8/bits/basic_string.h **** * strings to compare as the smallest of the lengths of the 2276:/usr/include/c++/4.8/bits/basic_string.h **** * substrings. The function then compares the two strings by 2277:/usr/include/c++/4.8/bits/basic_string.h **** * calling 2278:/usr/include/c++/4.8/bits/basic_string.h **** * traits::compare(substring.data(),str.substr(pos2,n2).data(),rlen). 2279:/usr/include/c++/4.8/bits/basic_string.h **** * If the result of the comparison is nonzero returns it, 2280:/usr/include/c++/4.8/bits/basic_string.h **** * otherwise the shorter one is ordered first. 2281:/usr/include/c++/4.8/bits/basic_string.h **** */ 2282:/usr/include/c++/4.8/bits/basic_string.h **** int 2283:/usr/include/c++/4.8/bits/basic_string.h **** compare(size_type __pos1, size_type __n1, const basic_string& __str, 2284:/usr/include/c++/4.8/bits/basic_string.h **** size_type __pos2, size_type __n2) const; 2285:/usr/include/c++/4.8/bits/basic_string.h **** 2286:/usr/include/c++/4.8/bits/basic_string.h **** /** 2287:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Compare to a C string. 2288:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string to compare against. 2289:/usr/include/c++/4.8/bits/basic_string.h **** * @return Integer < 0, 0, or > 0. GAS LISTING /tmp/cc3o2J9C.s page 46 2290:/usr/include/c++/4.8/bits/basic_string.h **** * 2291:/usr/include/c++/4.8/bits/basic_string.h **** * Returns an integer < 0 if this string is ordered before @a __s, 0 if 2292:/usr/include/c++/4.8/bits/basic_string.h **** * their values are equivalent, or > 0 if this string is ordered after 2293:/usr/include/c++/4.8/bits/basic_string.h **** * @a __s. Determines the effective length rlen of the strings to 2294:/usr/include/c++/4.8/bits/basic_string.h **** * compare as the smallest of size() and the length of a string 2295:/usr/include/c++/4.8/bits/basic_string.h **** * constructed from @a __s. The function then compares the two strings 2296:/usr/include/c++/4.8/bits/basic_string.h **** * by calling traits::compare(data(),s,rlen). If the result of the 2297:/usr/include/c++/4.8/bits/basic_string.h **** * comparison is nonzero returns it, otherwise the shorter one is 2298:/usr/include/c++/4.8/bits/basic_string.h **** * ordered first. 2299:/usr/include/c++/4.8/bits/basic_string.h **** */ 2300:/usr/include/c++/4.8/bits/basic_string.h **** int 2301:/usr/include/c++/4.8/bits/basic_string.h **** compare(const _CharT* __s) const; 2302:/usr/include/c++/4.8/bits/basic_string.h **** 2303:/usr/include/c++/4.8/bits/basic_string.h **** // _GLIBCXX_RESOLVE_LIB_DEFECTS 2304:/usr/include/c++/4.8/bits/basic_string.h **** // 5 String::compare specification questionable 2305:/usr/include/c++/4.8/bits/basic_string.h **** /** 2306:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Compare substring to a C string. 2307:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of first character of substring. 2308:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n1 Number of characters in substring. 2309:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s C string to compare against. 2310:/usr/include/c++/4.8/bits/basic_string.h **** * @return Integer < 0, 0, or > 0. 2311:/usr/include/c++/4.8/bits/basic_string.h **** * 2312:/usr/include/c++/4.8/bits/basic_string.h **** * Form the substring of this string from the @a __n1 2313:/usr/include/c++/4.8/bits/basic_string.h **** * characters starting at @a pos. Returns an integer < 0 if 2314:/usr/include/c++/4.8/bits/basic_string.h **** * the substring is ordered before @a __s, 0 if their values 2315:/usr/include/c++/4.8/bits/basic_string.h **** * are equivalent, or > 0 if the substring is ordered after @a 2316:/usr/include/c++/4.8/bits/basic_string.h **** * __s. Determines the effective length rlen of the strings to 2317:/usr/include/c++/4.8/bits/basic_string.h **** * compare as the smallest of the length of the substring and 2318:/usr/include/c++/4.8/bits/basic_string.h **** * the length of a string constructed from @a __s. The 2319:/usr/include/c++/4.8/bits/basic_string.h **** * function then compares the two string by calling 2320:/usr/include/c++/4.8/bits/basic_string.h **** * traits::compare(substring.data(),__s,rlen). If the result of 2321:/usr/include/c++/4.8/bits/basic_string.h **** * the comparison is nonzero returns it, otherwise the shorter 2322:/usr/include/c++/4.8/bits/basic_string.h **** * one is ordered first. 2323:/usr/include/c++/4.8/bits/basic_string.h **** */ 2324:/usr/include/c++/4.8/bits/basic_string.h **** int 2325:/usr/include/c++/4.8/bits/basic_string.h **** compare(size_type __pos, size_type __n1, const _CharT* __s) const; 2326:/usr/include/c++/4.8/bits/basic_string.h **** 2327:/usr/include/c++/4.8/bits/basic_string.h **** /** 2328:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Compare substring against a character %array. 2329:/usr/include/c++/4.8/bits/basic_string.h **** * @param __pos Index of first character of substring. 2330:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n1 Number of characters in substring. 2331:/usr/include/c++/4.8/bits/basic_string.h **** * @param __s character %array to compare against. 2332:/usr/include/c++/4.8/bits/basic_string.h **** * @param __n2 Number of characters of s. 2333:/usr/include/c++/4.8/bits/basic_string.h **** * @return Integer < 0, 0, or > 0. 2334:/usr/include/c++/4.8/bits/basic_string.h **** * 2335:/usr/include/c++/4.8/bits/basic_string.h **** * Form the substring of this string from the @a __n1 2336:/usr/include/c++/4.8/bits/basic_string.h **** * characters starting at @a __pos. Form a string from the 2337:/usr/include/c++/4.8/bits/basic_string.h **** * first @a __n2 characters of @a __s. Returns an integer < 0 2338:/usr/include/c++/4.8/bits/basic_string.h **** * if this substring is ordered before the string from @a __s, 2339:/usr/include/c++/4.8/bits/basic_string.h **** * 0 if their values are equivalent, or > 0 if this substring 2340:/usr/include/c++/4.8/bits/basic_string.h **** * is ordered after the string from @a __s. Determines the 2341:/usr/include/c++/4.8/bits/basic_string.h **** * effective length rlen of the strings to compare as the 2342:/usr/include/c++/4.8/bits/basic_string.h **** * smallest of the length of the substring and @a __n2. The 2343:/usr/include/c++/4.8/bits/basic_string.h **** * function then compares the two strings by calling 2344:/usr/include/c++/4.8/bits/basic_string.h **** * traits::compare(substring.data(),s,rlen). If the result of 2345:/usr/include/c++/4.8/bits/basic_string.h **** * the comparison is nonzero returns it, otherwise the shorter 2346:/usr/include/c++/4.8/bits/basic_string.h **** * one is ordered first. GAS LISTING /tmp/cc3o2J9C.s page 47 2347:/usr/include/c++/4.8/bits/basic_string.h **** * 2348:/usr/include/c++/4.8/bits/basic_string.h **** * NB: s must have at least n2 characters, '\\0' has 2349:/usr/include/c++/4.8/bits/basic_string.h **** * no special meaning. 2350:/usr/include/c++/4.8/bits/basic_string.h **** */ 2351:/usr/include/c++/4.8/bits/basic_string.h **** int 2352:/usr/include/c++/4.8/bits/basic_string.h **** compare(size_type __pos, size_type __n1, const _CharT* __s, 2353:/usr/include/c++/4.8/bits/basic_string.h **** size_type __n2) const; 2354:/usr/include/c++/4.8/bits/basic_string.h **** }; 2355:/usr/include/c++/4.8/bits/basic_string.h **** 2356:/usr/include/c++/4.8/bits/basic_string.h **** // operator+ 2357:/usr/include/c++/4.8/bits/basic_string.h **** /** 2358:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Concatenate two strings. 2359:/usr/include/c++/4.8/bits/basic_string.h **** * @param __lhs First string. 2360:/usr/include/c++/4.8/bits/basic_string.h **** * @param __rhs Last string. 2361:/usr/include/c++/4.8/bits/basic_string.h **** * @return New string with value of @a __lhs followed by @a __rhs. 2362:/usr/include/c++/4.8/bits/basic_string.h **** */ 2363:/usr/include/c++/4.8/bits/basic_string.h **** template<typename _CharT, typename _Traits, typename _Alloc> 2364:/usr/include/c++/4.8/bits/basic_string.h **** basic_string<_CharT, _Traits, _Alloc> 2365:/usr/include/c++/4.8/bits/basic_string.h **** operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2366:/usr/include/c++/4.8/bits/basic_string.h **** const basic_string<_CharT, _Traits, _Alloc>& __rhs) 2367:/usr/include/c++/4.8/bits/basic_string.h **** { 2368:/usr/include/c++/4.8/bits/basic_string.h **** basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 2369:/usr/include/c++/4.8/bits/basic_string.h **** __str.append(__rhs); 2370:/usr/include/c++/4.8/bits/basic_string.h **** return __str; 2371:/usr/include/c++/4.8/bits/basic_string.h **** } 2372:/usr/include/c++/4.8/bits/basic_string.h **** 2373:/usr/include/c++/4.8/bits/basic_string.h **** /** 2374:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Concatenate C string and string. 2375:/usr/include/c++/4.8/bits/basic_string.h **** * @param __lhs First string. 2376:/usr/include/c++/4.8/bits/basic_string.h **** * @param __rhs Last string. 2377:/usr/include/c++/4.8/bits/basic_string.h **** * @return New string with value of @a __lhs followed by @a __rhs. 2378:/usr/include/c++/4.8/bits/basic_string.h **** */ 2379:/usr/include/c++/4.8/bits/basic_string.h **** template<typename _CharT, typename _Traits, typename _Alloc> 2380:/usr/include/c++/4.8/bits/basic_string.h **** basic_string<_CharT,_Traits,_Alloc> 2381:/usr/include/c++/4.8/bits/basic_string.h **** operator+(const _CharT* __lhs, 2382:/usr/include/c++/4.8/bits/basic_string.h **** const basic_string<_CharT,_Traits,_Alloc>& __rhs); 2383:/usr/include/c++/4.8/bits/basic_string.h **** 2384:/usr/include/c++/4.8/bits/basic_string.h **** /** 2385:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Concatenate character and string. 2386:/usr/include/c++/4.8/bits/basic_string.h **** * @param __lhs First string. 2387:/usr/include/c++/4.8/bits/basic_string.h **** * @param __rhs Last string. 2388:/usr/include/c++/4.8/bits/basic_string.h **** * @return New string with @a __lhs followed by @a __rhs. 2389:/usr/include/c++/4.8/bits/basic_string.h **** */ 2390:/usr/include/c++/4.8/bits/basic_string.h **** template<typename _CharT, typename _Traits, typename _Alloc> 2391:/usr/include/c++/4.8/bits/basic_string.h **** basic_string<_CharT,_Traits,_Alloc> 2392:/usr/include/c++/4.8/bits/basic_string.h **** operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); 2393:/usr/include/c++/4.8/bits/basic_string.h **** 2394:/usr/include/c++/4.8/bits/basic_string.h **** /** 2395:/usr/include/c++/4.8/bits/basic_string.h **** * @brief Concatenate string and C string. 2396:/usr/include/c++/4.8/bits/basic_string.h **** * @param __lhs First string. 2397:/usr/include/c++/4.8/bits/basic_string.h **** * @param __rhs Last string. 2398:/usr/include/c++/4.8/bits/basic_string.h **** * @return New string with @a __lhs followed by @a __rhs. 2399:/usr/include/c++/4.8/bits/basic_string.h **** */ 2400:/usr/include/c++/4.8/bits/basic_string.h **** template<typename _CharT, typename _Traits, typename _Alloc> 2401:/usr/include/c++/4.8/bits/basic_string.h **** inline basic_string<_CharT, _Traits, _Alloc> 2402:/usr/include/c++/4.8/bits/basic_string.h **** operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 230 .loc 2 2402 0 GAS LISTING /tmp/cc3o2J9C.s page 48 231 .cfi_startproc 232 .cfi_personality 0x3,__gxx_personality_v0 233 .cfi_lsda 0x3,.LLSDA1313 234 .LVL26: 235 0000 55 pushq %rbp 236 .cfi_def_cfa_offset 16 237 .cfi_offset 6, -16 238 0001 53 pushq %rbx 239 .cfi_def_cfa_offset 24 240 .cfi_offset 3, -24 241 0002 4883EC08 subq $8, %rsp 242 .cfi_def_cfa_offset 32 243 0006 4889FB movq %rdi, %rbx 244 0009 4889D5 movq %rdx, %rbp 245 .LEHB4: 246 .LBB6: 2403:/usr/include/c++/4.8/bits/basic_string.h **** const _CharT* __rhs) 2404:/usr/include/c++/4.8/bits/basic_string.h **** { 2405:/usr/include/c++/4.8/bits/basic_string.h **** basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 247 .loc 2 2405 0 248 000c E8000000 call _ZNSsC1ERKSs 248 00 249 .LEHE4: 250 .LVL27: 2406:/usr/include/c++/4.8/bits/basic_string.h **** __str.append(__rhs); 251 .loc 2 2406 0 252 0011 4889EE movq %rbp, %rsi 253 0014 4889DF movq %rbx, %rdi 254 .LEHB5: 255 0017 E8000000 call _ZNSs6appendEPKc 255 00 256 .LEHE5: 257 .LVL28: 258 001c EB13 jmp .L17 259 .L16: 260 001e 4889C5 movq %rax, %rbp 261 .LVL29: 262 0021 4889DF movq %rbx, %rdi 263 0024 E8000000 call _ZNSsD1Ev 263 00 264 .LVL30: 265 0029 4889EF movq %rbp, %rdi 266 .LEHB6: 267 002c E8000000 call _Unwind_Resume 267 00 268 .LEHE6: 269 .LVL31: 270 .L17: 271 .LBE6: 2407:/usr/include/c++/4.8/bits/basic_string.h **** return __str; 2408:/usr/include/c++/4.8/bits/basic_string.h **** } 272 .loc 2 2408 0 273 0031 4889D8 movq %rbx, %rax 274 0034 4883C408 addq $8, %rsp 275 .cfi_def_cfa_offset 24 276 0038 5B popq %rbx 277 .cfi_def_cfa_offset 16 GAS LISTING /tmp/cc3o2J9C.s page 49 278 .LVL32: 279 0039 5D popq %rbp 280 .cfi_def_cfa_offset 8 281 .LVL33: 282 003a C3 ret 283 .cfi_endproc 284 .LFE1313: 285 .section .gcc_except_table 286 .LLSDA1313: 287 0016 FF .byte 0xff 288 0017 FF .byte 0xff 289 0018 01 .byte 0x1 290 0019 0C .uleb128 .LLSDACSE1313-.LLSDACSB1313 291 .LLSDACSB1313: 292 001a 0C .uleb128 .LEHB4-.LFB1313 293 001b 05 .uleb128 .LEHE4-.LEHB4 294 001c 00 .uleb128 0 295 001d 00 .uleb128 0 296 001e 17 .uleb128 .LEHB5-.LFB1313 297 001f 05 .uleb128 .LEHE5-.LEHB5 298 0020 1E .uleb128 .L16-.LFB1313 299 0021 00 .uleb128 0 300 0022 2C .uleb128 .LEHB6-.LFB1313 301 0023 05 .uleb128 .LEHE6-.LEHB6 302 0024 00 .uleb128 0 303 0025 00 .uleb128 0 304 .LLSDACSE1313: 305 .section .text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_,"axG",@progbits,_ZStplIcSt11 307 .section .rodata.str1.1 308 .LC2: 309 000e 74657374 .string "test" 309 00 310 .LC3: 311 0013 626F6200 .string "bob" 312 .text 314 _Z41__static_initialization_and_destruction_0ii: 315 .LFB1411: 316 .loc 1 25 0 317 .cfi_startproc 318 .cfi_personality 0x3,__gxx_personality_v0 319 .cfi_lsda 0x3,.LLSDA1411 320 00bb 83FF01 cmpl $1, %edi 321 00be 0F85AF00 jne .L25 321 0000 322 .loc 1 25 0 discriminator 1 323 00c4 81FEFFFF cmpl $65535, %esi 323 0000 324 00ca 0F85A300 jne .L25 324 0000 325 .loc 1 25 0 is_stmt 0 326 00d0 53 pushq %rbx 327 .cfi_def_cfa_offset 16 328 .cfi_offset 3, -16 329 00d1 4883EC10 subq $16, %rsp 330 .cfi_def_cfa_offset 32 331 .file 3 "/usr/include/c++/4.8/iostream" 1:/usr/include/c++/4.8/iostream **** // Standard iostream objects -*- C++ -*- GAS LISTING /tmp/cc3o2J9C.s page 50 2:/usr/include/c++/4.8/iostream **** 3:/usr/include/c++/4.8/iostream **** // Copyright (C) 1997-2013 Free Software Foundation, Inc. 4:/usr/include/c++/4.8/iostream **** // 5:/usr/include/c++/4.8/iostream **** // This file is part of the GNU ISO C++ Library. This library is free 6:/usr/include/c++/4.8/iostream **** // software; you can redistribute it and/or modify it under the 7:/usr/include/c++/4.8/iostream **** // terms of the GNU General Public License as published by the 8:/usr/include/c++/4.8/iostream **** // Free Software Foundation; either version 3, or (at your option) 9:/usr/include/c++/4.8/iostream **** // any later version. 10:/usr/include/c++/4.8/iostream **** 11:/usr/include/c++/4.8/iostream **** // This library is distributed in the hope that it will be useful, 12:/usr/include/c++/4.8/iostream **** // but WITHOUT ANY WARRANTY; without even the implied warranty of 13:/usr/include/c++/4.8/iostream **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14:/usr/include/c++/4.8/iostream **** // GNU General Public License for more details. 15:/usr/include/c++/4.8/iostream **** 16:/usr/include/c++/4.8/iostream **** // Under Section 7 of GPL version 3, you are granted additional 17:/usr/include/c++/4.8/iostream **** // permissions described in the GCC Runtime Library Exception, version 18:/usr/include/c++/4.8/iostream **** // 3.1, as published by the Free Software Foundation. 19:/usr/include/c++/4.8/iostream **** 20:/usr/include/c++/4.8/iostream **** // You should have received a copy of the GNU General Public License and 21:/usr/include/c++/4.8/iostream **** // a copy of the GCC Runtime Library Exception along with this program; 22:/usr/include/c++/4.8/iostream **** // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23:/usr/include/c++/4.8/iostream **** // <http://www.gnu.org/licenses/>. 24:/usr/include/c++/4.8/iostream **** 25:/usr/include/c++/4.8/iostream **** /** @file include/iostream 26:/usr/include/c++/4.8/iostream **** * This is a Standard C++ Library header. 27:/usr/include/c++/4.8/iostream **** */ 28:/usr/include/c++/4.8/iostream **** 29:/usr/include/c++/4.8/iostream **** // 30:/usr/include/c++/4.8/iostream **** // ISO C++ 14882: 27.3 Standard iostream objects 31:/usr/include/c++/4.8/iostream **** // 32:/usr/include/c++/4.8/iostream **** 33:/usr/include/c++/4.8/iostream **** #ifndef _GLIBCXX_IOSTREAM 34:/usr/include/c++/4.8/iostream **** #define _GLIBCXX_IOSTREAM 1 35:/usr/include/c++/4.8/iostream **** 36:/usr/include/c++/4.8/iostream **** #pragma GCC system_header 37:/usr/include/c++/4.8/iostream **** 38:/usr/include/c++/4.8/iostream **** #include <bits/c++config.h> 39:/usr/include/c++/4.8/iostream **** #include <ostream> 40:/usr/include/c++/4.8/iostream **** #include <istream> 41:/usr/include/c++/4.8/iostream **** 42:/usr/include/c++/4.8/iostream **** namespace std _GLIBCXX_VISIBILITY(default) 43:/usr/include/c++/4.8/iostream **** { 44:/usr/include/c++/4.8/iostream **** _GLIBCXX_BEGIN_NAMESPACE_VERSION 45:/usr/include/c++/4.8/iostream **** 46:/usr/include/c++/4.8/iostream **** /** 47:/usr/include/c++/4.8/iostream **** * @name Standard Stream Objects 48:/usr/include/c++/4.8/iostream **** * 49:/usr/include/c++/4.8/iostream **** * The <iostream> header declares the eight <em>standard stream 50:/usr/include/c++/4.8/iostream **** * objects</em>. For other declarations, see 51:/usr/include/c++/4.8/iostream **** * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch24.html 52:/usr/include/c++/4.8/iostream **** * and the @link iosfwd I/O forward declarations @endlink 53:/usr/include/c++/4.8/iostream **** * 54:/usr/include/c++/4.8/iostream **** * They are required by default to cooperate with the global C 55:/usr/include/c++/4.8/iostream **** * library's @c FILE streams, and to be available during program 56:/usr/include/c++/4.8/iostream **** * startup and termination. For more information, see the HOWTO 57:/usr/include/c++/4.8/iostream **** * linked to above. 58:/usr/include/c++/4.8/iostream **** */ GAS LISTING /tmp/cc3o2J9C.s page 51 59:/usr/include/c++/4.8/iostream **** //@{ 60:/usr/include/c++/4.8/iostream **** extern istream cin; /// Linked to standard input 61:/usr/include/c++/4.8/iostream **** extern ostream cout; /// Linked to standard output 62:/usr/include/c++/4.8/iostream **** extern ostream cerr; /// Linked to standard error (unbuffered) 63:/usr/include/c++/4.8/iostream **** extern ostream clog; /// Linked to standard error (buffered) 64:/usr/include/c++/4.8/iostream **** 65:/usr/include/c++/4.8/iostream **** #ifdef _GLIBCXX_USE_WCHAR_T 66:/usr/include/c++/4.8/iostream **** extern wistream wcin; /// Linked to standard input 67:/usr/include/c++/4.8/iostream **** extern wostream wcout; /// Linked to standard output 68:/usr/include/c++/4.8/iostream **** extern wostream wcerr; /// Linked to standard error (unbuffered) 69:/usr/include/c++/4.8/iostream **** extern wostream wclog; /// Linked to standard error (buffered) 70:/usr/include/c++/4.8/iostream **** #endif 71:/usr/include/c++/4.8/iostream **** //@} 72:/usr/include/c++/4.8/iostream **** 73:/usr/include/c++/4.8/iostream **** // For construction of filebuffers for cout, cin, cerr, clog et. al. 74:/usr/include/c++/4.8/iostream **** static ios_base::Init __ioinit; 332 .loc 3 74 0 is_stmt 1 333 00d5 BF000000 movl $_ZStL8__ioinit, %edi 333 00 334 .LEHB7: 335 00da E8000000 call _ZNSt8ios_base4InitC1Ev 335 00 336 00df BA000000 movl $__dso_handle, %edx 336 00 337 00e4 BE000000 movl $_ZStL8__ioinit, %esi 337 00 338 00e9 BF000000 movl $_ZNSt8ios_base4InitD1Ev, %edi 338 00 339 00ee E8000000 call __cxa_atexit 339 00 17:global.cpp **** my_struct global_struct(global_string + "bob", 37); 340 .loc 1 17 0 341 00f3 4889E2 movq %rsp, %rdx 342 00f6 BE000000 movl $.LC2, %esi 342 00 343 00fb BF000000 movl $global_string, %edi 343 00 344 0100 E8000000 call _ZNSsC1EPKcRKSaIcE 344 00 345 0105 BA000000 movl $__dso_handle, %edx 345 00 346 010a BE000000 movl $global_string, %esi 346 00 347 010f BF000000 movl $_ZNSsD1Ev, %edi 347 00 348 0114 E8000000 call __cxa_atexit 348 00 18:global.cpp **** 349 .loc 1 18 0 350 0119 BA000000 movl $.LC3, %edx 350 00 351 011e BE000000 movl $global_string, %esi 351 00 352 0123 4889E7 movq %rsp, %rdi 353 0126 E8000000 call _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_ 353 00 354 .LEHE7: GAS LISTING /tmp/cc3o2J9C.s page 52 355 012b BA250000 movl $37, %edx 355 00 356 0130 4889E6 movq %rsp, %rsi 357 0133 BF000000 movl $global_struct, %edi 357 00 358 .LEHB8: 359 0138 E8000000 call _ZN9my_structC1ESsi 359 00 360 .LEHE8: 18:global.cpp **** 361 .loc 1 18 0 is_stmt 0 discriminator 1 362 013d 4889E7 movq %rsp, %rdi 363 0140 E8000000 call _ZNSsD1Ev 363 00 364 0145 BA000000 movl $__dso_handle, %edx 364 00 365 014a BE000000 movl $global_struct, %esi 365 00 366 014f BF000000 movl $_ZN9my_structD1Ev, %edi 366 00 367 0154 E8000000 call __cxa_atexit 367 00 368 0159 EB13 jmp .L19 369 .L22: 370 015b 4889C3 movq %rax, %rbx 18:global.cpp **** 371 .loc 1 18 0 372 015e 4889E7 movq %rsp, %rdi 373 0161 E8000000 call _ZNSsD1Ev 373 00 374 0166 4889DF movq %rbx, %rdi 375 .LEHB9: 376 0169 E8000000 call _Unwind_Resume 376 00 377 .LEHE9: 378 .L19: 379 .loc 1 25 0 is_stmt 1 380 016e 4883C410 addq $16, %rsp 381 .cfi_def_cfa_offset 16 382 0172 5B popq %rbx 383 .cfi_restore 3 384 .cfi_def_cfa_offset 8 385 .L25: 386 0173 C3 ret 387 .cfi_endproc 388 .LFE1411: 389 .section .gcc_except_table 390 .LLSDA1411: 391 0026 FF .byte 0xff 392 0027 FF .byte 0xff 393 0028 01 .byte 0x1 394 0029 0E .uleb128 .LLSDACSE1411-.LLSDACSB1411 395 .LLSDACSB1411: 396 002a 1F .uleb128 .LEHB7-.LFB1411 397 002b 51 .uleb128 .LEHE7-.LEHB7 398 002c 00 .uleb128 0 399 002d 00 .uleb128 0 GAS LISTING /tmp/cc3o2J9C.s page 53 400 002e 7D .uleb128 .LEHB8-.LFB1411 401 002f 05 .uleb128 .LEHE8-.LEHB8 402 0030 A001 .uleb128 .L22-.LFB1411 403 0032 00 .uleb128 0 404 0033 AE01 .uleb128 .LEHB9-.LFB1411 405 0035 05 .uleb128 .LEHE9-.LEHB9 406 0036 00 .uleb128 0 407 0037 00 .uleb128 0 408 .LLSDACSE1411: 409 .text 412 _GLOBAL__sub_I__ZN9my_structC2ESsi: 413 .LFB1412: 414 .loc 1 25 0 415 .cfi_startproc 416 0174 4883EC08 subq $8, %rsp 417 .cfi_def_cfa_offset 16 418 .loc 1 25 0 419 0178 BEFFFF00 movl $65535, %esi 419 00 420 017d BF010000 movl $1, %edi 420 00 421 0182 E834FFFF call _Z41__static_initialization_and_destruction_0ii 421 FF 422 .LVL34: 423 0187 4883C408 addq $8, %rsp 424 .cfi_def_cfa_offset 8 425 018b C3 ret 426 .cfi_endproc 427 .LFE1412: 429 .section .init_array,"aw" 430 .align 8 431 0000 00000000 .quad _GLOBAL__sub_I__ZN9my_structC2ESsi 431 00000000 432 .globl global_struct 433 .bss 434 .align 16 437 global_struct: 438 0000 00000000 .zero 24 438 00000000 438 00000000 438 00000000 438 00000000 439 .globl global_string 440 .align 8 443 global_string: 444 0018 00000000 .zero 8 444 00000000 445 .globl global_int 446 .data 447 .align 4 450 global_int: 451 0000 04000000 .long 4 452 .local _ZStL8__ioinit 453 .comm _ZStL8__ioinit,1,1 454 .text 455 .Letext0: 456 .file 4 "/usr/include/libio.h" GAS LISTING /tmp/cc3o2J9C.s page 54 457 .file 5 "/usr/include/stdio.h" 458 .file 6 "<built-in>" 459 .file 7 "/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h" 460 .file 8 "/usr/include/wchar.h" 461 .file 9 "/usr/include/c++/4.8/cwchar" 462 .file 10 "/usr/include/c++/4.8/bits/exception_ptr.h" 463 .file 11 "/usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h" 464 .file 12 "/usr/include/c++/4.8/bits/char_traits.h" 465 .file 13 "/usr/include/c++/4.8/cstdint" 466 .file 14 "/usr/include/c++/4.8/clocale" 467 .file 15 "/usr/include/c++/4.8/bits/allocator.h" 468 .file 16 "/usr/include/c++/4.8/cstdlib" 469 .file 17 "/usr/include/c++/4.8/cstdio" 470 .file 18 "/usr/include/c++/4.8/bits/basic_string.tcc" 471 .file 19 "/usr/include/c++/4.8/initializer_list" 472 .file 20 "/usr/include/c++/4.8/bits/stringfwd.h" 473 .file 21 "/usr/include/c++/4.8/bits/ios_base.h" 474 .file 22 "/usr/include/c++/4.8/cwctype" 475 .file 23 "/usr/include/c++/4.8/bits/ostream.tcc" 476 .file 24 "/usr/include/c++/4.8/ostream" 477 .file 25 "/usr/include/c++/4.8/bits/stl_iterator_base_types.h" 478 .file 26 "/usr/include/c++/4.8/iosfwd" 479 .file 27 "/usr/include/x86_64-linux-gnu/bits/wchar2.h" 480 .file 28 "/usr/include/time.h" 481 .file 29 "/usr/include/c++/4.8/ext/new_allocator.h" 482 .file 30 "/usr/include/c++/4.8/ext/numeric_traits.h" 483 .file 31 "/usr/include/c++/4.8/bits/stl_iterator.h" 484 .file 32 "/usr/include/c++/4.8/debug/debug.h" 485 .file 33 "/usr/include/stdint.h" 486 .file 34 "/usr/include/locale.h" 487 .file 35 "/usr/include/x86_64-linux-gnu/bits/types.h" 488 .file 36 "/usr/include/x86_64-linux-gnu/c++/4.8/bits/atomic_word.h" 489 .file 37 "/usr/include/stdlib.h" 490 .file 38 "/usr/include/x86_64-linux-gnu/bits/stdlib.h" 491 .file 39 "/usr/include/_G_config.h" 492 .file 40 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 493 .file 41 "/usr/include/wctype.h" 494 .file 42 "/usr/include/c++/4.8/bits/stl_pair.h" GAS LISTING /tmp/cc3o2J9C.s page 55 DEFINED SYMBOLS *ABS*:0000000000000000 global.cpp /tmp/cc3o2J9C.s:8 .text._ZN9my_structD2Ev:0000000000000000 _ZN9my_structD2Ev /tmp/cc3o2J9C.s:8 .text._ZN9my_structD2Ev:0000000000000000 _ZN9my_structD1Ev /tmp/cc3o2J9C.s:35 .text:0000000000000000 _ZN9my_structC2ESsi /tmp/cc3o2J9C.s:35 .text:0000000000000000 _ZN9my_structC1ESsi /tmp/cc3o2J9C.s:65 .text._ZN9my_structC2ERKS_:0000000000000000 _ZN9my_structC2ERKS_ /tmp/cc3o2J9C.s:65 .text._ZN9my_structC2ERKS_:0000000000000000 _ZN9my_structC1ERKS_ /tmp/cc3o2J9C.s:102 .text:000000000000001a _Z6globalv /tmp/cc3o2J9C.s:450 .data:0000000000000000 global_int /tmp/cc3o2J9C.s:443 .bss:0000000000000018 global_string /tmp/cc3o2J9C.s:437 .bss:0000000000000000 global_struct /tmp/cc3o2J9C.s:227 .text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_:0000000000000000 _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_ /tmp/cc3o2J9C.s:314 .text:00000000000000bb _Z41__static_initialization_and_destruction_0ii .bss:0000000000000020 _ZStL8__ioinit /tmp/cc3o2J9C.s:412 .text:0000000000000174 _GLOBAL__sub_I__ZN9my_structC2ESsi .group:0000000000000000 _ZN9my_structD5Ev .group:0000000000000000 _ZN9my_structC5ERKS_ UNDEFINED SYMBOLS _ZNSsD1Ev _ZNSsC1ERKSs __gxx_personality_v0 _ZSt4cout _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc _ZNSolsEi _ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_ _ZNSolsEPFRSoS_E _Unwind_Resume _ZNSs6appendEPKc _ZNSt8ios_base4InitC1Ev __dso_handle _ZNSt8ios_base4InitD1Ev __cxa_atexit _ZNSsC1EPKcRKSaIcE