GAS LISTING /tmp/ccrAK1jU.s page 1 1 .file "mangling.cpp" 2 .text 3 .Ltext0: 5 _Z41__static_initialization_and_destruction_0ii: 6 .LFB1846: 7 .file 1 "mangling.cpp" 1:mangling.cpp **** #include 2:mangling.cpp **** #include 3:mangling.cpp **** 4:mangling.cpp **** using namespace std; 5:mangling.cpp **** 6:mangling.cpp **** namespace Something { 7:mangling.cpp **** struct Inside { 8:mangling.cpp **** static int anotherStatic; 9:mangling.cpp **** int member; 10:mangling.cpp **** 11:mangling.cpp **** struct Deeper { 12:mangling.cpp **** int deepMember; 13:mangling.cpp **** 14:mangling.cpp **** int deepMethod() { 15:mangling.cpp **** return deepMember; 16:mangling.cpp **** } 17:mangling.cpp **** 18:mangling.cpp **** int deepMethod(int i) { 19:mangling.cpp **** return deepMember = i; 20:mangling.cpp **** } 21:mangling.cpp **** 22:mangling.cpp **** int deepMethod(std::string s) { 23:mangling.cpp **** return deepMember; 24:mangling.cpp **** } 25:mangling.cpp **** 26:mangling.cpp **** int deepMethod(std::vector v) { 27:mangling.cpp **** return deepMember; 28:mangling.cpp **** } 29:mangling.cpp **** }; 30:mangling.cpp **** }; 31:mangling.cpp **** }; 32:mangling.cpp **** 33:mangling.cpp **** int Something::Inside::anotherStatic = 137; 34:mangling.cpp **** 35:mangling.cpp **** struct Outside { 36:mangling.cpp **** const static int someStatic = 12; 37:mangling.cpp **** int member; 38:mangling.cpp **** 39:mangling.cpp **** Outside(int arg) { 40:mangling.cpp **** member = arg; 41:mangling.cpp **** } 42:mangling.cpp **** 43:mangling.cpp **** }; 44:mangling.cpp **** 45:mangling.cpp **** int mangling(int argc, const char** argv) { 46:mangling.cpp **** Something::Inside i; 47:mangling.cpp **** i.anotherStatic = 11; 48:mangling.cpp **** 49:mangling.cpp **** Something::Inside::Deeper d; 50:mangling.cpp **** d.deepMethod(23); 51:mangling.cpp **** d.deepMethod("foo"); GAS LISTING /tmp/ccrAK1jU.s page 2 52:mangling.cpp **** std::vector vs = {"x", "y", "z"}; 53:mangling.cpp **** d.deepMethod(vs); 54:mangling.cpp **** int v = d.deepMethod(); 55:mangling.cpp **** 56:mangling.cpp **** Outside o(37); 57:mangling.cpp **** cout << Outside::someStatic << " and " << o.member << " and " << v; 58:mangling.cpp **** 59:mangling.cpp **** return 0; 60:mangling.cpp **** } 8 .loc 1 60 0 9 .cfi_startproc 10 .LVL0: 11 0000 83FF01 cmpl $1, %edi 12 0003 752E jne .L5 13 .loc 1 60 0 discriminator 1 14 0005 81FEFFFF cmpl $65535, %esi 14 0000 15 000b 7526 jne .L5 16 .loc 1 60 0 is_stmt 0 17 000d 4883EC08 subq $8, %rsp 18 .cfi_def_cfa_offset 16 19 .file 2 "/usr/include/c++/4.8/iostream" 1:/usr/include/c++/4.8/iostream **** // Standard iostream objects -*- C++ -*- 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 **** // . 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 **** GAS LISTING /tmp/ccrAK1jU.s page 3 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 39:/usr/include/c++/4.8/iostream **** #include 40:/usr/include/c++/4.8/iostream **** #include 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 standard stream 50:/usr/include/c++/4.8/iostream **** * objects. 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 **** */ 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; 20 .loc 2 74 0 is_stmt 1 21 0011 BF000000 movl $_ZStL8__ioinit, %edi 21 00 22 .LVL1: 23 0016 E8000000 call _ZNSt8ios_base4InitC1Ev 23 00 24 .LVL2: 25 001b BA000000 movl $__dso_handle, %edx 25 00 26 0020 BE000000 movl $_ZStL8__ioinit, %esi 26 00 27 0025 BF000000 movl $_ZNSt8ios_base4InitD1Ev, %edi 27 00 28 002a E8000000 call __cxa_atexit 28 00 29 .LVL3: 30 .loc 1 60 0 31 002f 4883C408 addq $8, %rsp GAS LISTING /tmp/ccrAK1jU.s page 4 32 .cfi_def_cfa_offset 8 33 .L5: 34 0033 C3 ret 35 .cfi_endproc 36 .LFE1846: 38 .section .text._ZnwmPv,"axG",@progbits,_ZnwmPv,comdat 39 .weak _ZnwmPv 41 _ZnwmPv: 42 .LFB401: 43 .file 3 "/usr/include/c++/4.8/new" 1:/usr/include/c++/4.8/new **** // The -*- C++ -*- dynamic memory management header. 2:/usr/include/c++/4.8/new **** 3:/usr/include/c++/4.8/new **** // Copyright (C) 1994-2013 Free Software Foundation, Inc. 4:/usr/include/c++/4.8/new **** 5:/usr/include/c++/4.8/new **** // This file is part of GCC. 6:/usr/include/c++/4.8/new **** // 7:/usr/include/c++/4.8/new **** // GCC is free software; you can redistribute it and/or modify 8:/usr/include/c++/4.8/new **** // it under the terms of the GNU General Public License as published by 9:/usr/include/c++/4.8/new **** // the Free Software Foundation; either version 3, or (at your option) 10:/usr/include/c++/4.8/new **** // any later version. 11:/usr/include/c++/4.8/new **** // 12:/usr/include/c++/4.8/new **** // GCC is distributed in the hope that it will be useful, 13:/usr/include/c++/4.8/new **** // but WITHOUT ANY WARRANTY; without even the implied warranty of 14:/usr/include/c++/4.8/new **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15:/usr/include/c++/4.8/new **** // GNU General Public License for more details. 16:/usr/include/c++/4.8/new **** // 17:/usr/include/c++/4.8/new **** // Under Section 7 of GPL version 3, you are granted additional 18:/usr/include/c++/4.8/new **** // permissions described in the GCC Runtime Library Exception, version 19:/usr/include/c++/4.8/new **** // 3.1, as published by the Free Software Foundation. 20:/usr/include/c++/4.8/new **** 21:/usr/include/c++/4.8/new **** // You should have received a copy of the GNU General Public License and 22:/usr/include/c++/4.8/new **** // a copy of the GCC Runtime Library Exception along with this program; 23:/usr/include/c++/4.8/new **** // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 24:/usr/include/c++/4.8/new **** // . 25:/usr/include/c++/4.8/new **** 26:/usr/include/c++/4.8/new **** /** @file new 27:/usr/include/c++/4.8/new **** * This is a Standard C++ Library header. 28:/usr/include/c++/4.8/new **** * 29:/usr/include/c++/4.8/new **** * The header @c new defines several functions to manage dynamic memory and 30:/usr/include/c++/4.8/new **** * handling memory allocation errors; see 31:/usr/include/c++/4.8/new **** * http://gcc.gnu.org/onlinedocs/libstdc++/18_support/howto.html#4 for more. 32:/usr/include/c++/4.8/new **** */ 33:/usr/include/c++/4.8/new **** 34:/usr/include/c++/4.8/new **** #ifndef _NEW 35:/usr/include/c++/4.8/new **** #define _NEW 36:/usr/include/c++/4.8/new **** 37:/usr/include/c++/4.8/new **** #pragma GCC system_header 38:/usr/include/c++/4.8/new **** 39:/usr/include/c++/4.8/new **** #include 40:/usr/include/c++/4.8/new **** #include 41:/usr/include/c++/4.8/new **** 42:/usr/include/c++/4.8/new **** #pragma GCC visibility push(default) 43:/usr/include/c++/4.8/new **** 44:/usr/include/c++/4.8/new **** extern "C++" { 45:/usr/include/c++/4.8/new **** 46:/usr/include/c++/4.8/new **** namespace std 47:/usr/include/c++/4.8/new **** { GAS LISTING /tmp/ccrAK1jU.s page 5 48:/usr/include/c++/4.8/new **** /** 49:/usr/include/c++/4.8/new **** * @brief Exception possibly thrown by @c new. 50:/usr/include/c++/4.8/new **** * @ingroup exceptions 51:/usr/include/c++/4.8/new **** * 52:/usr/include/c++/4.8/new **** * @c bad_alloc (or classes derived from it) is used to report allocation 53:/usr/include/c++/4.8/new **** * errors from the throwing forms of @c new. */ 54:/usr/include/c++/4.8/new **** class bad_alloc : public exception 55:/usr/include/c++/4.8/new **** { 56:/usr/include/c++/4.8/new **** public: 57:/usr/include/c++/4.8/new **** bad_alloc() throw() { } 58:/usr/include/c++/4.8/new **** 59:/usr/include/c++/4.8/new **** // This declaration is not useless: 60:/usr/include/c++/4.8/new **** // http://gcc.gnu.org/onlinedocs/gcc-3.0.2/gcc_6.html#SEC118 61:/usr/include/c++/4.8/new **** virtual ~bad_alloc() throw(); 62:/usr/include/c++/4.8/new **** 63:/usr/include/c++/4.8/new **** // See comment in eh_exception.cc. 64:/usr/include/c++/4.8/new **** virtual const char* what() const throw(); 65:/usr/include/c++/4.8/new **** }; 66:/usr/include/c++/4.8/new **** 67:/usr/include/c++/4.8/new **** struct nothrow_t { }; 68:/usr/include/c++/4.8/new **** 69:/usr/include/c++/4.8/new **** extern const nothrow_t nothrow; 70:/usr/include/c++/4.8/new **** 71:/usr/include/c++/4.8/new **** /** If you write your own error handler to be called by @c new, it must 72:/usr/include/c++/4.8/new **** * be of this type. */ 73:/usr/include/c++/4.8/new **** typedef void (*new_handler)(); 74:/usr/include/c++/4.8/new **** 75:/usr/include/c++/4.8/new **** /// Takes a replacement handler as the argument, returns the 76:/usr/include/c++/4.8/new **** /// previous handler. 77:/usr/include/c++/4.8/new **** new_handler set_new_handler(new_handler) throw(); 78:/usr/include/c++/4.8/new **** } // namespace std 79:/usr/include/c++/4.8/new **** 80:/usr/include/c++/4.8/new **** //@{ 81:/usr/include/c++/4.8/new **** /** These are replaceable signatures: 82:/usr/include/c++/4.8/new **** * - normal single new and delete (no arguments, throw @c bad_alloc on error) 83:/usr/include/c++/4.8/new **** * - normal array new and delete (same) 84:/usr/include/c++/4.8/new **** * - @c nothrow single new and delete (take a @c nothrow argument, return 85:/usr/include/c++/4.8/new **** * @c NULL on error) 86:/usr/include/c++/4.8/new **** * - @c nothrow array new and delete (same) 87:/usr/include/c++/4.8/new **** * 88:/usr/include/c++/4.8/new **** * Placement new and delete signatures (take a memory address argument, 89:/usr/include/c++/4.8/new **** * does nothing) may not be replaced by a user's program. 90:/usr/include/c++/4.8/new **** */ 91:/usr/include/c++/4.8/new **** void* operator new(std::size_t) _GLIBCXX_THROW (std::bad_alloc) 92:/usr/include/c++/4.8/new **** __attribute__((__externally_visible__)); 93:/usr/include/c++/4.8/new **** void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) 94:/usr/include/c++/4.8/new **** __attribute__((__externally_visible__)); 95:/usr/include/c++/4.8/new **** void operator delete(void*) _GLIBCXX_USE_NOEXCEPT 96:/usr/include/c++/4.8/new **** __attribute__((__externally_visible__)); 97:/usr/include/c++/4.8/new **** void operator delete[](void*) _GLIBCXX_USE_NOEXCEPT 98:/usr/include/c++/4.8/new **** __attribute__((__externally_visible__)); 99:/usr/include/c++/4.8/new **** void* operator new(std::size_t, const std::nothrow_t&) _GLIBCXX_USE_NOEXCEPT 100:/usr/include/c++/4.8/new **** __attribute__((__externally_visible__)); 101:/usr/include/c++/4.8/new **** void* operator new[](std::size_t, const std::nothrow_t&) _GLIBCXX_USE_NOEXCEPT 102:/usr/include/c++/4.8/new **** __attribute__((__externally_visible__)); 103:/usr/include/c++/4.8/new **** void operator delete(void*, const std::nothrow_t&) _GLIBCXX_USE_NOEXCEPT 104:/usr/include/c++/4.8/new **** __attribute__((__externally_visible__)); GAS LISTING /tmp/ccrAK1jU.s page 6 105:/usr/include/c++/4.8/new **** void operator delete[](void*, const std::nothrow_t&) _GLIBCXX_USE_NOEXCEPT 106:/usr/include/c++/4.8/new **** __attribute__((__externally_visible__)); 107:/usr/include/c++/4.8/new **** 108:/usr/include/c++/4.8/new **** // Default placement versions of operator new. 109:/usr/include/c++/4.8/new **** inline void* operator new(std::size_t, void* __p) _GLIBCXX_USE_NOEXCEPT 110:/usr/include/c++/4.8/new **** { return __p; } 44 .loc 3 110 0 45 .cfi_startproc 46 .LVL4: 47 0000 4889F0 movq %rsi, %rax 48 .loc 3 110 0 49 0003 C3 ret 50 .cfi_endproc 51 .LFE401: 53 .section .text._ZN9Something6Inside6Deeper10deepMethodEv,"axG",@progbits,_ZN9Something6Inside6Deep 54 .align 2 55 .weak _ZN9Something6Inside6Deeper10deepMethodEv 57 _ZN9Something6Inside6Deeper10deepMethodEv: 58 .LFB1601: 14:mangling.cpp **** return deepMember; 59 .loc 1 14 0 60 .cfi_startproc 61 .LVL5: 15:mangling.cpp **** } 62 .loc 1 15 0 63 0000 8B07 movl (%rdi), %eax 16:mangling.cpp **** 64 .loc 1 16 0 65 0002 C3 ret 66 .cfi_endproc 67 .LFE1601: 69 .section .text._ZN9Something6Inside6Deeper10deepMethodEi,"axG",@progbits,_ZN9Something6Inside6Deep 70 .align 2 71 .weak _ZN9Something6Inside6Deeper10deepMethodEi 73 _ZN9Something6Inside6Deeper10deepMethodEi: 74 .LFB1602: 18:mangling.cpp **** return deepMember = i; 75 .loc 1 18 0 76 .cfi_startproc 77 .LVL6: 78 0000 89F0 movl %esi, %eax 19:mangling.cpp **** } 79 .loc 1 19 0 80 0002 8937 movl %esi, (%rdi) 20:mangling.cpp **** 81 .loc 1 20 0 82 0004 C3 ret 83 .cfi_endproc 84 .LFE1602: 86 .section .text._ZN7OutsideC2Ei,"axG",@progbits,_ZN7OutsideC5Ei,comdat 87 .align 2 88 .weak _ZN7OutsideC2Ei 90 _ZN7OutsideC2Ei: 91 .LFB1607: 39:mangling.cpp **** member = arg; 92 .loc 1 39 0 93 .cfi_startproc GAS LISTING /tmp/ccrAK1jU.s page 7 94 .LVL7: 95 .LBB2: 40:mangling.cpp **** } 96 .loc 1 40 0 97 0000 8937 movl %esi, (%rdi) 98 0002 C3 ret 99 .LBE2: 100 .cfi_endproc 101 .LFE1607: 103 .weak _ZN7OutsideC1Ei 104 .set _ZN7OutsideC1Ei,_ZN7OutsideC2Ei 105 .section .text._ZNKSt16initializer_listISsE5beginEv,"axG",@progbits,_ZNKSt16initializer_listISsE5b 106 .align 2 107 .weak _ZNKSt16initializer_listISsE5beginEv 109 _ZNKSt16initializer_listISsE5beginEv: 110 .LFB1678: 111 .file 4 "/usr/include/c++/4.8/initializer_list" 1:/usr/include/c++/4.8/initializer_list **** // std::initializer_list support -*- C++ -*- 2:/usr/include/c++/4.8/initializer_list **** 3:/usr/include/c++/4.8/initializer_list **** // Copyright (C) 2008-2013 Free Software Foundation, Inc. 4:/usr/include/c++/4.8/initializer_list **** // 5:/usr/include/c++/4.8/initializer_list **** // This file is part of GCC. 6:/usr/include/c++/4.8/initializer_list **** // 7:/usr/include/c++/4.8/initializer_list **** // GCC is free software; you can redistribute it and/or modify 8:/usr/include/c++/4.8/initializer_list **** // it under the terms of the GNU General Public License as published by 9:/usr/include/c++/4.8/initializer_list **** // the Free Software Foundation; either version 3, or (at your option) 10:/usr/include/c++/4.8/initializer_list **** // any later version. 11:/usr/include/c++/4.8/initializer_list **** // 12:/usr/include/c++/4.8/initializer_list **** // GCC is distributed in the hope that it will be useful, 13:/usr/include/c++/4.8/initializer_list **** // but WITHOUT ANY WARRANTY; without even the implied warranty of 14:/usr/include/c++/4.8/initializer_list **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15:/usr/include/c++/4.8/initializer_list **** // GNU General Public License for more details. 16:/usr/include/c++/4.8/initializer_list **** // 17:/usr/include/c++/4.8/initializer_list **** // Under Section 7 of GPL version 3, you are granted additional 18:/usr/include/c++/4.8/initializer_list **** // permissions described in the GCC Runtime Library Exception, version 19:/usr/include/c++/4.8/initializer_list **** // 3.1, as published by the Free Software Foundation. 20:/usr/include/c++/4.8/initializer_list **** 21:/usr/include/c++/4.8/initializer_list **** // You should have received a copy of the GNU General Public License and 22:/usr/include/c++/4.8/initializer_list **** // a copy of the GCC Runtime Library Exception along with this program; 23:/usr/include/c++/4.8/initializer_list **** // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 24:/usr/include/c++/4.8/initializer_list **** // . 25:/usr/include/c++/4.8/initializer_list **** 26:/usr/include/c++/4.8/initializer_list **** /** @file initializer_list 27:/usr/include/c++/4.8/initializer_list **** * This is a Standard C++ Library header. 28:/usr/include/c++/4.8/initializer_list **** */ 29:/usr/include/c++/4.8/initializer_list **** 30:/usr/include/c++/4.8/initializer_list **** #ifndef _INITIALIZER_LIST 31:/usr/include/c++/4.8/initializer_list **** #define _INITIALIZER_LIST 32:/usr/include/c++/4.8/initializer_list **** 33:/usr/include/c++/4.8/initializer_list **** #pragma GCC system_header 34:/usr/include/c++/4.8/initializer_list **** 35:/usr/include/c++/4.8/initializer_list **** #if __cplusplus < 201103L 36:/usr/include/c++/4.8/initializer_list **** # include 37:/usr/include/c++/4.8/initializer_list **** #else // C++0x 38:/usr/include/c++/4.8/initializer_list **** 39:/usr/include/c++/4.8/initializer_list **** #pragma GCC visibility push(default) 40:/usr/include/c++/4.8/initializer_list **** GAS LISTING /tmp/ccrAK1jU.s page 8 41:/usr/include/c++/4.8/initializer_list **** #include 42:/usr/include/c++/4.8/initializer_list **** 43:/usr/include/c++/4.8/initializer_list **** namespace std 44:/usr/include/c++/4.8/initializer_list **** { 45:/usr/include/c++/4.8/initializer_list **** /// initializer_list 46:/usr/include/c++/4.8/initializer_list **** template 47:/usr/include/c++/4.8/initializer_list **** class initializer_list 48:/usr/include/c++/4.8/initializer_list **** { 49:/usr/include/c++/4.8/initializer_list **** public: 50:/usr/include/c++/4.8/initializer_list **** typedef _E value_type; 51:/usr/include/c++/4.8/initializer_list **** typedef const _E& reference; 52:/usr/include/c++/4.8/initializer_list **** typedef const _E& const_reference; 53:/usr/include/c++/4.8/initializer_list **** typedef size_t size_type; 54:/usr/include/c++/4.8/initializer_list **** typedef const _E* iterator; 55:/usr/include/c++/4.8/initializer_list **** typedef const _E* const_iterator; 56:/usr/include/c++/4.8/initializer_list **** 57:/usr/include/c++/4.8/initializer_list **** private: 58:/usr/include/c++/4.8/initializer_list **** iterator _M_array; 59:/usr/include/c++/4.8/initializer_list **** size_type _M_len; 60:/usr/include/c++/4.8/initializer_list **** 61:/usr/include/c++/4.8/initializer_list **** // The compiler can call a private constructor. 62:/usr/include/c++/4.8/initializer_list **** constexpr initializer_list(const_iterator __a, size_type __l) 63:/usr/include/c++/4.8/initializer_list **** : _M_array(__a), _M_len(__l) { } 64:/usr/include/c++/4.8/initializer_list **** 65:/usr/include/c++/4.8/initializer_list **** public: 66:/usr/include/c++/4.8/initializer_list **** constexpr initializer_list() noexcept 67:/usr/include/c++/4.8/initializer_list **** : _M_array(0), _M_len(0) { } 68:/usr/include/c++/4.8/initializer_list **** 69:/usr/include/c++/4.8/initializer_list **** // Number of elements. 70:/usr/include/c++/4.8/initializer_list **** constexpr size_type 71:/usr/include/c++/4.8/initializer_list **** size() const noexcept { return _M_len; } 72:/usr/include/c++/4.8/initializer_list **** 73:/usr/include/c++/4.8/initializer_list **** // First element. 74:/usr/include/c++/4.8/initializer_list **** constexpr const_iterator 75:/usr/include/c++/4.8/initializer_list **** begin() const noexcept { return _M_array; } 112 .loc 4 75 0 113 .cfi_startproc 114 .LVL8: 115 .loc 4 75 0 116 0000 488B07 movq (%rdi), %rax 117 0003 C3 ret 118 .cfi_endproc 119 .LFE1678: 121 .section .text._ZNKSt16initializer_listISsE4sizeEv,"axG",@progbits,_ZNKSt16initializer_listISsE4si 122 .align 2 123 .weak _ZNKSt16initializer_listISsE4sizeEv 125 _ZNKSt16initializer_listISsE4sizeEv: 126 .LFB1680: 71:/usr/include/c++/4.8/initializer_list **** 127 .loc 4 71 0 128 .cfi_startproc 129 .LVL9: 71:/usr/include/c++/4.8/initializer_list **** 130 .loc 4 71 0 131 0000 488B4708 movq 8(%rdi), %rax 132 0004 C3 ret 133 .cfi_endproc GAS LISTING /tmp/ccrAK1jU.s page 9 134 .LFE1680: 136 .section .text._ZNKSt16initializer_listISsE3endEv,"axG",@progbits,_ZNKSt16initializer_listISsE3end 137 .align 2 138 .weak _ZNKSt16initializer_listISsE3endEv 140 _ZNKSt16initializer_listISsE3endEv: 141 .LFB1679: 76:/usr/include/c++/4.8/initializer_list **** 77:/usr/include/c++/4.8/initializer_list **** // One past the last element. 78:/usr/include/c++/4.8/initializer_list **** constexpr const_iterator 79:/usr/include/c++/4.8/initializer_list **** end() const noexcept { return begin() + size(); } 142 .loc 4 79 0 143 .cfi_startproc 144 .LVL10: 145 0000 55 pushq %rbp 146 .cfi_def_cfa_offset 16 147 .cfi_offset 6, -16 148 0001 53 pushq %rbx 149 .cfi_def_cfa_offset 24 150 .cfi_offset 3, -24 151 0002 4883EC08 subq $8, %rsp 152 .cfi_def_cfa_offset 32 153 0006 4889FB movq %rdi, %rbx 154 .loc 4 79 0 155 0009 E8000000 call _ZNKSt16initializer_listISsE5beginEv 155 00 156 .LVL11: 157 000e 4889C5 movq %rax, %rbp 158 0011 4889DF movq %rbx, %rdi 159 0014 E8000000 call _ZNKSt16initializer_listISsE4sizeEv 159 00 160 .LVL12: 161 0019 488D44C5 leaq 0(%rbp,%rax,8), %rax 161 00 162 001e 4883C408 addq $8, %rsp 163 .cfi_def_cfa_offset 24 164 0022 5B popq %rbx 165 .cfi_def_cfa_offset 16 166 .LVL13: 167 0023 5D popq %rbp 168 .cfi_def_cfa_offset 8 169 0024 C3 ret 170 .cfi_endproc 171 .LFE1679: 173 .section .text._ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv,"axG",@progbits,_ZNSt12_Vector 174 .align 2 175 .weak _ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv 177 _ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv: 178 .LFB1750: 179 .file 5 "/usr/include/c++/4.8/bits/stl_vector.h" 1:/usr/include/c++/4.8/bits/stl_vector.h **** // Vector implementation -*- C++ -*- 2:/usr/include/c++/4.8/bits/stl_vector.h **** 3:/usr/include/c++/4.8/bits/stl_vector.h **** // Copyright (C) 2001-2013 Free Software Foundation, Inc. 4:/usr/include/c++/4.8/bits/stl_vector.h **** // 5:/usr/include/c++/4.8/bits/stl_vector.h **** // This file is part of the GNU ISO C++ Library. This library is free 6:/usr/include/c++/4.8/bits/stl_vector.h **** // software; you can redistribute it and/or modify it under the 7:/usr/include/c++/4.8/bits/stl_vector.h **** // terms of the GNU General Public License as published by the 8:/usr/include/c++/4.8/bits/stl_vector.h **** // Free Software Foundation; either version 3, or (at your option) GAS LISTING /tmp/ccrAK1jU.s page 10 9:/usr/include/c++/4.8/bits/stl_vector.h **** // any later version. 10:/usr/include/c++/4.8/bits/stl_vector.h **** 11:/usr/include/c++/4.8/bits/stl_vector.h **** // This library is distributed in the hope that it will be useful, 12:/usr/include/c++/4.8/bits/stl_vector.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of 13:/usr/include/c++/4.8/bits/stl_vector.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14:/usr/include/c++/4.8/bits/stl_vector.h **** // GNU General Public License for more details. 15:/usr/include/c++/4.8/bits/stl_vector.h **** 16:/usr/include/c++/4.8/bits/stl_vector.h **** // Under Section 7 of GPL version 3, you are granted additional 17:/usr/include/c++/4.8/bits/stl_vector.h **** // permissions described in the GCC Runtime Library Exception, version 18:/usr/include/c++/4.8/bits/stl_vector.h **** // 3.1, as published by the Free Software Foundation. 19:/usr/include/c++/4.8/bits/stl_vector.h **** 20:/usr/include/c++/4.8/bits/stl_vector.h **** // You should have received a copy of the GNU General Public License and 21:/usr/include/c++/4.8/bits/stl_vector.h **** // a copy of the GCC Runtime Library Exception along with this program; 22:/usr/include/c++/4.8/bits/stl_vector.h **** // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23:/usr/include/c++/4.8/bits/stl_vector.h **** // . 24:/usr/include/c++/4.8/bits/stl_vector.h **** 25:/usr/include/c++/4.8/bits/stl_vector.h **** /* 26:/usr/include/c++/4.8/bits/stl_vector.h **** * 27:/usr/include/c++/4.8/bits/stl_vector.h **** * Copyright (c) 1994 28:/usr/include/c++/4.8/bits/stl_vector.h **** * Hewlett-Packard Company 29:/usr/include/c++/4.8/bits/stl_vector.h **** * 30:/usr/include/c++/4.8/bits/stl_vector.h **** * Permission to use, copy, modify, distribute and sell this software 31:/usr/include/c++/4.8/bits/stl_vector.h **** * and its documentation for any purpose is hereby granted without fee, 32:/usr/include/c++/4.8/bits/stl_vector.h **** * provided that the above copyright notice appear in all copies and 33:/usr/include/c++/4.8/bits/stl_vector.h **** * that both that copyright notice and this permission notice appear 34:/usr/include/c++/4.8/bits/stl_vector.h **** * in supporting documentation. Hewlett-Packard Company makes no 35:/usr/include/c++/4.8/bits/stl_vector.h **** * representations about the suitability of this software for any 36:/usr/include/c++/4.8/bits/stl_vector.h **** * purpose. It is provided "as is" without express or implied warranty. 37:/usr/include/c++/4.8/bits/stl_vector.h **** * 38:/usr/include/c++/4.8/bits/stl_vector.h **** * 39:/usr/include/c++/4.8/bits/stl_vector.h **** * Copyright (c) 1996 40:/usr/include/c++/4.8/bits/stl_vector.h **** * Silicon Graphics Computer Systems, Inc. 41:/usr/include/c++/4.8/bits/stl_vector.h **** * 42:/usr/include/c++/4.8/bits/stl_vector.h **** * Permission to use, copy, modify, distribute and sell this software 43:/usr/include/c++/4.8/bits/stl_vector.h **** * and its documentation for any purpose is hereby granted without fee, 44:/usr/include/c++/4.8/bits/stl_vector.h **** * provided that the above copyright notice appear in all copies and 45:/usr/include/c++/4.8/bits/stl_vector.h **** * that both that copyright notice and this permission notice appear 46:/usr/include/c++/4.8/bits/stl_vector.h **** * in supporting documentation. Silicon Graphics makes no 47:/usr/include/c++/4.8/bits/stl_vector.h **** * representations about the suitability of this software for any 48:/usr/include/c++/4.8/bits/stl_vector.h **** * purpose. It is provided "as is" without express or implied warranty. 49:/usr/include/c++/4.8/bits/stl_vector.h **** */ 50:/usr/include/c++/4.8/bits/stl_vector.h **** 51:/usr/include/c++/4.8/bits/stl_vector.h **** /** @file bits/stl_vector.h 52:/usr/include/c++/4.8/bits/stl_vector.h **** * This is an internal header file, included by other library headers. 53:/usr/include/c++/4.8/bits/stl_vector.h **** * Do not attempt to use it directly. @headername{vector} 54:/usr/include/c++/4.8/bits/stl_vector.h **** */ 55:/usr/include/c++/4.8/bits/stl_vector.h **** 56:/usr/include/c++/4.8/bits/stl_vector.h **** #ifndef _STL_VECTOR_H 57:/usr/include/c++/4.8/bits/stl_vector.h **** #define _STL_VECTOR_H 1 58:/usr/include/c++/4.8/bits/stl_vector.h **** 59:/usr/include/c++/4.8/bits/stl_vector.h **** #include 60:/usr/include/c++/4.8/bits/stl_vector.h **** #include 61:/usr/include/c++/4.8/bits/stl_vector.h **** #include 62:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 63:/usr/include/c++/4.8/bits/stl_vector.h **** #include 64:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 65:/usr/include/c++/4.8/bits/stl_vector.h **** GAS LISTING /tmp/ccrAK1jU.s page 11 66:/usr/include/c++/4.8/bits/stl_vector.h **** namespace std _GLIBCXX_VISIBILITY(default) 67:/usr/include/c++/4.8/bits/stl_vector.h **** { 68:/usr/include/c++/4.8/bits/stl_vector.h **** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER 69:/usr/include/c++/4.8/bits/stl_vector.h **** 70:/usr/include/c++/4.8/bits/stl_vector.h **** /// See bits/stl_deque.h's _Deque_base for an explanation. 71:/usr/include/c++/4.8/bits/stl_vector.h **** template 72:/usr/include/c++/4.8/bits/stl_vector.h **** struct _Vector_base 73:/usr/include/c++/4.8/bits/stl_vector.h **** { 74:/usr/include/c++/4.8/bits/stl_vector.h **** typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 75:/usr/include/c++/4.8/bits/stl_vector.h **** rebind<_Tp>::other _Tp_alloc_type; 76:/usr/include/c++/4.8/bits/stl_vector.h **** typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer 77:/usr/include/c++/4.8/bits/stl_vector.h **** pointer; 78:/usr/include/c++/4.8/bits/stl_vector.h **** 79:/usr/include/c++/4.8/bits/stl_vector.h **** struct _Vector_impl 80:/usr/include/c++/4.8/bits/stl_vector.h **** : public _Tp_alloc_type 81:/usr/include/c++/4.8/bits/stl_vector.h **** { 82:/usr/include/c++/4.8/bits/stl_vector.h **** pointer _M_start; 83:/usr/include/c++/4.8/bits/stl_vector.h **** pointer _M_finish; 84:/usr/include/c++/4.8/bits/stl_vector.h **** pointer _M_end_of_storage; 85:/usr/include/c++/4.8/bits/stl_vector.h **** 86:/usr/include/c++/4.8/bits/stl_vector.h **** _Vector_impl() 87:/usr/include/c++/4.8/bits/stl_vector.h **** : _Tp_alloc_type(), _M_start(0), _M_finish(0), _M_end_of_storage(0) 88:/usr/include/c++/4.8/bits/stl_vector.h **** { } 89:/usr/include/c++/4.8/bits/stl_vector.h **** 90:/usr/include/c++/4.8/bits/stl_vector.h **** _Vector_impl(_Tp_alloc_type const& __a) 91:/usr/include/c++/4.8/bits/stl_vector.h **** : _Tp_alloc_type(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0) 92:/usr/include/c++/4.8/bits/stl_vector.h **** { } 93:/usr/include/c++/4.8/bits/stl_vector.h **** 94:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 95:/usr/include/c++/4.8/bits/stl_vector.h **** _Vector_impl(_Tp_alloc_type&& __a) 96:/usr/include/c++/4.8/bits/stl_vector.h **** : _Tp_alloc_type(std::move(__a)), 97:/usr/include/c++/4.8/bits/stl_vector.h **** _M_start(0), _M_finish(0), _M_end_of_storage(0) 98:/usr/include/c++/4.8/bits/stl_vector.h **** { } 99:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 100:/usr/include/c++/4.8/bits/stl_vector.h **** 101:/usr/include/c++/4.8/bits/stl_vector.h **** void _M_swap_data(_Vector_impl& __x) 102:/usr/include/c++/4.8/bits/stl_vector.h **** { 103:/usr/include/c++/4.8/bits/stl_vector.h **** std::swap(_M_start, __x._M_start); 104:/usr/include/c++/4.8/bits/stl_vector.h **** std::swap(_M_finish, __x._M_finish); 105:/usr/include/c++/4.8/bits/stl_vector.h **** std::swap(_M_end_of_storage, __x._M_end_of_storage); 106:/usr/include/c++/4.8/bits/stl_vector.h **** } 107:/usr/include/c++/4.8/bits/stl_vector.h **** }; 108:/usr/include/c++/4.8/bits/stl_vector.h **** 109:/usr/include/c++/4.8/bits/stl_vector.h **** public: 110:/usr/include/c++/4.8/bits/stl_vector.h **** typedef _Alloc allocator_type; 111:/usr/include/c++/4.8/bits/stl_vector.h **** 112:/usr/include/c++/4.8/bits/stl_vector.h **** _Tp_alloc_type& 113:/usr/include/c++/4.8/bits/stl_vector.h **** _M_get_Tp_allocator() _GLIBCXX_NOEXCEPT 180 .loc 5 113 0 181 .cfi_startproc 182 .LVL14: 183 0000 4889F8 movq %rdi, %rax 114:/usr/include/c++/4.8/bits/stl_vector.h **** { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } 184 .loc 5 114 0 185 0003 C3 ret 186 .cfi_endproc 187 .LFE1750: GAS LISTING /tmp/ccrAK1jU.s page 12 189 .section .text._ZNKSt6vectorISsSaISsEE4sizeEv,"axG",@progbits,_ZNKSt6vectorISsSaISsEE4sizeEv,comda 190 .align 2 191 .weak _ZNKSt6vectorISsSaISsEE4sizeEv 193 _ZNKSt6vectorISsSaISsEE4sizeEv: 194 .LFB1752: 115:/usr/include/c++/4.8/bits/stl_vector.h **** 116:/usr/include/c++/4.8/bits/stl_vector.h **** const _Tp_alloc_type& 117:/usr/include/c++/4.8/bits/stl_vector.h **** _M_get_Tp_allocator() const _GLIBCXX_NOEXCEPT 118:/usr/include/c++/4.8/bits/stl_vector.h **** { return *static_cast(&this->_M_impl); } 119:/usr/include/c++/4.8/bits/stl_vector.h **** 120:/usr/include/c++/4.8/bits/stl_vector.h **** allocator_type 121:/usr/include/c++/4.8/bits/stl_vector.h **** get_allocator() const _GLIBCXX_NOEXCEPT 122:/usr/include/c++/4.8/bits/stl_vector.h **** { return allocator_type(_M_get_Tp_allocator()); } 123:/usr/include/c++/4.8/bits/stl_vector.h **** 124:/usr/include/c++/4.8/bits/stl_vector.h **** _Vector_base() 125:/usr/include/c++/4.8/bits/stl_vector.h **** : _M_impl() { } 126:/usr/include/c++/4.8/bits/stl_vector.h **** 127:/usr/include/c++/4.8/bits/stl_vector.h **** _Vector_base(const allocator_type& __a) 128:/usr/include/c++/4.8/bits/stl_vector.h **** : _M_impl(__a) { } 129:/usr/include/c++/4.8/bits/stl_vector.h **** 130:/usr/include/c++/4.8/bits/stl_vector.h **** _Vector_base(size_t __n) 131:/usr/include/c++/4.8/bits/stl_vector.h **** : _M_impl() 132:/usr/include/c++/4.8/bits/stl_vector.h **** { _M_create_storage(__n); } 133:/usr/include/c++/4.8/bits/stl_vector.h **** 134:/usr/include/c++/4.8/bits/stl_vector.h **** _Vector_base(size_t __n, const allocator_type& __a) 135:/usr/include/c++/4.8/bits/stl_vector.h **** : _M_impl(__a) 136:/usr/include/c++/4.8/bits/stl_vector.h **** { _M_create_storage(__n); } 137:/usr/include/c++/4.8/bits/stl_vector.h **** 138:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 139:/usr/include/c++/4.8/bits/stl_vector.h **** _Vector_base(_Tp_alloc_type&& __a) 140:/usr/include/c++/4.8/bits/stl_vector.h **** : _M_impl(std::move(__a)) { } 141:/usr/include/c++/4.8/bits/stl_vector.h **** 142:/usr/include/c++/4.8/bits/stl_vector.h **** _Vector_base(_Vector_base&& __x) 143:/usr/include/c++/4.8/bits/stl_vector.h **** : _M_impl(std::move(__x._M_get_Tp_allocator())) 144:/usr/include/c++/4.8/bits/stl_vector.h **** { this->_M_impl._M_swap_data(__x._M_impl); } 145:/usr/include/c++/4.8/bits/stl_vector.h **** 146:/usr/include/c++/4.8/bits/stl_vector.h **** _Vector_base(_Vector_base&& __x, const allocator_type& __a) 147:/usr/include/c++/4.8/bits/stl_vector.h **** : _M_impl(__a) 148:/usr/include/c++/4.8/bits/stl_vector.h **** { 149:/usr/include/c++/4.8/bits/stl_vector.h **** if (__x.get_allocator() == __a) 150:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_swap_data(__x._M_impl); 151:/usr/include/c++/4.8/bits/stl_vector.h **** else 152:/usr/include/c++/4.8/bits/stl_vector.h **** { 153:/usr/include/c++/4.8/bits/stl_vector.h **** size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start; 154:/usr/include/c++/4.8/bits/stl_vector.h **** _M_create_storage(__n); 155:/usr/include/c++/4.8/bits/stl_vector.h **** } 156:/usr/include/c++/4.8/bits/stl_vector.h **** } 157:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 158:/usr/include/c++/4.8/bits/stl_vector.h **** 159:/usr/include/c++/4.8/bits/stl_vector.h **** ~_Vector_base() 160:/usr/include/c++/4.8/bits/stl_vector.h **** { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage 161:/usr/include/c++/4.8/bits/stl_vector.h **** - this->_M_impl._M_start); } 162:/usr/include/c++/4.8/bits/stl_vector.h **** 163:/usr/include/c++/4.8/bits/stl_vector.h **** public: 164:/usr/include/c++/4.8/bits/stl_vector.h **** _Vector_impl _M_impl; 165:/usr/include/c++/4.8/bits/stl_vector.h **** 166:/usr/include/c++/4.8/bits/stl_vector.h **** pointer GAS LISTING /tmp/ccrAK1jU.s page 13 167:/usr/include/c++/4.8/bits/stl_vector.h **** _M_allocate(size_t __n) 168:/usr/include/c++/4.8/bits/stl_vector.h **** { return __n != 0 ? _M_impl.allocate(__n) : 0; } 169:/usr/include/c++/4.8/bits/stl_vector.h **** 170:/usr/include/c++/4.8/bits/stl_vector.h **** void 171:/usr/include/c++/4.8/bits/stl_vector.h **** _M_deallocate(pointer __p, size_t __n) 172:/usr/include/c++/4.8/bits/stl_vector.h **** { 173:/usr/include/c++/4.8/bits/stl_vector.h **** if (__p) 174:/usr/include/c++/4.8/bits/stl_vector.h **** _M_impl.deallocate(__p, __n); 175:/usr/include/c++/4.8/bits/stl_vector.h **** } 176:/usr/include/c++/4.8/bits/stl_vector.h **** 177:/usr/include/c++/4.8/bits/stl_vector.h **** private: 178:/usr/include/c++/4.8/bits/stl_vector.h **** void 179:/usr/include/c++/4.8/bits/stl_vector.h **** _M_create_storage(size_t __n) 180:/usr/include/c++/4.8/bits/stl_vector.h **** { 181:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_start = this->_M_allocate(__n); 182:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_finish = this->_M_impl._M_start; 183:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 184:/usr/include/c++/4.8/bits/stl_vector.h **** } 185:/usr/include/c++/4.8/bits/stl_vector.h **** }; 186:/usr/include/c++/4.8/bits/stl_vector.h **** 187:/usr/include/c++/4.8/bits/stl_vector.h **** 188:/usr/include/c++/4.8/bits/stl_vector.h **** /** 189:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief A standard container which offers fixed time access to 190:/usr/include/c++/4.8/bits/stl_vector.h **** * individual elements in any order. 191:/usr/include/c++/4.8/bits/stl_vector.h **** * 192:/usr/include/c++/4.8/bits/stl_vector.h **** * @ingroup sequences 193:/usr/include/c++/4.8/bits/stl_vector.h **** * 194:/usr/include/c++/4.8/bits/stl_vector.h **** * @tparam _Tp Type of element. 195:/usr/include/c++/4.8/bits/stl_vector.h **** * @tparam _Alloc Allocator type, defaults to allocator<_Tp>. 196:/usr/include/c++/4.8/bits/stl_vector.h **** * 197:/usr/include/c++/4.8/bits/stl_vector.h **** * Meets the requirements of a container, a 198:/usr/include/c++/4.8/bits/stl_vector.h **** * reversible container, and a 199:/usr/include/c++/4.8/bits/stl_vector.h **** * sequence, including the 200:/usr/include/c++/4.8/bits/stl_vector.h **** * optional sequence requirements with the 201:/usr/include/c++/4.8/bits/stl_vector.h **** * %exception of @c push_front and @c pop_front. 202:/usr/include/c++/4.8/bits/stl_vector.h **** * 203:/usr/include/c++/4.8/bits/stl_vector.h **** * In some terminology a %vector can be described as a dynamic 204:/usr/include/c++/4.8/bits/stl_vector.h **** * C-style array, it offers fast and efficient access to individual 205:/usr/include/c++/4.8/bits/stl_vector.h **** * elements in any order and saves the user from worrying about 206:/usr/include/c++/4.8/bits/stl_vector.h **** * memory and size allocation. Subscripting ( @c [] ) access is 207:/usr/include/c++/4.8/bits/stl_vector.h **** * also provided as with C-style arrays. 208:/usr/include/c++/4.8/bits/stl_vector.h **** */ 209:/usr/include/c++/4.8/bits/stl_vector.h **** template > 210:/usr/include/c++/4.8/bits/stl_vector.h **** class vector : protected _Vector_base<_Tp, _Alloc> 211:/usr/include/c++/4.8/bits/stl_vector.h **** { 212:/usr/include/c++/4.8/bits/stl_vector.h **** // Concept requirements. 213:/usr/include/c++/4.8/bits/stl_vector.h **** typedef typename _Alloc::value_type _Alloc_value_type; 214:/usr/include/c++/4.8/bits/stl_vector.h **** __glibcxx_class_requires(_Tp, _SGIAssignableConcept) 215:/usr/include/c++/4.8/bits/stl_vector.h **** __glibcxx_class_requires2(_Tp, _Alloc_value_type, _SameTypeConcept) 216:/usr/include/c++/4.8/bits/stl_vector.h **** 217:/usr/include/c++/4.8/bits/stl_vector.h **** typedef _Vector_base<_Tp, _Alloc> _Base; 218:/usr/include/c++/4.8/bits/stl_vector.h **** typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 219:/usr/include/c++/4.8/bits/stl_vector.h **** typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; 220:/usr/include/c++/4.8/bits/stl_vector.h **** 221:/usr/include/c++/4.8/bits/stl_vector.h **** public: 222:/usr/include/c++/4.8/bits/stl_vector.h **** typedef _Tp value_type; 223:/usr/include/c++/4.8/bits/stl_vector.h **** typedef typename _Base::pointer pointer; GAS LISTING /tmp/ccrAK1jU.s page 14 224:/usr/include/c++/4.8/bits/stl_vector.h **** typedef typename _Alloc_traits::const_pointer const_pointer; 225:/usr/include/c++/4.8/bits/stl_vector.h **** typedef typename _Alloc_traits::reference reference; 226:/usr/include/c++/4.8/bits/stl_vector.h **** typedef typename _Alloc_traits::const_reference const_reference; 227:/usr/include/c++/4.8/bits/stl_vector.h **** typedef __gnu_cxx::__normal_iterator iterator; 228:/usr/include/c++/4.8/bits/stl_vector.h **** typedef __gnu_cxx::__normal_iterator 229:/usr/include/c++/4.8/bits/stl_vector.h **** const_iterator; 230:/usr/include/c++/4.8/bits/stl_vector.h **** typedef std::reverse_iterator const_reverse_iterator; 231:/usr/include/c++/4.8/bits/stl_vector.h **** typedef std::reverse_iterator reverse_iterator; 232:/usr/include/c++/4.8/bits/stl_vector.h **** typedef size_t size_type; 233:/usr/include/c++/4.8/bits/stl_vector.h **** typedef ptrdiff_t difference_type; 234:/usr/include/c++/4.8/bits/stl_vector.h **** typedef _Alloc allocator_type; 235:/usr/include/c++/4.8/bits/stl_vector.h **** 236:/usr/include/c++/4.8/bits/stl_vector.h **** protected: 237:/usr/include/c++/4.8/bits/stl_vector.h **** using _Base::_M_allocate; 238:/usr/include/c++/4.8/bits/stl_vector.h **** using _Base::_M_deallocate; 239:/usr/include/c++/4.8/bits/stl_vector.h **** using _Base::_M_impl; 240:/usr/include/c++/4.8/bits/stl_vector.h **** using _Base::_M_get_Tp_allocator; 241:/usr/include/c++/4.8/bits/stl_vector.h **** 242:/usr/include/c++/4.8/bits/stl_vector.h **** public: 243:/usr/include/c++/4.8/bits/stl_vector.h **** // [23.2.4.1] construct/copy/destroy 244:/usr/include/c++/4.8/bits/stl_vector.h **** // (assign() and get_allocator() are also listed in this section) 245:/usr/include/c++/4.8/bits/stl_vector.h **** /** 246:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Default constructor creates no elements. 247:/usr/include/c++/4.8/bits/stl_vector.h **** */ 248:/usr/include/c++/4.8/bits/stl_vector.h **** vector() 249:/usr/include/c++/4.8/bits/stl_vector.h **** : _Base() { } 250:/usr/include/c++/4.8/bits/stl_vector.h **** 251:/usr/include/c++/4.8/bits/stl_vector.h **** /** 252:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Creates a %vector with no elements. 253:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __a An allocator object. 254:/usr/include/c++/4.8/bits/stl_vector.h **** */ 255:/usr/include/c++/4.8/bits/stl_vector.h **** explicit 256:/usr/include/c++/4.8/bits/stl_vector.h **** vector(const allocator_type& __a) 257:/usr/include/c++/4.8/bits/stl_vector.h **** : _Base(__a) { } 258:/usr/include/c++/4.8/bits/stl_vector.h **** 259:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 260:/usr/include/c++/4.8/bits/stl_vector.h **** /** 261:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Creates a %vector with default constructed elements. 262:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __n The number of elements to initially create. 263:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __a An allocator. 264:/usr/include/c++/4.8/bits/stl_vector.h **** * 265:/usr/include/c++/4.8/bits/stl_vector.h **** * This constructor fills the %vector with @a __n default 266:/usr/include/c++/4.8/bits/stl_vector.h **** * constructed elements. 267:/usr/include/c++/4.8/bits/stl_vector.h **** */ 268:/usr/include/c++/4.8/bits/stl_vector.h **** explicit 269:/usr/include/c++/4.8/bits/stl_vector.h **** vector(size_type __n, const allocator_type& __a = allocator_type()) 270:/usr/include/c++/4.8/bits/stl_vector.h **** : _Base(__n, __a) 271:/usr/include/c++/4.8/bits/stl_vector.h **** { _M_default_initialize(__n); } 272:/usr/include/c++/4.8/bits/stl_vector.h **** 273:/usr/include/c++/4.8/bits/stl_vector.h **** /** 274:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Creates a %vector with copies of an exemplar element. 275:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __n The number of elements to initially create. 276:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __value An element to copy. 277:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __a An allocator. 278:/usr/include/c++/4.8/bits/stl_vector.h **** * 279:/usr/include/c++/4.8/bits/stl_vector.h **** * This constructor fills the %vector with @a __n copies of @a __value. 280:/usr/include/c++/4.8/bits/stl_vector.h **** */ GAS LISTING /tmp/ccrAK1jU.s page 15 281:/usr/include/c++/4.8/bits/stl_vector.h **** vector(size_type __n, const value_type& __value, 282:/usr/include/c++/4.8/bits/stl_vector.h **** const allocator_type& __a = allocator_type()) 283:/usr/include/c++/4.8/bits/stl_vector.h **** : _Base(__n, __a) 284:/usr/include/c++/4.8/bits/stl_vector.h **** { _M_fill_initialize(__n, __value); } 285:/usr/include/c++/4.8/bits/stl_vector.h **** #else 286:/usr/include/c++/4.8/bits/stl_vector.h **** /** 287:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Creates a %vector with copies of an exemplar element. 288:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __n The number of elements to initially create. 289:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __value An element to copy. 290:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __a An allocator. 291:/usr/include/c++/4.8/bits/stl_vector.h **** * 292:/usr/include/c++/4.8/bits/stl_vector.h **** * This constructor fills the %vector with @a __n copies of @a __value. 293:/usr/include/c++/4.8/bits/stl_vector.h **** */ 294:/usr/include/c++/4.8/bits/stl_vector.h **** explicit 295:/usr/include/c++/4.8/bits/stl_vector.h **** vector(size_type __n, const value_type& __value = value_type(), 296:/usr/include/c++/4.8/bits/stl_vector.h **** const allocator_type& __a = allocator_type()) 297:/usr/include/c++/4.8/bits/stl_vector.h **** : _Base(__n, __a) 298:/usr/include/c++/4.8/bits/stl_vector.h **** { _M_fill_initialize(__n, __value); } 299:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 300:/usr/include/c++/4.8/bits/stl_vector.h **** 301:/usr/include/c++/4.8/bits/stl_vector.h **** /** 302:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief %Vector copy constructor. 303:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __x A %vector of identical element and allocator types. 304:/usr/include/c++/4.8/bits/stl_vector.h **** * 305:/usr/include/c++/4.8/bits/stl_vector.h **** * The newly-created %vector uses a copy of the allocation 306:/usr/include/c++/4.8/bits/stl_vector.h **** * object used by @a __x. All the elements of @a __x are copied, 307:/usr/include/c++/4.8/bits/stl_vector.h **** * but any extra memory in 308:/usr/include/c++/4.8/bits/stl_vector.h **** * @a __x (for fast expansion) will not be copied. 309:/usr/include/c++/4.8/bits/stl_vector.h **** */ 310:/usr/include/c++/4.8/bits/stl_vector.h **** vector(const vector& __x) 311:/usr/include/c++/4.8/bits/stl_vector.h **** : _Base(__x.size(), 312:/usr/include/c++/4.8/bits/stl_vector.h **** _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator())) 313:/usr/include/c++/4.8/bits/stl_vector.h **** { this->_M_impl._M_finish = 314:/usr/include/c++/4.8/bits/stl_vector.h **** std::__uninitialized_copy_a(__x.begin(), __x.end(), 315:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_start, 316:/usr/include/c++/4.8/bits/stl_vector.h **** _M_get_Tp_allocator()); 317:/usr/include/c++/4.8/bits/stl_vector.h **** } 318:/usr/include/c++/4.8/bits/stl_vector.h **** 319:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 320:/usr/include/c++/4.8/bits/stl_vector.h **** /** 321:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief %Vector move constructor. 322:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __x A %vector of identical element and allocator types. 323:/usr/include/c++/4.8/bits/stl_vector.h **** * 324:/usr/include/c++/4.8/bits/stl_vector.h **** * The newly-created %vector contains the exact contents of @a __x. 325:/usr/include/c++/4.8/bits/stl_vector.h **** * The contents of @a __x are a valid, but unspecified %vector. 326:/usr/include/c++/4.8/bits/stl_vector.h **** */ 327:/usr/include/c++/4.8/bits/stl_vector.h **** vector(vector&& __x) noexcept 328:/usr/include/c++/4.8/bits/stl_vector.h **** : _Base(std::move(__x)) { } 329:/usr/include/c++/4.8/bits/stl_vector.h **** 330:/usr/include/c++/4.8/bits/stl_vector.h **** /// Copy constructor with alternative allocator 331:/usr/include/c++/4.8/bits/stl_vector.h **** vector(const vector& __x, const allocator_type& __a) 332:/usr/include/c++/4.8/bits/stl_vector.h **** : _Base(__x.size(), __a) 333:/usr/include/c++/4.8/bits/stl_vector.h **** { this->_M_impl._M_finish = 334:/usr/include/c++/4.8/bits/stl_vector.h **** std::__uninitialized_copy_a(__x.begin(), __x.end(), 335:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_start, 336:/usr/include/c++/4.8/bits/stl_vector.h **** _M_get_Tp_allocator()); 337:/usr/include/c++/4.8/bits/stl_vector.h **** } GAS LISTING /tmp/ccrAK1jU.s page 16 338:/usr/include/c++/4.8/bits/stl_vector.h **** 339:/usr/include/c++/4.8/bits/stl_vector.h **** /// Move constructor with alternative allocator 340:/usr/include/c++/4.8/bits/stl_vector.h **** vector(vector&& __rv, const allocator_type& __m) 341:/usr/include/c++/4.8/bits/stl_vector.h **** : _Base(std::move(__rv), __m) 342:/usr/include/c++/4.8/bits/stl_vector.h **** { 343:/usr/include/c++/4.8/bits/stl_vector.h **** if (__rv.get_allocator() != __m) 344:/usr/include/c++/4.8/bits/stl_vector.h **** { 345:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_finish = 346:/usr/include/c++/4.8/bits/stl_vector.h **** std::__uninitialized_move_a(__rv.begin(), __rv.end(), 347:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_start, 348:/usr/include/c++/4.8/bits/stl_vector.h **** _M_get_Tp_allocator()); 349:/usr/include/c++/4.8/bits/stl_vector.h **** __rv.clear(); 350:/usr/include/c++/4.8/bits/stl_vector.h **** } 351:/usr/include/c++/4.8/bits/stl_vector.h **** } 352:/usr/include/c++/4.8/bits/stl_vector.h **** 353:/usr/include/c++/4.8/bits/stl_vector.h **** /** 354:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Builds a %vector from an initializer list. 355:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __l An initializer_list. 356:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __a An allocator. 357:/usr/include/c++/4.8/bits/stl_vector.h **** * 358:/usr/include/c++/4.8/bits/stl_vector.h **** * Create a %vector consisting of copies of the elements in the 359:/usr/include/c++/4.8/bits/stl_vector.h **** * initializer_list @a __l. 360:/usr/include/c++/4.8/bits/stl_vector.h **** * 361:/usr/include/c++/4.8/bits/stl_vector.h **** * This will call the element type's copy constructor N times 362:/usr/include/c++/4.8/bits/stl_vector.h **** * (where N is @a __l.size()) and do no memory reallocation. 363:/usr/include/c++/4.8/bits/stl_vector.h **** */ 364:/usr/include/c++/4.8/bits/stl_vector.h **** vector(initializer_list __l, 365:/usr/include/c++/4.8/bits/stl_vector.h **** const allocator_type& __a = allocator_type()) 366:/usr/include/c++/4.8/bits/stl_vector.h **** : _Base(__a) 367:/usr/include/c++/4.8/bits/stl_vector.h **** { 368:/usr/include/c++/4.8/bits/stl_vector.h **** _M_range_initialize(__l.begin(), __l.end(), 369:/usr/include/c++/4.8/bits/stl_vector.h **** random_access_iterator_tag()); 370:/usr/include/c++/4.8/bits/stl_vector.h **** } 371:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 372:/usr/include/c++/4.8/bits/stl_vector.h **** 373:/usr/include/c++/4.8/bits/stl_vector.h **** /** 374:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Builds a %vector from a range. 375:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __first An input iterator. 376:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __last An input iterator. 377:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __a An allocator. 378:/usr/include/c++/4.8/bits/stl_vector.h **** * 379:/usr/include/c++/4.8/bits/stl_vector.h **** * Create a %vector consisting of copies of the elements from 380:/usr/include/c++/4.8/bits/stl_vector.h **** * [first,last). 381:/usr/include/c++/4.8/bits/stl_vector.h **** * 382:/usr/include/c++/4.8/bits/stl_vector.h **** * If the iterators are forward, bidirectional, or 383:/usr/include/c++/4.8/bits/stl_vector.h **** * random-access, then this will call the elements' copy 384:/usr/include/c++/4.8/bits/stl_vector.h **** * constructor N times (where N is distance(first,last)) and do 385:/usr/include/c++/4.8/bits/stl_vector.h **** * no memory reallocation. But if only input iterators are 386:/usr/include/c++/4.8/bits/stl_vector.h **** * used, then this will do at most 2N calls to the copy 387:/usr/include/c++/4.8/bits/stl_vector.h **** * constructor, and logN memory reallocations. 388:/usr/include/c++/4.8/bits/stl_vector.h **** */ 389:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 390:/usr/include/c++/4.8/bits/stl_vector.h **** template> 392:/usr/include/c++/4.8/bits/stl_vector.h **** vector(_InputIterator __first, _InputIterator __last, 393:/usr/include/c++/4.8/bits/stl_vector.h **** const allocator_type& __a = allocator_type()) 394:/usr/include/c++/4.8/bits/stl_vector.h **** : _Base(__a) GAS LISTING /tmp/ccrAK1jU.s page 17 395:/usr/include/c++/4.8/bits/stl_vector.h **** { _M_initialize_dispatch(__first, __last, __false_type()); } 396:/usr/include/c++/4.8/bits/stl_vector.h **** #else 397:/usr/include/c++/4.8/bits/stl_vector.h **** template 398:/usr/include/c++/4.8/bits/stl_vector.h **** vector(_InputIterator __first, _InputIterator __last, 399:/usr/include/c++/4.8/bits/stl_vector.h **** const allocator_type& __a = allocator_type()) 400:/usr/include/c++/4.8/bits/stl_vector.h **** : _Base(__a) 401:/usr/include/c++/4.8/bits/stl_vector.h **** { 402:/usr/include/c++/4.8/bits/stl_vector.h **** // Check whether it's an integral type. If so, it's not an iterator. 403:/usr/include/c++/4.8/bits/stl_vector.h **** typedef typename std::__is_integer<_InputIterator>::__type _Integral; 404:/usr/include/c++/4.8/bits/stl_vector.h **** _M_initialize_dispatch(__first, __last, _Integral()); 405:/usr/include/c++/4.8/bits/stl_vector.h **** } 406:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 407:/usr/include/c++/4.8/bits/stl_vector.h **** 408:/usr/include/c++/4.8/bits/stl_vector.h **** /** 409:/usr/include/c++/4.8/bits/stl_vector.h **** * The dtor only erases the elements, and note that if the 410:/usr/include/c++/4.8/bits/stl_vector.h **** * elements themselves are pointers, the pointed-to memory is 411:/usr/include/c++/4.8/bits/stl_vector.h **** * not touched in any way. Managing the pointer is the user's 412:/usr/include/c++/4.8/bits/stl_vector.h **** * responsibility. 413:/usr/include/c++/4.8/bits/stl_vector.h **** */ 414:/usr/include/c++/4.8/bits/stl_vector.h **** ~vector() _GLIBCXX_NOEXCEPT 415:/usr/include/c++/4.8/bits/stl_vector.h **** { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 416:/usr/include/c++/4.8/bits/stl_vector.h **** _M_get_Tp_allocator()); } 417:/usr/include/c++/4.8/bits/stl_vector.h **** 418:/usr/include/c++/4.8/bits/stl_vector.h **** /** 419:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief %Vector assignment operator. 420:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __x A %vector of identical element and allocator types. 421:/usr/include/c++/4.8/bits/stl_vector.h **** * 422:/usr/include/c++/4.8/bits/stl_vector.h **** * All the elements of @a __x are copied, but any extra memory in 423:/usr/include/c++/4.8/bits/stl_vector.h **** * @a __x (for fast expansion) will not be copied. Unlike the 424:/usr/include/c++/4.8/bits/stl_vector.h **** * copy constructor, the allocator object is not copied. 425:/usr/include/c++/4.8/bits/stl_vector.h **** */ 426:/usr/include/c++/4.8/bits/stl_vector.h **** vector& 427:/usr/include/c++/4.8/bits/stl_vector.h **** operator=(const vector& __x); 428:/usr/include/c++/4.8/bits/stl_vector.h **** 429:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 430:/usr/include/c++/4.8/bits/stl_vector.h **** /** 431:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief %Vector move assignment operator. 432:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __x A %vector of identical element and allocator types. 433:/usr/include/c++/4.8/bits/stl_vector.h **** * 434:/usr/include/c++/4.8/bits/stl_vector.h **** * The contents of @a __x are moved into this %vector (without copying, 435:/usr/include/c++/4.8/bits/stl_vector.h **** * if the allocators permit it). 436:/usr/include/c++/4.8/bits/stl_vector.h **** * @a __x is a valid, but unspecified %vector. 437:/usr/include/c++/4.8/bits/stl_vector.h **** */ 438:/usr/include/c++/4.8/bits/stl_vector.h **** vector& 439:/usr/include/c++/4.8/bits/stl_vector.h **** operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) 440:/usr/include/c++/4.8/bits/stl_vector.h **** { 441:/usr/include/c++/4.8/bits/stl_vector.h **** constexpr bool __move_storage = 442:/usr/include/c++/4.8/bits/stl_vector.h **** _Alloc_traits::_S_propagate_on_move_assign() 443:/usr/include/c++/4.8/bits/stl_vector.h **** || _Alloc_traits::_S_always_equal(); 444:/usr/include/c++/4.8/bits/stl_vector.h **** _M_move_assign(std::move(__x), 445:/usr/include/c++/4.8/bits/stl_vector.h **** integral_constant()); 446:/usr/include/c++/4.8/bits/stl_vector.h **** return *this; 447:/usr/include/c++/4.8/bits/stl_vector.h **** } 448:/usr/include/c++/4.8/bits/stl_vector.h **** 449:/usr/include/c++/4.8/bits/stl_vector.h **** /** 450:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief %Vector list assignment operator. 451:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __l An initializer_list. GAS LISTING /tmp/ccrAK1jU.s page 18 452:/usr/include/c++/4.8/bits/stl_vector.h **** * 453:/usr/include/c++/4.8/bits/stl_vector.h **** * This function fills a %vector with copies of the elements in the 454:/usr/include/c++/4.8/bits/stl_vector.h **** * initializer list @a __l. 455:/usr/include/c++/4.8/bits/stl_vector.h **** * 456:/usr/include/c++/4.8/bits/stl_vector.h **** * Note that the assignment completely changes the %vector and 457:/usr/include/c++/4.8/bits/stl_vector.h **** * that the resulting %vector's size is the same as the number 458:/usr/include/c++/4.8/bits/stl_vector.h **** * of elements assigned. Old data may be lost. 459:/usr/include/c++/4.8/bits/stl_vector.h **** */ 460:/usr/include/c++/4.8/bits/stl_vector.h **** vector& 461:/usr/include/c++/4.8/bits/stl_vector.h **** operator=(initializer_list __l) 462:/usr/include/c++/4.8/bits/stl_vector.h **** { 463:/usr/include/c++/4.8/bits/stl_vector.h **** this->assign(__l.begin(), __l.end()); 464:/usr/include/c++/4.8/bits/stl_vector.h **** return *this; 465:/usr/include/c++/4.8/bits/stl_vector.h **** } 466:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 467:/usr/include/c++/4.8/bits/stl_vector.h **** 468:/usr/include/c++/4.8/bits/stl_vector.h **** /** 469:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Assigns a given value to a %vector. 470:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __n Number of elements to be assigned. 471:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __val Value to be assigned. 472:/usr/include/c++/4.8/bits/stl_vector.h **** * 473:/usr/include/c++/4.8/bits/stl_vector.h **** * This function fills a %vector with @a __n copies of the given 474:/usr/include/c++/4.8/bits/stl_vector.h **** * value. Note that the assignment completely changes the 475:/usr/include/c++/4.8/bits/stl_vector.h **** * %vector and that the resulting %vector's size is the same as 476:/usr/include/c++/4.8/bits/stl_vector.h **** * the number of elements assigned. Old data may be lost. 477:/usr/include/c++/4.8/bits/stl_vector.h **** */ 478:/usr/include/c++/4.8/bits/stl_vector.h **** void 479:/usr/include/c++/4.8/bits/stl_vector.h **** assign(size_type __n, const value_type& __val) 480:/usr/include/c++/4.8/bits/stl_vector.h **** { _M_fill_assign(__n, __val); } 481:/usr/include/c++/4.8/bits/stl_vector.h **** 482:/usr/include/c++/4.8/bits/stl_vector.h **** /** 483:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Assigns a range to a %vector. 484:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __first An input iterator. 485:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __last An input iterator. 486:/usr/include/c++/4.8/bits/stl_vector.h **** * 487:/usr/include/c++/4.8/bits/stl_vector.h **** * This function fills a %vector with copies of the elements in the 488:/usr/include/c++/4.8/bits/stl_vector.h **** * range [__first,__last). 489:/usr/include/c++/4.8/bits/stl_vector.h **** * 490:/usr/include/c++/4.8/bits/stl_vector.h **** * Note that the assignment completely changes the %vector and 491:/usr/include/c++/4.8/bits/stl_vector.h **** * that the resulting %vector's size is the same as the number 492:/usr/include/c++/4.8/bits/stl_vector.h **** * of elements assigned. Old data may be lost. 493:/usr/include/c++/4.8/bits/stl_vector.h **** */ 494:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 495:/usr/include/c++/4.8/bits/stl_vector.h **** template> 497:/usr/include/c++/4.8/bits/stl_vector.h **** void 498:/usr/include/c++/4.8/bits/stl_vector.h **** assign(_InputIterator __first, _InputIterator __last) 499:/usr/include/c++/4.8/bits/stl_vector.h **** { _M_assign_dispatch(__first, __last, __false_type()); } 500:/usr/include/c++/4.8/bits/stl_vector.h **** #else 501:/usr/include/c++/4.8/bits/stl_vector.h **** template 502:/usr/include/c++/4.8/bits/stl_vector.h **** void 503:/usr/include/c++/4.8/bits/stl_vector.h **** assign(_InputIterator __first, _InputIterator __last) 504:/usr/include/c++/4.8/bits/stl_vector.h **** { 505:/usr/include/c++/4.8/bits/stl_vector.h **** // Check whether it's an integral type. If so, it's not an iterator. 506:/usr/include/c++/4.8/bits/stl_vector.h **** typedef typename std::__is_integer<_InputIterator>::__type _Integral; 507:/usr/include/c++/4.8/bits/stl_vector.h **** _M_assign_dispatch(__first, __last, _Integral()); 508:/usr/include/c++/4.8/bits/stl_vector.h **** } GAS LISTING /tmp/ccrAK1jU.s page 19 509:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 510:/usr/include/c++/4.8/bits/stl_vector.h **** 511:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 512:/usr/include/c++/4.8/bits/stl_vector.h **** /** 513:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Assigns an initializer list to a %vector. 514:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __l An initializer_list. 515:/usr/include/c++/4.8/bits/stl_vector.h **** * 516:/usr/include/c++/4.8/bits/stl_vector.h **** * This function fills a %vector with copies of the elements in the 517:/usr/include/c++/4.8/bits/stl_vector.h **** * initializer list @a __l. 518:/usr/include/c++/4.8/bits/stl_vector.h **** * 519:/usr/include/c++/4.8/bits/stl_vector.h **** * Note that the assignment completely changes the %vector and 520:/usr/include/c++/4.8/bits/stl_vector.h **** * that the resulting %vector's size is the same as the number 521:/usr/include/c++/4.8/bits/stl_vector.h **** * of elements assigned. Old data may be lost. 522:/usr/include/c++/4.8/bits/stl_vector.h **** */ 523:/usr/include/c++/4.8/bits/stl_vector.h **** void 524:/usr/include/c++/4.8/bits/stl_vector.h **** assign(initializer_list __l) 525:/usr/include/c++/4.8/bits/stl_vector.h **** { this->assign(__l.begin(), __l.end()); } 526:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 527:/usr/include/c++/4.8/bits/stl_vector.h **** 528:/usr/include/c++/4.8/bits/stl_vector.h **** /// Get a copy of the memory allocation object. 529:/usr/include/c++/4.8/bits/stl_vector.h **** using _Base::get_allocator; 530:/usr/include/c++/4.8/bits/stl_vector.h **** 531:/usr/include/c++/4.8/bits/stl_vector.h **** // iterators 532:/usr/include/c++/4.8/bits/stl_vector.h **** /** 533:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read/write iterator that points to the first 534:/usr/include/c++/4.8/bits/stl_vector.h **** * element in the %vector. Iteration is done in ordinary 535:/usr/include/c++/4.8/bits/stl_vector.h **** * element order. 536:/usr/include/c++/4.8/bits/stl_vector.h **** */ 537:/usr/include/c++/4.8/bits/stl_vector.h **** iterator 538:/usr/include/c++/4.8/bits/stl_vector.h **** begin() _GLIBCXX_NOEXCEPT 539:/usr/include/c++/4.8/bits/stl_vector.h **** { return iterator(this->_M_impl._M_start); } 540:/usr/include/c++/4.8/bits/stl_vector.h **** 541:/usr/include/c++/4.8/bits/stl_vector.h **** /** 542:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read-only (constant) iterator that points to the 543:/usr/include/c++/4.8/bits/stl_vector.h **** * first element in the %vector. Iteration is done in ordinary 544:/usr/include/c++/4.8/bits/stl_vector.h **** * element order. 545:/usr/include/c++/4.8/bits/stl_vector.h **** */ 546:/usr/include/c++/4.8/bits/stl_vector.h **** const_iterator 547:/usr/include/c++/4.8/bits/stl_vector.h **** begin() const _GLIBCXX_NOEXCEPT 548:/usr/include/c++/4.8/bits/stl_vector.h **** { return const_iterator(this->_M_impl._M_start); } 549:/usr/include/c++/4.8/bits/stl_vector.h **** 550:/usr/include/c++/4.8/bits/stl_vector.h **** /** 551:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read/write iterator that points one past the last 552:/usr/include/c++/4.8/bits/stl_vector.h **** * element in the %vector. Iteration is done in ordinary 553:/usr/include/c++/4.8/bits/stl_vector.h **** * element order. 554:/usr/include/c++/4.8/bits/stl_vector.h **** */ 555:/usr/include/c++/4.8/bits/stl_vector.h **** iterator 556:/usr/include/c++/4.8/bits/stl_vector.h **** end() _GLIBCXX_NOEXCEPT 557:/usr/include/c++/4.8/bits/stl_vector.h **** { return iterator(this->_M_impl._M_finish); } 558:/usr/include/c++/4.8/bits/stl_vector.h **** 559:/usr/include/c++/4.8/bits/stl_vector.h **** /** 560:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read-only (constant) iterator that points one past 561:/usr/include/c++/4.8/bits/stl_vector.h **** * the last element in the %vector. Iteration is done in 562:/usr/include/c++/4.8/bits/stl_vector.h **** * ordinary element order. 563:/usr/include/c++/4.8/bits/stl_vector.h **** */ 564:/usr/include/c++/4.8/bits/stl_vector.h **** const_iterator 565:/usr/include/c++/4.8/bits/stl_vector.h **** end() const _GLIBCXX_NOEXCEPT GAS LISTING /tmp/ccrAK1jU.s page 20 566:/usr/include/c++/4.8/bits/stl_vector.h **** { return const_iterator(this->_M_impl._M_finish); } 567:/usr/include/c++/4.8/bits/stl_vector.h **** 568:/usr/include/c++/4.8/bits/stl_vector.h **** /** 569:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read/write reverse iterator that points to the 570:/usr/include/c++/4.8/bits/stl_vector.h **** * last element in the %vector. Iteration is done in reverse 571:/usr/include/c++/4.8/bits/stl_vector.h **** * element order. 572:/usr/include/c++/4.8/bits/stl_vector.h **** */ 573:/usr/include/c++/4.8/bits/stl_vector.h **** reverse_iterator 574:/usr/include/c++/4.8/bits/stl_vector.h **** rbegin() _GLIBCXX_NOEXCEPT 575:/usr/include/c++/4.8/bits/stl_vector.h **** { return reverse_iterator(end()); } 576:/usr/include/c++/4.8/bits/stl_vector.h **** 577:/usr/include/c++/4.8/bits/stl_vector.h **** /** 578:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read-only (constant) reverse iterator that points 579:/usr/include/c++/4.8/bits/stl_vector.h **** * to the last element in the %vector. Iteration is done in 580:/usr/include/c++/4.8/bits/stl_vector.h **** * reverse element order. 581:/usr/include/c++/4.8/bits/stl_vector.h **** */ 582:/usr/include/c++/4.8/bits/stl_vector.h **** const_reverse_iterator 583:/usr/include/c++/4.8/bits/stl_vector.h **** rbegin() const _GLIBCXX_NOEXCEPT 584:/usr/include/c++/4.8/bits/stl_vector.h **** { return const_reverse_iterator(end()); } 585:/usr/include/c++/4.8/bits/stl_vector.h **** 586:/usr/include/c++/4.8/bits/stl_vector.h **** /** 587:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read/write reverse iterator that points to one 588:/usr/include/c++/4.8/bits/stl_vector.h **** * before the first element in the %vector. Iteration is done 589:/usr/include/c++/4.8/bits/stl_vector.h **** * in reverse element order. 590:/usr/include/c++/4.8/bits/stl_vector.h **** */ 591:/usr/include/c++/4.8/bits/stl_vector.h **** reverse_iterator 592:/usr/include/c++/4.8/bits/stl_vector.h **** rend() _GLIBCXX_NOEXCEPT 593:/usr/include/c++/4.8/bits/stl_vector.h **** { return reverse_iterator(begin()); } 594:/usr/include/c++/4.8/bits/stl_vector.h **** 595:/usr/include/c++/4.8/bits/stl_vector.h **** /** 596:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read-only (constant) reverse iterator that points 597:/usr/include/c++/4.8/bits/stl_vector.h **** * to one before the first element in the %vector. Iteration 598:/usr/include/c++/4.8/bits/stl_vector.h **** * is done in reverse element order. 599:/usr/include/c++/4.8/bits/stl_vector.h **** */ 600:/usr/include/c++/4.8/bits/stl_vector.h **** const_reverse_iterator 601:/usr/include/c++/4.8/bits/stl_vector.h **** rend() const _GLIBCXX_NOEXCEPT 602:/usr/include/c++/4.8/bits/stl_vector.h **** { return const_reverse_iterator(begin()); } 603:/usr/include/c++/4.8/bits/stl_vector.h **** 604:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 605:/usr/include/c++/4.8/bits/stl_vector.h **** /** 606:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read-only (constant) iterator that points to the 607:/usr/include/c++/4.8/bits/stl_vector.h **** * first element in the %vector. Iteration is done in ordinary 608:/usr/include/c++/4.8/bits/stl_vector.h **** * element order. 609:/usr/include/c++/4.8/bits/stl_vector.h **** */ 610:/usr/include/c++/4.8/bits/stl_vector.h **** const_iterator 611:/usr/include/c++/4.8/bits/stl_vector.h **** cbegin() const noexcept 612:/usr/include/c++/4.8/bits/stl_vector.h **** { return const_iterator(this->_M_impl._M_start); } 613:/usr/include/c++/4.8/bits/stl_vector.h **** 614:/usr/include/c++/4.8/bits/stl_vector.h **** /** 615:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read-only (constant) iterator that points one past 616:/usr/include/c++/4.8/bits/stl_vector.h **** * the last element in the %vector. Iteration is done in 617:/usr/include/c++/4.8/bits/stl_vector.h **** * ordinary element order. 618:/usr/include/c++/4.8/bits/stl_vector.h **** */ 619:/usr/include/c++/4.8/bits/stl_vector.h **** const_iterator 620:/usr/include/c++/4.8/bits/stl_vector.h **** cend() const noexcept 621:/usr/include/c++/4.8/bits/stl_vector.h **** { return const_iterator(this->_M_impl._M_finish); } 622:/usr/include/c++/4.8/bits/stl_vector.h **** GAS LISTING /tmp/ccrAK1jU.s page 21 623:/usr/include/c++/4.8/bits/stl_vector.h **** /** 624:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read-only (constant) reverse iterator that points 625:/usr/include/c++/4.8/bits/stl_vector.h **** * to the last element in the %vector. Iteration is done in 626:/usr/include/c++/4.8/bits/stl_vector.h **** * reverse element order. 627:/usr/include/c++/4.8/bits/stl_vector.h **** */ 628:/usr/include/c++/4.8/bits/stl_vector.h **** const_reverse_iterator 629:/usr/include/c++/4.8/bits/stl_vector.h **** crbegin() const noexcept 630:/usr/include/c++/4.8/bits/stl_vector.h **** { return const_reverse_iterator(end()); } 631:/usr/include/c++/4.8/bits/stl_vector.h **** 632:/usr/include/c++/4.8/bits/stl_vector.h **** /** 633:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read-only (constant) reverse iterator that points 634:/usr/include/c++/4.8/bits/stl_vector.h **** * to one before the first element in the %vector. Iteration 635:/usr/include/c++/4.8/bits/stl_vector.h **** * is done in reverse element order. 636:/usr/include/c++/4.8/bits/stl_vector.h **** */ 637:/usr/include/c++/4.8/bits/stl_vector.h **** const_reverse_iterator 638:/usr/include/c++/4.8/bits/stl_vector.h **** crend() const noexcept 639:/usr/include/c++/4.8/bits/stl_vector.h **** { return const_reverse_iterator(begin()); } 640:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 641:/usr/include/c++/4.8/bits/stl_vector.h **** 642:/usr/include/c++/4.8/bits/stl_vector.h **** // [23.2.4.2] capacity 643:/usr/include/c++/4.8/bits/stl_vector.h **** /** Returns the number of elements in the %vector. */ 644:/usr/include/c++/4.8/bits/stl_vector.h **** size_type 645:/usr/include/c++/4.8/bits/stl_vector.h **** size() const _GLIBCXX_NOEXCEPT 195 .loc 5 645 0 196 .cfi_startproc 197 .LVL15: 646:/usr/include/c++/4.8/bits/stl_vector.h **** { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } 198 .loc 5 646 0 199 0000 488B4708 movq 8(%rdi), %rax 200 0004 482B07 subq (%rdi), %rax 201 0007 48C1F803 sarq $3, %rax 202 000b C3 ret 203 .cfi_endproc 204 .LFE1752: 206 .section .text._ZNKSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv,"axG",@progbits,_ZNKSt12_Vect 207 .align 2 208 .weak _ZNKSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv 210 _ZNKSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv: 211 .LFB1754: 117:/usr/include/c++/4.8/bits/stl_vector.h **** { return *static_cast(&this->_M_impl); } 212 .loc 5 117 0 213 .cfi_startproc 214 .LVL16: 215 0000 4889F8 movq %rdi, %rax 118:/usr/include/c++/4.8/bits/stl_vector.h **** 216 .loc 5 118 0 217 0003 C3 ret 218 .cfi_endproc 219 .LFE1754: 221 .section .text._ZNSt12_Vector_baseISsSaISsEE12_Vector_implC2ERKS0_,"axG",@progbits,_ZNSt12_Vector_ 222 .align 2 223 .weak _ZNSt12_Vector_baseISsSaISsEE12_Vector_implC2ERKS0_ 225 _ZNSt12_Vector_baseISsSaISsEE12_Vector_implC2ERKS0_: 226 .LFB1786: 90:/usr/include/c++/4.8/bits/stl_vector.h **** : _Tp_alloc_type(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0) 227 .loc 5 90 0 228 .cfi_startproc GAS LISTING /tmp/ccrAK1jU.s page 22 229 .LVL17: 230 .LBB3: 91:/usr/include/c++/4.8/bits/stl_vector.h **** { } 231 .loc 5 91 0 232 0000 48C70700 movq $0, (%rdi) 232 000000 233 0007 48C74708 movq $0, 8(%rdi) 233 00000000 234 000f 48C74710 movq $0, 16(%rdi) 234 00000000 235 0017 C3 ret 236 .LBE3: 237 .cfi_endproc 238 .LFE1786: 240 .weak _ZNSt12_Vector_baseISsSaISsEE12_Vector_implC1ERKS0_ 241 .set _ZNSt12_Vector_baseISsSaISsEE12_Vector_implC1ERKS0_,_ZNSt12_Vector_baseISsSaISsEE12_Vector_im 242 .section .text._ZNSt12_Vector_baseISsSaISsEEC2ERKS0_,"axG",@progbits,_ZNSt12_Vector_baseISsSaISsEE 243 .align 2 244 .weak _ZNSt12_Vector_baseISsSaISsEEC2ERKS0_ 246 _ZNSt12_Vector_baseISsSaISsEEC2ERKS0_: 247 .LFB1744: 127:/usr/include/c++/4.8/bits/stl_vector.h **** : _M_impl(__a) { } 248 .loc 5 127 0 249 .cfi_startproc 250 .LVL18: 251 0000 4883EC08 subq $8, %rsp 252 .cfi_def_cfa_offset 16 253 .LBB4: 128:/usr/include/c++/4.8/bits/stl_vector.h **** 254 .loc 5 128 0 255 0004 E8000000 call _ZNSt12_Vector_baseISsSaISsEE12_Vector_implC1ERKS0_ 255 00 256 .LVL19: 257 .LBE4: 258 0009 4883C408 addq $8, %rsp 259 .cfi_def_cfa_offset 8 260 000d C3 ret 261 .cfi_endproc 262 .LFE1744: 264 .weak _ZNSt12_Vector_baseISsSaISsEEC1ERKS0_ 265 .set _ZNSt12_Vector_baseISsSaISsEEC1ERKS0_,_ZNSt12_Vector_baseISsSaISsEEC2ERKS0_ 266 .section .text._ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEC2ERKS2_,"axG",@progbits,_ 267 .align 2 268 .weak _ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEC2ERKS2_ 270 _ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEC2ERKS2_: 271 .LFB1799: 272 .file 6 "/usr/include/c++/4.8/bits/stl_iterator.h" 1:/usr/include/c++/4.8/bits/stl_iterator.h **** // Iterators -*- C++ -*- 2:/usr/include/c++/4.8/bits/stl_iterator.h **** 3:/usr/include/c++/4.8/bits/stl_iterator.h **** // Copyright (C) 2001-2013 Free Software Foundation, Inc. 4:/usr/include/c++/4.8/bits/stl_iterator.h **** // 5:/usr/include/c++/4.8/bits/stl_iterator.h **** // This file is part of the GNU ISO C++ Library. This library is free 6:/usr/include/c++/4.8/bits/stl_iterator.h **** // software; you can redistribute it and/or modify it under the 7:/usr/include/c++/4.8/bits/stl_iterator.h **** // terms of the GNU General Public License as published by the 8:/usr/include/c++/4.8/bits/stl_iterator.h **** // Free Software Foundation; either version 3, or (at your option) 9:/usr/include/c++/4.8/bits/stl_iterator.h **** // any later version. 10:/usr/include/c++/4.8/bits/stl_iterator.h **** GAS LISTING /tmp/ccrAK1jU.s page 23 11:/usr/include/c++/4.8/bits/stl_iterator.h **** // This library is distributed in the hope that it will be useful, 12:/usr/include/c++/4.8/bits/stl_iterator.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of 13:/usr/include/c++/4.8/bits/stl_iterator.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14:/usr/include/c++/4.8/bits/stl_iterator.h **** // GNU General Public License for more details. 15:/usr/include/c++/4.8/bits/stl_iterator.h **** 16:/usr/include/c++/4.8/bits/stl_iterator.h **** // Under Section 7 of GPL version 3, you are granted additional 17:/usr/include/c++/4.8/bits/stl_iterator.h **** // permissions described in the GCC Runtime Library Exception, version 18:/usr/include/c++/4.8/bits/stl_iterator.h **** // 3.1, as published by the Free Software Foundation. 19:/usr/include/c++/4.8/bits/stl_iterator.h **** 20:/usr/include/c++/4.8/bits/stl_iterator.h **** // You should have received a copy of the GNU General Public License and 21:/usr/include/c++/4.8/bits/stl_iterator.h **** // a copy of the GCC Runtime Library Exception along with this program; 22:/usr/include/c++/4.8/bits/stl_iterator.h **** // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23:/usr/include/c++/4.8/bits/stl_iterator.h **** // . 24:/usr/include/c++/4.8/bits/stl_iterator.h **** 25:/usr/include/c++/4.8/bits/stl_iterator.h **** /* 26:/usr/include/c++/4.8/bits/stl_iterator.h **** * 27:/usr/include/c++/4.8/bits/stl_iterator.h **** * Copyright (c) 1994 28:/usr/include/c++/4.8/bits/stl_iterator.h **** * Hewlett-Packard Company 29:/usr/include/c++/4.8/bits/stl_iterator.h **** * 30:/usr/include/c++/4.8/bits/stl_iterator.h **** * Permission to use, copy, modify, distribute and sell this software 31:/usr/include/c++/4.8/bits/stl_iterator.h **** * and its documentation for any purpose is hereby granted without fee, 32:/usr/include/c++/4.8/bits/stl_iterator.h **** * provided that the above copyright notice appear in all copies and 33:/usr/include/c++/4.8/bits/stl_iterator.h **** * that both that copyright notice and this permission notice appear 34:/usr/include/c++/4.8/bits/stl_iterator.h **** * in supporting documentation. Hewlett-Packard Company makes no 35:/usr/include/c++/4.8/bits/stl_iterator.h **** * representations about the suitability of this software for any 36:/usr/include/c++/4.8/bits/stl_iterator.h **** * purpose. It is provided "as is" without express or implied warranty. 37:/usr/include/c++/4.8/bits/stl_iterator.h **** * 38:/usr/include/c++/4.8/bits/stl_iterator.h **** * 39:/usr/include/c++/4.8/bits/stl_iterator.h **** * Copyright (c) 1996-1998 40:/usr/include/c++/4.8/bits/stl_iterator.h **** * Silicon Graphics Computer Systems, Inc. 41:/usr/include/c++/4.8/bits/stl_iterator.h **** * 42:/usr/include/c++/4.8/bits/stl_iterator.h **** * Permission to use, copy, modify, distribute and sell this software 43:/usr/include/c++/4.8/bits/stl_iterator.h **** * and its documentation for any purpose is hereby granted without fee, 44:/usr/include/c++/4.8/bits/stl_iterator.h **** * provided that the above copyright notice appear in all copies and 45:/usr/include/c++/4.8/bits/stl_iterator.h **** * that both that copyright notice and this permission notice appear 46:/usr/include/c++/4.8/bits/stl_iterator.h **** * in supporting documentation. Silicon Graphics makes no 47:/usr/include/c++/4.8/bits/stl_iterator.h **** * representations about the suitability of this software for any 48:/usr/include/c++/4.8/bits/stl_iterator.h **** * purpose. It is provided "as is" without express or implied warranty. 49:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 50:/usr/include/c++/4.8/bits/stl_iterator.h **** 51:/usr/include/c++/4.8/bits/stl_iterator.h **** /** @file bits/stl_iterator.h 52:/usr/include/c++/4.8/bits/stl_iterator.h **** * This is an internal header file, included by other library headers. 53:/usr/include/c++/4.8/bits/stl_iterator.h **** * Do not attempt to use it directly. @headername{iterator} 54:/usr/include/c++/4.8/bits/stl_iterator.h **** * 55:/usr/include/c++/4.8/bits/stl_iterator.h **** * This file implements reverse_iterator, back_insert_iterator, 56:/usr/include/c++/4.8/bits/stl_iterator.h **** * front_insert_iterator, insert_iterator, __normal_iterator, and their 57:/usr/include/c++/4.8/bits/stl_iterator.h **** * supporting functions and overloaded operators. 58:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 59:/usr/include/c++/4.8/bits/stl_iterator.h **** 60:/usr/include/c++/4.8/bits/stl_iterator.h **** #ifndef _STL_ITERATOR_H 61:/usr/include/c++/4.8/bits/stl_iterator.h **** #define _STL_ITERATOR_H 1 62:/usr/include/c++/4.8/bits/stl_iterator.h **** 63:/usr/include/c++/4.8/bits/stl_iterator.h **** #include 64:/usr/include/c++/4.8/bits/stl_iterator.h **** #include 65:/usr/include/c++/4.8/bits/stl_iterator.h **** #include 66:/usr/include/c++/4.8/bits/stl_iterator.h **** 67:/usr/include/c++/4.8/bits/stl_iterator.h **** namespace std _GLIBCXX_VISIBILITY(default) GAS LISTING /tmp/ccrAK1jU.s page 24 68:/usr/include/c++/4.8/bits/stl_iterator.h **** { 69:/usr/include/c++/4.8/bits/stl_iterator.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION 70:/usr/include/c++/4.8/bits/stl_iterator.h **** 71:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 72:/usr/include/c++/4.8/bits/stl_iterator.h **** * @addtogroup iterators 73:/usr/include/c++/4.8/bits/stl_iterator.h **** * @{ 74:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 75:/usr/include/c++/4.8/bits/stl_iterator.h **** 76:/usr/include/c++/4.8/bits/stl_iterator.h **** // 24.4.1 Reverse iterators 77:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 78:/usr/include/c++/4.8/bits/stl_iterator.h **** * Bidirectional and random access iterators have corresponding reverse 79:/usr/include/c++/4.8/bits/stl_iterator.h **** * %iterator adaptors that iterate through the data structure in the 80:/usr/include/c++/4.8/bits/stl_iterator.h **** * opposite direction. They have the same signatures as the corresponding 81:/usr/include/c++/4.8/bits/stl_iterator.h **** * iterators. The fundamental relation between a reverse %iterator and its 82:/usr/include/c++/4.8/bits/stl_iterator.h **** * corresponding %iterator @c i is established by the identity: 83:/usr/include/c++/4.8/bits/stl_iterator.h **** * @code 84:/usr/include/c++/4.8/bits/stl_iterator.h **** * &*(reverse_iterator(i)) == &*(i - 1) 85:/usr/include/c++/4.8/bits/stl_iterator.h **** * @endcode 86:/usr/include/c++/4.8/bits/stl_iterator.h **** * 87:/usr/include/c++/4.8/bits/stl_iterator.h **** * This mapping is dictated by the fact that while there is always a 88:/usr/include/c++/4.8/bits/stl_iterator.h **** * pointer past the end of an array, there might not be a valid pointer 89:/usr/include/c++/4.8/bits/stl_iterator.h **** * before the beginning of an array. [24.4.1]/1,2 90:/usr/include/c++/4.8/bits/stl_iterator.h **** * 91:/usr/include/c++/4.8/bits/stl_iterator.h **** * Reverse iterators can be tricky and surprising at first. Their 92:/usr/include/c++/4.8/bits/stl_iterator.h **** * semantics make sense, however, and the trickiness is a side effect of 93:/usr/include/c++/4.8/bits/stl_iterator.h **** * the requirement that the iterators must be safe. 94:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 95:/usr/include/c++/4.8/bits/stl_iterator.h **** template 96:/usr/include/c++/4.8/bits/stl_iterator.h **** class reverse_iterator 97:/usr/include/c++/4.8/bits/stl_iterator.h **** : public iterator::iterator_category, 98:/usr/include/c++/4.8/bits/stl_iterator.h **** typename iterator_traits<_Iterator>::value_type, 99:/usr/include/c++/4.8/bits/stl_iterator.h **** typename iterator_traits<_Iterator>::difference_type, 100:/usr/include/c++/4.8/bits/stl_iterator.h **** typename iterator_traits<_Iterator>::pointer, 101:/usr/include/c++/4.8/bits/stl_iterator.h **** typename iterator_traits<_Iterator>::reference> 102:/usr/include/c++/4.8/bits/stl_iterator.h **** { 103:/usr/include/c++/4.8/bits/stl_iterator.h **** protected: 104:/usr/include/c++/4.8/bits/stl_iterator.h **** _Iterator current; 105:/usr/include/c++/4.8/bits/stl_iterator.h **** 106:/usr/include/c++/4.8/bits/stl_iterator.h **** typedef iterator_traits<_Iterator> __traits_type; 107:/usr/include/c++/4.8/bits/stl_iterator.h **** 108:/usr/include/c++/4.8/bits/stl_iterator.h **** public: 109:/usr/include/c++/4.8/bits/stl_iterator.h **** typedef _Iterator iterator_type; 110:/usr/include/c++/4.8/bits/stl_iterator.h **** typedef typename __traits_type::difference_type difference_type; 111:/usr/include/c++/4.8/bits/stl_iterator.h **** typedef typename __traits_type::pointer pointer; 112:/usr/include/c++/4.8/bits/stl_iterator.h **** typedef typename __traits_type::reference reference; 113:/usr/include/c++/4.8/bits/stl_iterator.h **** 114:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 115:/usr/include/c++/4.8/bits/stl_iterator.h **** * The default constructor value-initializes member @p current. 116:/usr/include/c++/4.8/bits/stl_iterator.h **** * If it is a pointer, that means it is zero-initialized. 117:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 118:/usr/include/c++/4.8/bits/stl_iterator.h **** // _GLIBCXX_RESOLVE_LIB_DEFECTS 119:/usr/include/c++/4.8/bits/stl_iterator.h **** // 235 No specification of default ctor for reverse_iterator 120:/usr/include/c++/4.8/bits/stl_iterator.h **** reverse_iterator() : current() { } 121:/usr/include/c++/4.8/bits/stl_iterator.h **** 122:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 123:/usr/include/c++/4.8/bits/stl_iterator.h **** * This %iterator will move in the opposite direction that @p x does. 124:/usr/include/c++/4.8/bits/stl_iterator.h **** */ GAS LISTING /tmp/ccrAK1jU.s page 25 125:/usr/include/c++/4.8/bits/stl_iterator.h **** explicit 126:/usr/include/c++/4.8/bits/stl_iterator.h **** reverse_iterator(iterator_type __x) : current(__x) { } 127:/usr/include/c++/4.8/bits/stl_iterator.h **** 128:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 129:/usr/include/c++/4.8/bits/stl_iterator.h **** * The copy constructor is normal. 130:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 131:/usr/include/c++/4.8/bits/stl_iterator.h **** reverse_iterator(const reverse_iterator& __x) 132:/usr/include/c++/4.8/bits/stl_iterator.h **** : current(__x.current) { } 133:/usr/include/c++/4.8/bits/stl_iterator.h **** 134:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 135:/usr/include/c++/4.8/bits/stl_iterator.h **** * A %reverse_iterator across other types can be copied if the 136:/usr/include/c++/4.8/bits/stl_iterator.h **** * underlying %iterator can be converted to the type of @c current. 137:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 138:/usr/include/c++/4.8/bits/stl_iterator.h **** template 139:/usr/include/c++/4.8/bits/stl_iterator.h **** reverse_iterator(const reverse_iterator<_Iter>& __x) 140:/usr/include/c++/4.8/bits/stl_iterator.h **** : current(__x.base()) { } 141:/usr/include/c++/4.8/bits/stl_iterator.h **** 142:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 143:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return @c current, the %iterator used for underlying work. 144:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 145:/usr/include/c++/4.8/bits/stl_iterator.h **** iterator_type 146:/usr/include/c++/4.8/bits/stl_iterator.h **** base() const 147:/usr/include/c++/4.8/bits/stl_iterator.h **** { return current; } 148:/usr/include/c++/4.8/bits/stl_iterator.h **** 149:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 150:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return A reference to the value at @c --current 151:/usr/include/c++/4.8/bits/stl_iterator.h **** * 152:/usr/include/c++/4.8/bits/stl_iterator.h **** * This requires that @c --current is dereferenceable. 153:/usr/include/c++/4.8/bits/stl_iterator.h **** * 154:/usr/include/c++/4.8/bits/stl_iterator.h **** * @warning This implementation requires that for an iterator of the 155:/usr/include/c++/4.8/bits/stl_iterator.h **** * underlying iterator type, @c x, a reference obtained by 156:/usr/include/c++/4.8/bits/stl_iterator.h **** * @c *x remains valid after @c x has been modified or 157:/usr/include/c++/4.8/bits/stl_iterator.h **** * destroyed. This is a bug: http://gcc.gnu.org/PR51823 158:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 159:/usr/include/c++/4.8/bits/stl_iterator.h **** reference 160:/usr/include/c++/4.8/bits/stl_iterator.h **** operator*() const 161:/usr/include/c++/4.8/bits/stl_iterator.h **** { 162:/usr/include/c++/4.8/bits/stl_iterator.h **** _Iterator __tmp = current; 163:/usr/include/c++/4.8/bits/stl_iterator.h **** return *--__tmp; 164:/usr/include/c++/4.8/bits/stl_iterator.h **** } 165:/usr/include/c++/4.8/bits/stl_iterator.h **** 166:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 167:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return A pointer to the value at @c --current 168:/usr/include/c++/4.8/bits/stl_iterator.h **** * 169:/usr/include/c++/4.8/bits/stl_iterator.h **** * This requires that @c --current is dereferenceable. 170:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 171:/usr/include/c++/4.8/bits/stl_iterator.h **** pointer 172:/usr/include/c++/4.8/bits/stl_iterator.h **** operator->() const 173:/usr/include/c++/4.8/bits/stl_iterator.h **** { return &(operator*()); } 174:/usr/include/c++/4.8/bits/stl_iterator.h **** 175:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 176:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return @c *this 177:/usr/include/c++/4.8/bits/stl_iterator.h **** * 178:/usr/include/c++/4.8/bits/stl_iterator.h **** * Decrements the underlying iterator. 179:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 180:/usr/include/c++/4.8/bits/stl_iterator.h **** reverse_iterator& 181:/usr/include/c++/4.8/bits/stl_iterator.h **** operator++() GAS LISTING /tmp/ccrAK1jU.s page 26 182:/usr/include/c++/4.8/bits/stl_iterator.h **** { 183:/usr/include/c++/4.8/bits/stl_iterator.h **** --current; 184:/usr/include/c++/4.8/bits/stl_iterator.h **** return *this; 185:/usr/include/c++/4.8/bits/stl_iterator.h **** } 186:/usr/include/c++/4.8/bits/stl_iterator.h **** 187:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 188:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return The original value of @c *this 189:/usr/include/c++/4.8/bits/stl_iterator.h **** * 190:/usr/include/c++/4.8/bits/stl_iterator.h **** * Decrements the underlying iterator. 191:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 192:/usr/include/c++/4.8/bits/stl_iterator.h **** reverse_iterator 193:/usr/include/c++/4.8/bits/stl_iterator.h **** operator++(int) 194:/usr/include/c++/4.8/bits/stl_iterator.h **** { 195:/usr/include/c++/4.8/bits/stl_iterator.h **** reverse_iterator __tmp = *this; 196:/usr/include/c++/4.8/bits/stl_iterator.h **** --current; 197:/usr/include/c++/4.8/bits/stl_iterator.h **** return __tmp; 198:/usr/include/c++/4.8/bits/stl_iterator.h **** } 199:/usr/include/c++/4.8/bits/stl_iterator.h **** 200:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 201:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return @c *this 202:/usr/include/c++/4.8/bits/stl_iterator.h **** * 203:/usr/include/c++/4.8/bits/stl_iterator.h **** * Increments the underlying iterator. 204:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 205:/usr/include/c++/4.8/bits/stl_iterator.h **** reverse_iterator& 206:/usr/include/c++/4.8/bits/stl_iterator.h **** operator--() 207:/usr/include/c++/4.8/bits/stl_iterator.h **** { 208:/usr/include/c++/4.8/bits/stl_iterator.h **** ++current; 209:/usr/include/c++/4.8/bits/stl_iterator.h **** return *this; 210:/usr/include/c++/4.8/bits/stl_iterator.h **** } 211:/usr/include/c++/4.8/bits/stl_iterator.h **** 212:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 213:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return A reverse_iterator with the previous value of @c *this 214:/usr/include/c++/4.8/bits/stl_iterator.h **** * 215:/usr/include/c++/4.8/bits/stl_iterator.h **** * Increments the underlying iterator. 216:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 217:/usr/include/c++/4.8/bits/stl_iterator.h **** reverse_iterator 218:/usr/include/c++/4.8/bits/stl_iterator.h **** operator--(int) 219:/usr/include/c++/4.8/bits/stl_iterator.h **** { 220:/usr/include/c++/4.8/bits/stl_iterator.h **** reverse_iterator __tmp = *this; 221:/usr/include/c++/4.8/bits/stl_iterator.h **** ++current; 222:/usr/include/c++/4.8/bits/stl_iterator.h **** return __tmp; 223:/usr/include/c++/4.8/bits/stl_iterator.h **** } 224:/usr/include/c++/4.8/bits/stl_iterator.h **** 225:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 226:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return A reverse_iterator that refers to @c current - @a __n 227:/usr/include/c++/4.8/bits/stl_iterator.h **** * 228:/usr/include/c++/4.8/bits/stl_iterator.h **** * The underlying iterator must be a Random Access Iterator. 229:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 230:/usr/include/c++/4.8/bits/stl_iterator.h **** reverse_iterator 231:/usr/include/c++/4.8/bits/stl_iterator.h **** operator+(difference_type __n) const 232:/usr/include/c++/4.8/bits/stl_iterator.h **** { return reverse_iterator(current - __n); } 233:/usr/include/c++/4.8/bits/stl_iterator.h **** 234:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 235:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return *this 236:/usr/include/c++/4.8/bits/stl_iterator.h **** * 237:/usr/include/c++/4.8/bits/stl_iterator.h **** * Moves the underlying iterator backwards @a __n steps. 238:/usr/include/c++/4.8/bits/stl_iterator.h **** * The underlying iterator must be a Random Access Iterator. GAS LISTING /tmp/ccrAK1jU.s page 27 239:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 240:/usr/include/c++/4.8/bits/stl_iterator.h **** reverse_iterator& 241:/usr/include/c++/4.8/bits/stl_iterator.h **** operator+=(difference_type __n) 242:/usr/include/c++/4.8/bits/stl_iterator.h **** { 243:/usr/include/c++/4.8/bits/stl_iterator.h **** current -= __n; 244:/usr/include/c++/4.8/bits/stl_iterator.h **** return *this; 245:/usr/include/c++/4.8/bits/stl_iterator.h **** } 246:/usr/include/c++/4.8/bits/stl_iterator.h **** 247:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 248:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return A reverse_iterator that refers to @c current - @a __n 249:/usr/include/c++/4.8/bits/stl_iterator.h **** * 250:/usr/include/c++/4.8/bits/stl_iterator.h **** * The underlying iterator must be a Random Access Iterator. 251:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 252:/usr/include/c++/4.8/bits/stl_iterator.h **** reverse_iterator 253:/usr/include/c++/4.8/bits/stl_iterator.h **** operator-(difference_type __n) const 254:/usr/include/c++/4.8/bits/stl_iterator.h **** { return reverse_iterator(current + __n); } 255:/usr/include/c++/4.8/bits/stl_iterator.h **** 256:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 257:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return *this 258:/usr/include/c++/4.8/bits/stl_iterator.h **** * 259:/usr/include/c++/4.8/bits/stl_iterator.h **** * Moves the underlying iterator forwards @a __n steps. 260:/usr/include/c++/4.8/bits/stl_iterator.h **** * The underlying iterator must be a Random Access Iterator. 261:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 262:/usr/include/c++/4.8/bits/stl_iterator.h **** reverse_iterator& 263:/usr/include/c++/4.8/bits/stl_iterator.h **** operator-=(difference_type __n) 264:/usr/include/c++/4.8/bits/stl_iterator.h **** { 265:/usr/include/c++/4.8/bits/stl_iterator.h **** current += __n; 266:/usr/include/c++/4.8/bits/stl_iterator.h **** return *this; 267:/usr/include/c++/4.8/bits/stl_iterator.h **** } 268:/usr/include/c++/4.8/bits/stl_iterator.h **** 269:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 270:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return The value at @c current - @a __n - 1 271:/usr/include/c++/4.8/bits/stl_iterator.h **** * 272:/usr/include/c++/4.8/bits/stl_iterator.h **** * The underlying iterator must be a Random Access Iterator. 273:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 274:/usr/include/c++/4.8/bits/stl_iterator.h **** reference 275:/usr/include/c++/4.8/bits/stl_iterator.h **** operator[](difference_type __n) const 276:/usr/include/c++/4.8/bits/stl_iterator.h **** { return *(*this + __n); } 277:/usr/include/c++/4.8/bits/stl_iterator.h **** }; 278:/usr/include/c++/4.8/bits/stl_iterator.h **** 279:/usr/include/c++/4.8/bits/stl_iterator.h **** //@{ 280:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 281:/usr/include/c++/4.8/bits/stl_iterator.h **** * @param __x A %reverse_iterator. 282:/usr/include/c++/4.8/bits/stl_iterator.h **** * @param __y A %reverse_iterator. 283:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return A simple bool. 284:/usr/include/c++/4.8/bits/stl_iterator.h **** * 285:/usr/include/c++/4.8/bits/stl_iterator.h **** * Reverse iterators forward many operations to their underlying base() 286:/usr/include/c++/4.8/bits/stl_iterator.h **** * iterators. Others are implemented in terms of one another. 287:/usr/include/c++/4.8/bits/stl_iterator.h **** * 288:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 289:/usr/include/c++/4.8/bits/stl_iterator.h **** template 290:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool 291:/usr/include/c++/4.8/bits/stl_iterator.h **** operator==(const reverse_iterator<_Iterator>& __x, 292:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_Iterator>& __y) 293:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __x.base() == __y.base(); } 294:/usr/include/c++/4.8/bits/stl_iterator.h **** 295:/usr/include/c++/4.8/bits/stl_iterator.h **** template GAS LISTING /tmp/ccrAK1jU.s page 28 296:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool 297:/usr/include/c++/4.8/bits/stl_iterator.h **** operator<(const reverse_iterator<_Iterator>& __x, 298:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_Iterator>& __y) 299:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __y.base() < __x.base(); } 300:/usr/include/c++/4.8/bits/stl_iterator.h **** 301:/usr/include/c++/4.8/bits/stl_iterator.h **** template 302:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool 303:/usr/include/c++/4.8/bits/stl_iterator.h **** operator!=(const reverse_iterator<_Iterator>& __x, 304:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_Iterator>& __y) 305:/usr/include/c++/4.8/bits/stl_iterator.h **** { return !(__x == __y); } 306:/usr/include/c++/4.8/bits/stl_iterator.h **** 307:/usr/include/c++/4.8/bits/stl_iterator.h **** template 308:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool 309:/usr/include/c++/4.8/bits/stl_iterator.h **** operator>(const reverse_iterator<_Iterator>& __x, 310:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_Iterator>& __y) 311:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __y < __x; } 312:/usr/include/c++/4.8/bits/stl_iterator.h **** 313:/usr/include/c++/4.8/bits/stl_iterator.h **** template 314:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool 315:/usr/include/c++/4.8/bits/stl_iterator.h **** operator<=(const reverse_iterator<_Iterator>& __x, 316:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_Iterator>& __y) 317:/usr/include/c++/4.8/bits/stl_iterator.h **** { return !(__y < __x); } 318:/usr/include/c++/4.8/bits/stl_iterator.h **** 319:/usr/include/c++/4.8/bits/stl_iterator.h **** template 320:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool 321:/usr/include/c++/4.8/bits/stl_iterator.h **** operator>=(const reverse_iterator<_Iterator>& __x, 322:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_Iterator>& __y) 323:/usr/include/c++/4.8/bits/stl_iterator.h **** { return !(__x < __y); } 324:/usr/include/c++/4.8/bits/stl_iterator.h **** 325:/usr/include/c++/4.8/bits/stl_iterator.h **** template 326:/usr/include/c++/4.8/bits/stl_iterator.h **** inline typename reverse_iterator<_Iterator>::difference_type 327:/usr/include/c++/4.8/bits/stl_iterator.h **** operator-(const reverse_iterator<_Iterator>& __x, 328:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_Iterator>& __y) 329:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __y.base() - __x.base(); } 330:/usr/include/c++/4.8/bits/stl_iterator.h **** 331:/usr/include/c++/4.8/bits/stl_iterator.h **** template 332:/usr/include/c++/4.8/bits/stl_iterator.h **** inline reverse_iterator<_Iterator> 333:/usr/include/c++/4.8/bits/stl_iterator.h **** operator+(typename reverse_iterator<_Iterator>::difference_type __n, 334:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_Iterator>& __x) 335:/usr/include/c++/4.8/bits/stl_iterator.h **** { return reverse_iterator<_Iterator>(__x.base() - __n); } 336:/usr/include/c++/4.8/bits/stl_iterator.h **** 337:/usr/include/c++/4.8/bits/stl_iterator.h **** // _GLIBCXX_RESOLVE_LIB_DEFECTS 338:/usr/include/c++/4.8/bits/stl_iterator.h **** // DR 280. Comparison of reverse_iterator to const reverse_iterator. 339:/usr/include/c++/4.8/bits/stl_iterator.h **** template 340:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool 341:/usr/include/c++/4.8/bits/stl_iterator.h **** operator==(const reverse_iterator<_IteratorL>& __x, 342:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_IteratorR>& __y) 343:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __x.base() == __y.base(); } 344:/usr/include/c++/4.8/bits/stl_iterator.h **** 345:/usr/include/c++/4.8/bits/stl_iterator.h **** template 346:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool 347:/usr/include/c++/4.8/bits/stl_iterator.h **** operator<(const reverse_iterator<_IteratorL>& __x, 348:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_IteratorR>& __y) 349:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __y.base() < __x.base(); } 350:/usr/include/c++/4.8/bits/stl_iterator.h **** 351:/usr/include/c++/4.8/bits/stl_iterator.h **** template 352:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool GAS LISTING /tmp/ccrAK1jU.s page 29 353:/usr/include/c++/4.8/bits/stl_iterator.h **** operator!=(const reverse_iterator<_IteratorL>& __x, 354:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_IteratorR>& __y) 355:/usr/include/c++/4.8/bits/stl_iterator.h **** { return !(__x == __y); } 356:/usr/include/c++/4.8/bits/stl_iterator.h **** 357:/usr/include/c++/4.8/bits/stl_iterator.h **** template 358:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool 359:/usr/include/c++/4.8/bits/stl_iterator.h **** operator>(const reverse_iterator<_IteratorL>& __x, 360:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_IteratorR>& __y) 361:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __y < __x; } 362:/usr/include/c++/4.8/bits/stl_iterator.h **** 363:/usr/include/c++/4.8/bits/stl_iterator.h **** template 364:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool 365:/usr/include/c++/4.8/bits/stl_iterator.h **** operator<=(const reverse_iterator<_IteratorL>& __x, 366:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_IteratorR>& __y) 367:/usr/include/c++/4.8/bits/stl_iterator.h **** { return !(__y < __x); } 368:/usr/include/c++/4.8/bits/stl_iterator.h **** 369:/usr/include/c++/4.8/bits/stl_iterator.h **** template 370:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool 371:/usr/include/c++/4.8/bits/stl_iterator.h **** operator>=(const reverse_iterator<_IteratorL>& __x, 372:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_IteratorR>& __y) 373:/usr/include/c++/4.8/bits/stl_iterator.h **** { return !(__x < __y); } 374:/usr/include/c++/4.8/bits/stl_iterator.h **** 375:/usr/include/c++/4.8/bits/stl_iterator.h **** template 376:/usr/include/c++/4.8/bits/stl_iterator.h **** #if __cplusplus >= 201103L 377:/usr/include/c++/4.8/bits/stl_iterator.h **** // DR 685. 378:/usr/include/c++/4.8/bits/stl_iterator.h **** inline auto 379:/usr/include/c++/4.8/bits/stl_iterator.h **** operator-(const reverse_iterator<_IteratorL>& __x, 380:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_IteratorR>& __y) 381:/usr/include/c++/4.8/bits/stl_iterator.h **** -> decltype(__y.base() - __x.base()) 382:/usr/include/c++/4.8/bits/stl_iterator.h **** #else 383:/usr/include/c++/4.8/bits/stl_iterator.h **** inline typename reverse_iterator<_IteratorL>::difference_type 384:/usr/include/c++/4.8/bits/stl_iterator.h **** operator-(const reverse_iterator<_IteratorL>& __x, 385:/usr/include/c++/4.8/bits/stl_iterator.h **** const reverse_iterator<_IteratorR>& __y) 386:/usr/include/c++/4.8/bits/stl_iterator.h **** #endif 387:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __y.base() - __x.base(); } 388:/usr/include/c++/4.8/bits/stl_iterator.h **** //@} 389:/usr/include/c++/4.8/bits/stl_iterator.h **** 390:/usr/include/c++/4.8/bits/stl_iterator.h **** // 24.4.2.2.1 back_insert_iterator 391:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 392:/usr/include/c++/4.8/bits/stl_iterator.h **** * @brief Turns assignment into insertion. 393:/usr/include/c++/4.8/bits/stl_iterator.h **** * 394:/usr/include/c++/4.8/bits/stl_iterator.h **** * These are output iterators, constructed from a container-of-T. 395:/usr/include/c++/4.8/bits/stl_iterator.h **** * Assigning a T to the iterator appends it to the container using 396:/usr/include/c++/4.8/bits/stl_iterator.h **** * push_back. 397:/usr/include/c++/4.8/bits/stl_iterator.h **** * 398:/usr/include/c++/4.8/bits/stl_iterator.h **** * Tip: Using the back_inserter function to create these iterators can 399:/usr/include/c++/4.8/bits/stl_iterator.h **** * save typing. 400:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 401:/usr/include/c++/4.8/bits/stl_iterator.h **** template 402:/usr/include/c++/4.8/bits/stl_iterator.h **** class back_insert_iterator 403:/usr/include/c++/4.8/bits/stl_iterator.h **** : public iterator 404:/usr/include/c++/4.8/bits/stl_iterator.h **** { 405:/usr/include/c++/4.8/bits/stl_iterator.h **** protected: 406:/usr/include/c++/4.8/bits/stl_iterator.h **** _Container* container; 407:/usr/include/c++/4.8/bits/stl_iterator.h **** 408:/usr/include/c++/4.8/bits/stl_iterator.h **** public: 409:/usr/include/c++/4.8/bits/stl_iterator.h **** /// A nested typedef for the type of whatever container you used. GAS LISTING /tmp/ccrAK1jU.s page 30 410:/usr/include/c++/4.8/bits/stl_iterator.h **** typedef _Container container_type; 411:/usr/include/c++/4.8/bits/stl_iterator.h **** 412:/usr/include/c++/4.8/bits/stl_iterator.h **** /// The only way to create this %iterator is with a container. 413:/usr/include/c++/4.8/bits/stl_iterator.h **** explicit 414:/usr/include/c++/4.8/bits/stl_iterator.h **** back_insert_iterator(_Container& __x) : container(&__x) { } 415:/usr/include/c++/4.8/bits/stl_iterator.h **** 416:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 417:/usr/include/c++/4.8/bits/stl_iterator.h **** * @param __value An instance of whatever type 418:/usr/include/c++/4.8/bits/stl_iterator.h **** * container_type::const_reference is; presumably a 419:/usr/include/c++/4.8/bits/stl_iterator.h **** * reference-to-const T for container. 420:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return This %iterator, for chained operations. 421:/usr/include/c++/4.8/bits/stl_iterator.h **** * 422:/usr/include/c++/4.8/bits/stl_iterator.h **** * This kind of %iterator doesn't really have a @a position in the 423:/usr/include/c++/4.8/bits/stl_iterator.h **** * container (you can think of the position as being permanently at 424:/usr/include/c++/4.8/bits/stl_iterator.h **** * the end, if you like). Assigning a value to the %iterator will 425:/usr/include/c++/4.8/bits/stl_iterator.h **** * always append the value to the end of the container. 426:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 427:/usr/include/c++/4.8/bits/stl_iterator.h **** #if __cplusplus < 201103L 428:/usr/include/c++/4.8/bits/stl_iterator.h **** back_insert_iterator& 429:/usr/include/c++/4.8/bits/stl_iterator.h **** operator=(typename _Container::const_reference __value) 430:/usr/include/c++/4.8/bits/stl_iterator.h **** { 431:/usr/include/c++/4.8/bits/stl_iterator.h **** container->push_back(__value); 432:/usr/include/c++/4.8/bits/stl_iterator.h **** return *this; 433:/usr/include/c++/4.8/bits/stl_iterator.h **** } 434:/usr/include/c++/4.8/bits/stl_iterator.h **** #else 435:/usr/include/c++/4.8/bits/stl_iterator.h **** back_insert_iterator& 436:/usr/include/c++/4.8/bits/stl_iterator.h **** operator=(const typename _Container::value_type& __value) 437:/usr/include/c++/4.8/bits/stl_iterator.h **** { 438:/usr/include/c++/4.8/bits/stl_iterator.h **** container->push_back(__value); 439:/usr/include/c++/4.8/bits/stl_iterator.h **** return *this; 440:/usr/include/c++/4.8/bits/stl_iterator.h **** } 441:/usr/include/c++/4.8/bits/stl_iterator.h **** 442:/usr/include/c++/4.8/bits/stl_iterator.h **** back_insert_iterator& 443:/usr/include/c++/4.8/bits/stl_iterator.h **** operator=(typename _Container::value_type&& __value) 444:/usr/include/c++/4.8/bits/stl_iterator.h **** { 445:/usr/include/c++/4.8/bits/stl_iterator.h **** container->push_back(std::move(__value)); 446:/usr/include/c++/4.8/bits/stl_iterator.h **** return *this; 447:/usr/include/c++/4.8/bits/stl_iterator.h **** } 448:/usr/include/c++/4.8/bits/stl_iterator.h **** #endif 449:/usr/include/c++/4.8/bits/stl_iterator.h **** 450:/usr/include/c++/4.8/bits/stl_iterator.h **** /// Simply returns *this. 451:/usr/include/c++/4.8/bits/stl_iterator.h **** back_insert_iterator& 452:/usr/include/c++/4.8/bits/stl_iterator.h **** operator*() 453:/usr/include/c++/4.8/bits/stl_iterator.h **** { return *this; } 454:/usr/include/c++/4.8/bits/stl_iterator.h **** 455:/usr/include/c++/4.8/bits/stl_iterator.h **** /// Simply returns *this. (This %iterator does not @a move.) 456:/usr/include/c++/4.8/bits/stl_iterator.h **** back_insert_iterator& 457:/usr/include/c++/4.8/bits/stl_iterator.h **** operator++() 458:/usr/include/c++/4.8/bits/stl_iterator.h **** { return *this; } 459:/usr/include/c++/4.8/bits/stl_iterator.h **** 460:/usr/include/c++/4.8/bits/stl_iterator.h **** /// Simply returns *this. (This %iterator does not @a move.) 461:/usr/include/c++/4.8/bits/stl_iterator.h **** back_insert_iterator 462:/usr/include/c++/4.8/bits/stl_iterator.h **** operator++(int) 463:/usr/include/c++/4.8/bits/stl_iterator.h **** { return *this; } 464:/usr/include/c++/4.8/bits/stl_iterator.h **** }; 465:/usr/include/c++/4.8/bits/stl_iterator.h **** 466:/usr/include/c++/4.8/bits/stl_iterator.h **** /** GAS LISTING /tmp/ccrAK1jU.s page 31 467:/usr/include/c++/4.8/bits/stl_iterator.h **** * @param __x A container of arbitrary type. 468:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return An instance of back_insert_iterator working on @p __x. 469:/usr/include/c++/4.8/bits/stl_iterator.h **** * 470:/usr/include/c++/4.8/bits/stl_iterator.h **** * This wrapper function helps in creating back_insert_iterator instances. 471:/usr/include/c++/4.8/bits/stl_iterator.h **** * Typing the name of the %iterator requires knowing the precise full 472:/usr/include/c++/4.8/bits/stl_iterator.h **** * type of the container, which can be tedious and impedes generic 473:/usr/include/c++/4.8/bits/stl_iterator.h **** * programming. Using this function lets you take advantage of automatic 474:/usr/include/c++/4.8/bits/stl_iterator.h **** * template parameter deduction, making the compiler match the correct 475:/usr/include/c++/4.8/bits/stl_iterator.h **** * types for you. 476:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 477:/usr/include/c++/4.8/bits/stl_iterator.h **** template 478:/usr/include/c++/4.8/bits/stl_iterator.h **** inline back_insert_iterator<_Container> 479:/usr/include/c++/4.8/bits/stl_iterator.h **** back_inserter(_Container& __x) 480:/usr/include/c++/4.8/bits/stl_iterator.h **** { return back_insert_iterator<_Container>(__x); } 481:/usr/include/c++/4.8/bits/stl_iterator.h **** 482:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 483:/usr/include/c++/4.8/bits/stl_iterator.h **** * @brief Turns assignment into insertion. 484:/usr/include/c++/4.8/bits/stl_iterator.h **** * 485:/usr/include/c++/4.8/bits/stl_iterator.h **** * These are output iterators, constructed from a container-of-T. 486:/usr/include/c++/4.8/bits/stl_iterator.h **** * Assigning a T to the iterator prepends it to the container using 487:/usr/include/c++/4.8/bits/stl_iterator.h **** * push_front. 488:/usr/include/c++/4.8/bits/stl_iterator.h **** * 489:/usr/include/c++/4.8/bits/stl_iterator.h **** * Tip: Using the front_inserter function to create these iterators can 490:/usr/include/c++/4.8/bits/stl_iterator.h **** * save typing. 491:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 492:/usr/include/c++/4.8/bits/stl_iterator.h **** template 493:/usr/include/c++/4.8/bits/stl_iterator.h **** class front_insert_iterator 494:/usr/include/c++/4.8/bits/stl_iterator.h **** : public iterator 495:/usr/include/c++/4.8/bits/stl_iterator.h **** { 496:/usr/include/c++/4.8/bits/stl_iterator.h **** protected: 497:/usr/include/c++/4.8/bits/stl_iterator.h **** _Container* container; 498:/usr/include/c++/4.8/bits/stl_iterator.h **** 499:/usr/include/c++/4.8/bits/stl_iterator.h **** public: 500:/usr/include/c++/4.8/bits/stl_iterator.h **** /// A nested typedef for the type of whatever container you used. 501:/usr/include/c++/4.8/bits/stl_iterator.h **** typedef _Container container_type; 502:/usr/include/c++/4.8/bits/stl_iterator.h **** 503:/usr/include/c++/4.8/bits/stl_iterator.h **** /// The only way to create this %iterator is with a container. 504:/usr/include/c++/4.8/bits/stl_iterator.h **** explicit front_insert_iterator(_Container& __x) : container(&__x) { } 505:/usr/include/c++/4.8/bits/stl_iterator.h **** 506:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 507:/usr/include/c++/4.8/bits/stl_iterator.h **** * @param __value An instance of whatever type 508:/usr/include/c++/4.8/bits/stl_iterator.h **** * container_type::const_reference is; presumably a 509:/usr/include/c++/4.8/bits/stl_iterator.h **** * reference-to-const T for container. 510:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return This %iterator, for chained operations. 511:/usr/include/c++/4.8/bits/stl_iterator.h **** * 512:/usr/include/c++/4.8/bits/stl_iterator.h **** * This kind of %iterator doesn't really have a @a position in the 513:/usr/include/c++/4.8/bits/stl_iterator.h **** * container (you can think of the position as being permanently at 514:/usr/include/c++/4.8/bits/stl_iterator.h **** * the front, if you like). Assigning a value to the %iterator will 515:/usr/include/c++/4.8/bits/stl_iterator.h **** * always prepend the value to the front of the container. 516:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 517:/usr/include/c++/4.8/bits/stl_iterator.h **** #if __cplusplus < 201103L 518:/usr/include/c++/4.8/bits/stl_iterator.h **** front_insert_iterator& 519:/usr/include/c++/4.8/bits/stl_iterator.h **** operator=(typename _Container::const_reference __value) 520:/usr/include/c++/4.8/bits/stl_iterator.h **** { 521:/usr/include/c++/4.8/bits/stl_iterator.h **** container->push_front(__value); 522:/usr/include/c++/4.8/bits/stl_iterator.h **** return *this; 523:/usr/include/c++/4.8/bits/stl_iterator.h **** } GAS LISTING /tmp/ccrAK1jU.s page 32 524:/usr/include/c++/4.8/bits/stl_iterator.h **** #else 525:/usr/include/c++/4.8/bits/stl_iterator.h **** front_insert_iterator& 526:/usr/include/c++/4.8/bits/stl_iterator.h **** operator=(const typename _Container::value_type& __value) 527:/usr/include/c++/4.8/bits/stl_iterator.h **** { 528:/usr/include/c++/4.8/bits/stl_iterator.h **** container->push_front(__value); 529:/usr/include/c++/4.8/bits/stl_iterator.h **** return *this; 530:/usr/include/c++/4.8/bits/stl_iterator.h **** } 531:/usr/include/c++/4.8/bits/stl_iterator.h **** 532:/usr/include/c++/4.8/bits/stl_iterator.h **** front_insert_iterator& 533:/usr/include/c++/4.8/bits/stl_iterator.h **** operator=(typename _Container::value_type&& __value) 534:/usr/include/c++/4.8/bits/stl_iterator.h **** { 535:/usr/include/c++/4.8/bits/stl_iterator.h **** container->push_front(std::move(__value)); 536:/usr/include/c++/4.8/bits/stl_iterator.h **** return *this; 537:/usr/include/c++/4.8/bits/stl_iterator.h **** } 538:/usr/include/c++/4.8/bits/stl_iterator.h **** #endif 539:/usr/include/c++/4.8/bits/stl_iterator.h **** 540:/usr/include/c++/4.8/bits/stl_iterator.h **** /// Simply returns *this. 541:/usr/include/c++/4.8/bits/stl_iterator.h **** front_insert_iterator& 542:/usr/include/c++/4.8/bits/stl_iterator.h **** operator*() 543:/usr/include/c++/4.8/bits/stl_iterator.h **** { return *this; } 544:/usr/include/c++/4.8/bits/stl_iterator.h **** 545:/usr/include/c++/4.8/bits/stl_iterator.h **** /// Simply returns *this. (This %iterator does not @a move.) 546:/usr/include/c++/4.8/bits/stl_iterator.h **** front_insert_iterator& 547:/usr/include/c++/4.8/bits/stl_iterator.h **** operator++() 548:/usr/include/c++/4.8/bits/stl_iterator.h **** { return *this; } 549:/usr/include/c++/4.8/bits/stl_iterator.h **** 550:/usr/include/c++/4.8/bits/stl_iterator.h **** /// Simply returns *this. (This %iterator does not @a move.) 551:/usr/include/c++/4.8/bits/stl_iterator.h **** front_insert_iterator 552:/usr/include/c++/4.8/bits/stl_iterator.h **** operator++(int) 553:/usr/include/c++/4.8/bits/stl_iterator.h **** { return *this; } 554:/usr/include/c++/4.8/bits/stl_iterator.h **** }; 555:/usr/include/c++/4.8/bits/stl_iterator.h **** 556:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 557:/usr/include/c++/4.8/bits/stl_iterator.h **** * @param __x A container of arbitrary type. 558:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return An instance of front_insert_iterator working on @p x. 559:/usr/include/c++/4.8/bits/stl_iterator.h **** * 560:/usr/include/c++/4.8/bits/stl_iterator.h **** * This wrapper function helps in creating front_insert_iterator instances. 561:/usr/include/c++/4.8/bits/stl_iterator.h **** * Typing the name of the %iterator requires knowing the precise full 562:/usr/include/c++/4.8/bits/stl_iterator.h **** * type of the container, which can be tedious and impedes generic 563:/usr/include/c++/4.8/bits/stl_iterator.h **** * programming. Using this function lets you take advantage of automatic 564:/usr/include/c++/4.8/bits/stl_iterator.h **** * template parameter deduction, making the compiler match the correct 565:/usr/include/c++/4.8/bits/stl_iterator.h **** * types for you. 566:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 567:/usr/include/c++/4.8/bits/stl_iterator.h **** template 568:/usr/include/c++/4.8/bits/stl_iterator.h **** inline front_insert_iterator<_Container> 569:/usr/include/c++/4.8/bits/stl_iterator.h **** front_inserter(_Container& __x) 570:/usr/include/c++/4.8/bits/stl_iterator.h **** { return front_insert_iterator<_Container>(__x); } 571:/usr/include/c++/4.8/bits/stl_iterator.h **** 572:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 573:/usr/include/c++/4.8/bits/stl_iterator.h **** * @brief Turns assignment into insertion. 574:/usr/include/c++/4.8/bits/stl_iterator.h **** * 575:/usr/include/c++/4.8/bits/stl_iterator.h **** * These are output iterators, constructed from a container-of-T. 576:/usr/include/c++/4.8/bits/stl_iterator.h **** * Assigning a T to the iterator inserts it in the container at the 577:/usr/include/c++/4.8/bits/stl_iterator.h **** * %iterator's position, rather than overwriting the value at that 578:/usr/include/c++/4.8/bits/stl_iterator.h **** * position. 579:/usr/include/c++/4.8/bits/stl_iterator.h **** * 580:/usr/include/c++/4.8/bits/stl_iterator.h **** * (Sequences will actually insert a @e copy of the value before the GAS LISTING /tmp/ccrAK1jU.s page 33 581:/usr/include/c++/4.8/bits/stl_iterator.h **** * %iterator's position.) 582:/usr/include/c++/4.8/bits/stl_iterator.h **** * 583:/usr/include/c++/4.8/bits/stl_iterator.h **** * Tip: Using the inserter function to create these iterators can 584:/usr/include/c++/4.8/bits/stl_iterator.h **** * save typing. 585:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 586:/usr/include/c++/4.8/bits/stl_iterator.h **** template 587:/usr/include/c++/4.8/bits/stl_iterator.h **** class insert_iterator 588:/usr/include/c++/4.8/bits/stl_iterator.h **** : public iterator 589:/usr/include/c++/4.8/bits/stl_iterator.h **** { 590:/usr/include/c++/4.8/bits/stl_iterator.h **** protected: 591:/usr/include/c++/4.8/bits/stl_iterator.h **** _Container* container; 592:/usr/include/c++/4.8/bits/stl_iterator.h **** typename _Container::iterator iter; 593:/usr/include/c++/4.8/bits/stl_iterator.h **** 594:/usr/include/c++/4.8/bits/stl_iterator.h **** public: 595:/usr/include/c++/4.8/bits/stl_iterator.h **** /// A nested typedef for the type of whatever container you used. 596:/usr/include/c++/4.8/bits/stl_iterator.h **** typedef _Container container_type; 597:/usr/include/c++/4.8/bits/stl_iterator.h **** 598:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 599:/usr/include/c++/4.8/bits/stl_iterator.h **** * The only way to create this %iterator is with a container and an 600:/usr/include/c++/4.8/bits/stl_iterator.h **** * initial position (a normal %iterator into the container). 601:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 602:/usr/include/c++/4.8/bits/stl_iterator.h **** insert_iterator(_Container& __x, typename _Container::iterator __i) 603:/usr/include/c++/4.8/bits/stl_iterator.h **** : container(&__x), iter(__i) {} 604:/usr/include/c++/4.8/bits/stl_iterator.h **** 605:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 606:/usr/include/c++/4.8/bits/stl_iterator.h **** * @param __value An instance of whatever type 607:/usr/include/c++/4.8/bits/stl_iterator.h **** * container_type::const_reference is; presumably a 608:/usr/include/c++/4.8/bits/stl_iterator.h **** * reference-to-const T for container. 609:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return This %iterator, for chained operations. 610:/usr/include/c++/4.8/bits/stl_iterator.h **** * 611:/usr/include/c++/4.8/bits/stl_iterator.h **** * This kind of %iterator maintains its own position in the 612:/usr/include/c++/4.8/bits/stl_iterator.h **** * container. Assigning a value to the %iterator will insert the 613:/usr/include/c++/4.8/bits/stl_iterator.h **** * value into the container at the place before the %iterator. 614:/usr/include/c++/4.8/bits/stl_iterator.h **** * 615:/usr/include/c++/4.8/bits/stl_iterator.h **** * The position is maintained such that subsequent assignments will 616:/usr/include/c++/4.8/bits/stl_iterator.h **** * insert values immediately after one another. For example, 617:/usr/include/c++/4.8/bits/stl_iterator.h **** * @code 618:/usr/include/c++/4.8/bits/stl_iterator.h **** * // vector v contains A and Z 619:/usr/include/c++/4.8/bits/stl_iterator.h **** * 620:/usr/include/c++/4.8/bits/stl_iterator.h **** * insert_iterator i (v, ++v.begin()); 621:/usr/include/c++/4.8/bits/stl_iterator.h **** * i = 1; 622:/usr/include/c++/4.8/bits/stl_iterator.h **** * i = 2; 623:/usr/include/c++/4.8/bits/stl_iterator.h **** * i = 3; 624:/usr/include/c++/4.8/bits/stl_iterator.h **** * 625:/usr/include/c++/4.8/bits/stl_iterator.h **** * // vector v contains A, 1, 2, 3, and Z 626:/usr/include/c++/4.8/bits/stl_iterator.h **** * @endcode 627:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 628:/usr/include/c++/4.8/bits/stl_iterator.h **** #if __cplusplus < 201103L 629:/usr/include/c++/4.8/bits/stl_iterator.h **** insert_iterator& 630:/usr/include/c++/4.8/bits/stl_iterator.h **** operator=(typename _Container::const_reference __value) 631:/usr/include/c++/4.8/bits/stl_iterator.h **** { 632:/usr/include/c++/4.8/bits/stl_iterator.h **** iter = container->insert(iter, __value); 633:/usr/include/c++/4.8/bits/stl_iterator.h **** ++iter; 634:/usr/include/c++/4.8/bits/stl_iterator.h **** return *this; 635:/usr/include/c++/4.8/bits/stl_iterator.h **** } 636:/usr/include/c++/4.8/bits/stl_iterator.h **** #else 637:/usr/include/c++/4.8/bits/stl_iterator.h **** insert_iterator& GAS LISTING /tmp/ccrAK1jU.s page 34 638:/usr/include/c++/4.8/bits/stl_iterator.h **** operator=(const typename _Container::value_type& __value) 639:/usr/include/c++/4.8/bits/stl_iterator.h **** { 640:/usr/include/c++/4.8/bits/stl_iterator.h **** iter = container->insert(iter, __value); 641:/usr/include/c++/4.8/bits/stl_iterator.h **** ++iter; 642:/usr/include/c++/4.8/bits/stl_iterator.h **** return *this; 643:/usr/include/c++/4.8/bits/stl_iterator.h **** } 644:/usr/include/c++/4.8/bits/stl_iterator.h **** 645:/usr/include/c++/4.8/bits/stl_iterator.h **** insert_iterator& 646:/usr/include/c++/4.8/bits/stl_iterator.h **** operator=(typename _Container::value_type&& __value) 647:/usr/include/c++/4.8/bits/stl_iterator.h **** { 648:/usr/include/c++/4.8/bits/stl_iterator.h **** iter = container->insert(iter, std::move(__value)); 649:/usr/include/c++/4.8/bits/stl_iterator.h **** ++iter; 650:/usr/include/c++/4.8/bits/stl_iterator.h **** return *this; 651:/usr/include/c++/4.8/bits/stl_iterator.h **** } 652:/usr/include/c++/4.8/bits/stl_iterator.h **** #endif 653:/usr/include/c++/4.8/bits/stl_iterator.h **** 654:/usr/include/c++/4.8/bits/stl_iterator.h **** /// Simply returns *this. 655:/usr/include/c++/4.8/bits/stl_iterator.h **** insert_iterator& 656:/usr/include/c++/4.8/bits/stl_iterator.h **** operator*() 657:/usr/include/c++/4.8/bits/stl_iterator.h **** { return *this; } 658:/usr/include/c++/4.8/bits/stl_iterator.h **** 659:/usr/include/c++/4.8/bits/stl_iterator.h **** /// Simply returns *this. (This %iterator does not @a move.) 660:/usr/include/c++/4.8/bits/stl_iterator.h **** insert_iterator& 661:/usr/include/c++/4.8/bits/stl_iterator.h **** operator++() 662:/usr/include/c++/4.8/bits/stl_iterator.h **** { return *this; } 663:/usr/include/c++/4.8/bits/stl_iterator.h **** 664:/usr/include/c++/4.8/bits/stl_iterator.h **** /// Simply returns *this. (This %iterator does not @a move.) 665:/usr/include/c++/4.8/bits/stl_iterator.h **** insert_iterator& 666:/usr/include/c++/4.8/bits/stl_iterator.h **** operator++(int) 667:/usr/include/c++/4.8/bits/stl_iterator.h **** { return *this; } 668:/usr/include/c++/4.8/bits/stl_iterator.h **** }; 669:/usr/include/c++/4.8/bits/stl_iterator.h **** 670:/usr/include/c++/4.8/bits/stl_iterator.h **** /** 671:/usr/include/c++/4.8/bits/stl_iterator.h **** * @param __x A container of arbitrary type. 672:/usr/include/c++/4.8/bits/stl_iterator.h **** * @return An instance of insert_iterator working on @p __x. 673:/usr/include/c++/4.8/bits/stl_iterator.h **** * 674:/usr/include/c++/4.8/bits/stl_iterator.h **** * This wrapper function helps in creating insert_iterator instances. 675:/usr/include/c++/4.8/bits/stl_iterator.h **** * Typing the name of the %iterator requires knowing the precise full 676:/usr/include/c++/4.8/bits/stl_iterator.h **** * type of the container, which can be tedious and impedes generic 677:/usr/include/c++/4.8/bits/stl_iterator.h **** * programming. Using this function lets you take advantage of automatic 678:/usr/include/c++/4.8/bits/stl_iterator.h **** * template parameter deduction, making the compiler match the correct 679:/usr/include/c++/4.8/bits/stl_iterator.h **** * types for you. 680:/usr/include/c++/4.8/bits/stl_iterator.h **** */ 681:/usr/include/c++/4.8/bits/stl_iterator.h **** template 682:/usr/include/c++/4.8/bits/stl_iterator.h **** inline insert_iterator<_Container> 683:/usr/include/c++/4.8/bits/stl_iterator.h **** inserter(_Container& __x, _Iterator __i) 684:/usr/include/c++/4.8/bits/stl_iterator.h **** { 685:/usr/include/c++/4.8/bits/stl_iterator.h **** return insert_iterator<_Container>(__x, 686:/usr/include/c++/4.8/bits/stl_iterator.h **** typename _Container::iterator(__i)); 687:/usr/include/c++/4.8/bits/stl_iterator.h **** } 688:/usr/include/c++/4.8/bits/stl_iterator.h **** 689:/usr/include/c++/4.8/bits/stl_iterator.h **** // @} group iterators 690:/usr/include/c++/4.8/bits/stl_iterator.h **** 691:/usr/include/c++/4.8/bits/stl_iterator.h **** _GLIBCXX_END_NAMESPACE_VERSION 692:/usr/include/c++/4.8/bits/stl_iterator.h **** } // namespace 693:/usr/include/c++/4.8/bits/stl_iterator.h **** 694:/usr/include/c++/4.8/bits/stl_iterator.h **** namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) GAS LISTING /tmp/ccrAK1jU.s page 35 695:/usr/include/c++/4.8/bits/stl_iterator.h **** { 696:/usr/include/c++/4.8/bits/stl_iterator.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION 697:/usr/include/c++/4.8/bits/stl_iterator.h **** 698:/usr/include/c++/4.8/bits/stl_iterator.h **** // This iterator adapter is @a normal in the sense that it does not 699:/usr/include/c++/4.8/bits/stl_iterator.h **** // change the semantics of any of the operators of its iterator 700:/usr/include/c++/4.8/bits/stl_iterator.h **** // parameter. Its primary purpose is to convert an iterator that is 701:/usr/include/c++/4.8/bits/stl_iterator.h **** // not a class, e.g. a pointer, into an iterator that is a class. 702:/usr/include/c++/4.8/bits/stl_iterator.h **** // The _Container parameter exists solely so that different containers 703:/usr/include/c++/4.8/bits/stl_iterator.h **** // using this template can instantiate different types, even if the 704:/usr/include/c++/4.8/bits/stl_iterator.h **** // _Iterator parameter is the same. 705:/usr/include/c++/4.8/bits/stl_iterator.h **** using std::iterator_traits; 706:/usr/include/c++/4.8/bits/stl_iterator.h **** using std::iterator; 707:/usr/include/c++/4.8/bits/stl_iterator.h **** template 708:/usr/include/c++/4.8/bits/stl_iterator.h **** class __normal_iterator 709:/usr/include/c++/4.8/bits/stl_iterator.h **** { 710:/usr/include/c++/4.8/bits/stl_iterator.h **** protected: 711:/usr/include/c++/4.8/bits/stl_iterator.h **** _Iterator _M_current; 712:/usr/include/c++/4.8/bits/stl_iterator.h **** 713:/usr/include/c++/4.8/bits/stl_iterator.h **** typedef iterator_traits<_Iterator> __traits_type; 714:/usr/include/c++/4.8/bits/stl_iterator.h **** 715:/usr/include/c++/4.8/bits/stl_iterator.h **** public: 716:/usr/include/c++/4.8/bits/stl_iterator.h **** typedef _Iterator iterator_type; 717:/usr/include/c++/4.8/bits/stl_iterator.h **** typedef typename __traits_type::iterator_category iterator_category; 718:/usr/include/c++/4.8/bits/stl_iterator.h **** typedef typename __traits_type::value_type value_type; 719:/usr/include/c++/4.8/bits/stl_iterator.h **** typedef typename __traits_type::difference_type difference_type; 720:/usr/include/c++/4.8/bits/stl_iterator.h **** typedef typename __traits_type::reference reference; 721:/usr/include/c++/4.8/bits/stl_iterator.h **** typedef typename __traits_type::pointer pointer; 722:/usr/include/c++/4.8/bits/stl_iterator.h **** 723:/usr/include/c++/4.8/bits/stl_iterator.h **** _GLIBCXX_CONSTEXPR __normal_iterator() : _M_current(_Iterator()) { } 724:/usr/include/c++/4.8/bits/stl_iterator.h **** 725:/usr/include/c++/4.8/bits/stl_iterator.h **** explicit 726:/usr/include/c++/4.8/bits/stl_iterator.h **** __normal_iterator(const _Iterator& __i) : _M_current(__i) { } 273 .loc 6 726 0 274 .cfi_startproc 275 .LVL20: 276 .LBB5: 277 .loc 6 726 0 278 0000 488B06 movq (%rsi), %rax 279 0003 488907 movq %rax, (%rdi) 280 0006 C3 ret 281 .LBE5: 282 .cfi_endproc 283 .LFE1799: 285 .weak _ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEC1ERKS2_ 286 .set _ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEC1ERKS2_,_ZN9__gnu_cxx17__normal_ite 287 .section .text._ZNKSt6vectorISsSaISsEE3endEv,"axG",@progbits,_ZNKSt6vectorISsSaISsEE3endEv,comdat 288 .align 2 289 .weak _ZNKSt6vectorISsSaISsEE3endEv 291 _ZNKSt6vectorISsSaISsEE3endEv: 292 .LFB1759: 565:/usr/include/c++/4.8/bits/stl_vector.h **** { return const_iterator(this->_M_impl._M_finish); } 293 .loc 5 565 0 294 .cfi_startproc 295 .LVL21: 296 0000 4883EC18 subq $24, %rsp 297 .cfi_def_cfa_offset 32 566:/usr/include/c++/4.8/bits/stl_vector.h **** GAS LISTING /tmp/ccrAK1jU.s page 36 298 .loc 5 566 0 299 0004 488B4708 movq 8(%rdi), %rax 300 0008 48894424 movq %rax, 8(%rsp) 300 08 301 000d 488D7424 leaq 8(%rsp), %rsi 301 08 302 0012 4889E7 movq %rsp, %rdi 303 .LVL22: 304 0015 E8000000 call _ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEC1ERKS2_ 304 00 305 .LVL23: 306 001a 488B0424 movq (%rsp), %rax 307 001e 4883C418 addq $24, %rsp 308 .cfi_def_cfa_offset 8 309 0022 C3 ret 310 .cfi_endproc 311 .LFE1759: 313 .section .text._ZNKSt6vectorISsSaISsEE5beginEv,"axG",@progbits,_ZNKSt6vectorISsSaISsEE5beginEv,com 314 .align 2 315 .weak _ZNKSt6vectorISsSaISsEE5beginEv 317 _ZNKSt6vectorISsSaISsEE5beginEv: 318 .LFB1758: 547:/usr/include/c++/4.8/bits/stl_vector.h **** { return const_iterator(this->_M_impl._M_start); } 319 .loc 5 547 0 320 .cfi_startproc 321 .LVL24: 322 0000 4883EC18 subq $24, %rsp 323 .cfi_def_cfa_offset 32 548:/usr/include/c++/4.8/bits/stl_vector.h **** 324 .loc 5 548 0 325 0004 488B07 movq (%rdi), %rax 326 0007 48894424 movq %rax, 8(%rsp) 326 08 327 000c 488D7424 leaq 8(%rsp), %rsi 327 08 328 0011 4889E7 movq %rsp, %rdi 329 .LVL25: 330 0014 E8000000 call _ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEC1ERKS2_ 330 00 331 .LVL26: 332 0019 488B0424 movq (%rsp), %rax 333 001d 4883C418 addq $24, %rsp 334 .cfi_def_cfa_offset 8 335 0021 C3 ret 336 .cfi_endproc 337 .LFE1758: 339 .section .text._ZN9__gnu_cxx13new_allocatorISsE10deallocateEPSsm,"axG",@progbits,_ZN9__gnu_cxx13ne 340 .align 2 341 .weak _ZN9__gnu_cxx13new_allocatorISsE10deallocateEPSsm 343 _ZN9__gnu_cxx13new_allocatorISsE10deallocateEPSsm: 344 .LFB1805: 345 .file 7 "/usr/include/c++/4.8/ext/new_allocator.h" 1:/usr/include/c++/4.8/ext/new_allocator.h **** // Allocator that wraps operator new -*- C++ -*- 2:/usr/include/c++/4.8/ext/new_allocator.h **** 3:/usr/include/c++/4.8/ext/new_allocator.h **** // Copyright (C) 2001-2013 Free Software Foundation, Inc. 4:/usr/include/c++/4.8/ext/new_allocator.h **** // 5:/usr/include/c++/4.8/ext/new_allocator.h **** // This file is part of the GNU ISO C++ Library. This library is free GAS LISTING /tmp/ccrAK1jU.s page 37 6:/usr/include/c++/4.8/ext/new_allocator.h **** // software; you can redistribute it and/or modify it under the 7:/usr/include/c++/4.8/ext/new_allocator.h **** // terms of the GNU General Public License as published by the 8:/usr/include/c++/4.8/ext/new_allocator.h **** // Free Software Foundation; either version 3, or (at your option) 9:/usr/include/c++/4.8/ext/new_allocator.h **** // any later version. 10:/usr/include/c++/4.8/ext/new_allocator.h **** 11:/usr/include/c++/4.8/ext/new_allocator.h **** // This library is distributed in the hope that it will be useful, 12:/usr/include/c++/4.8/ext/new_allocator.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of 13:/usr/include/c++/4.8/ext/new_allocator.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14:/usr/include/c++/4.8/ext/new_allocator.h **** // GNU General Public License for more details. 15:/usr/include/c++/4.8/ext/new_allocator.h **** 16:/usr/include/c++/4.8/ext/new_allocator.h **** // Under Section 7 of GPL version 3, you are granted additional 17:/usr/include/c++/4.8/ext/new_allocator.h **** // permissions described in the GCC Runtime Library Exception, version 18:/usr/include/c++/4.8/ext/new_allocator.h **** // 3.1, as published by the Free Software Foundation. 19:/usr/include/c++/4.8/ext/new_allocator.h **** 20:/usr/include/c++/4.8/ext/new_allocator.h **** // You should have received a copy of the GNU General Public License and 21:/usr/include/c++/4.8/ext/new_allocator.h **** // a copy of the GCC Runtime Library Exception along with this program; 22:/usr/include/c++/4.8/ext/new_allocator.h **** // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23:/usr/include/c++/4.8/ext/new_allocator.h **** // . 24:/usr/include/c++/4.8/ext/new_allocator.h **** 25:/usr/include/c++/4.8/ext/new_allocator.h **** /** @file ext/new_allocator.h 26:/usr/include/c++/4.8/ext/new_allocator.h **** * This file is a GNU extension to the Standard C++ Library. 27:/usr/include/c++/4.8/ext/new_allocator.h **** */ 28:/usr/include/c++/4.8/ext/new_allocator.h **** 29:/usr/include/c++/4.8/ext/new_allocator.h **** #ifndef _NEW_ALLOCATOR_H 30:/usr/include/c++/4.8/ext/new_allocator.h **** #define _NEW_ALLOCATOR_H 1 31:/usr/include/c++/4.8/ext/new_allocator.h **** 32:/usr/include/c++/4.8/ext/new_allocator.h **** #include 33:/usr/include/c++/4.8/ext/new_allocator.h **** #include 34:/usr/include/c++/4.8/ext/new_allocator.h **** #include 35:/usr/include/c++/4.8/ext/new_allocator.h **** #include 36:/usr/include/c++/4.8/ext/new_allocator.h **** #if __cplusplus >= 201103L 37:/usr/include/c++/4.8/ext/new_allocator.h **** #include 38:/usr/include/c++/4.8/ext/new_allocator.h **** #endif 39:/usr/include/c++/4.8/ext/new_allocator.h **** 40:/usr/include/c++/4.8/ext/new_allocator.h **** namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) 41:/usr/include/c++/4.8/ext/new_allocator.h **** { 42:/usr/include/c++/4.8/ext/new_allocator.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION 43:/usr/include/c++/4.8/ext/new_allocator.h **** 44:/usr/include/c++/4.8/ext/new_allocator.h **** using std::size_t; 45:/usr/include/c++/4.8/ext/new_allocator.h **** using std::ptrdiff_t; 46:/usr/include/c++/4.8/ext/new_allocator.h **** 47:/usr/include/c++/4.8/ext/new_allocator.h **** /** 48:/usr/include/c++/4.8/ext/new_allocator.h **** * @brief An allocator that uses global new, as per [20.4]. 49:/usr/include/c++/4.8/ext/new_allocator.h **** * @ingroup allocators 50:/usr/include/c++/4.8/ext/new_allocator.h **** * 51:/usr/include/c++/4.8/ext/new_allocator.h **** * This is precisely the allocator defined in the C++ Standard. 52:/usr/include/c++/4.8/ext/new_allocator.h **** * - all allocation calls operator new 53:/usr/include/c++/4.8/ext/new_allocator.h **** * - all deallocation calls operator delete 54:/usr/include/c++/4.8/ext/new_allocator.h **** * 55:/usr/include/c++/4.8/ext/new_allocator.h **** * @tparam _Tp Type of allocated object. 56:/usr/include/c++/4.8/ext/new_allocator.h **** */ 57:/usr/include/c++/4.8/ext/new_allocator.h **** template 58:/usr/include/c++/4.8/ext/new_allocator.h **** class new_allocator 59:/usr/include/c++/4.8/ext/new_allocator.h **** { 60:/usr/include/c++/4.8/ext/new_allocator.h **** public: 61:/usr/include/c++/4.8/ext/new_allocator.h **** typedef size_t size_type; 62:/usr/include/c++/4.8/ext/new_allocator.h **** typedef ptrdiff_t difference_type; GAS LISTING /tmp/ccrAK1jU.s page 38 63:/usr/include/c++/4.8/ext/new_allocator.h **** typedef _Tp* pointer; 64:/usr/include/c++/4.8/ext/new_allocator.h **** typedef const _Tp* const_pointer; 65:/usr/include/c++/4.8/ext/new_allocator.h **** typedef _Tp& reference; 66:/usr/include/c++/4.8/ext/new_allocator.h **** typedef const _Tp& const_reference; 67:/usr/include/c++/4.8/ext/new_allocator.h **** typedef _Tp value_type; 68:/usr/include/c++/4.8/ext/new_allocator.h **** 69:/usr/include/c++/4.8/ext/new_allocator.h **** template 70:/usr/include/c++/4.8/ext/new_allocator.h **** struct rebind 71:/usr/include/c++/4.8/ext/new_allocator.h **** { typedef new_allocator<_Tp1> other; }; 72:/usr/include/c++/4.8/ext/new_allocator.h **** 73:/usr/include/c++/4.8/ext/new_allocator.h **** #if __cplusplus >= 201103L 74:/usr/include/c++/4.8/ext/new_allocator.h **** // _GLIBCXX_RESOLVE_LIB_DEFECTS 75:/usr/include/c++/4.8/ext/new_allocator.h **** // 2103. propagate_on_container_move_assignment 76:/usr/include/c++/4.8/ext/new_allocator.h **** typedef std::true_type propagate_on_container_move_assignment; 77:/usr/include/c++/4.8/ext/new_allocator.h **** #endif 78:/usr/include/c++/4.8/ext/new_allocator.h **** 79:/usr/include/c++/4.8/ext/new_allocator.h **** new_allocator() _GLIBCXX_USE_NOEXCEPT { } 80:/usr/include/c++/4.8/ext/new_allocator.h **** 81:/usr/include/c++/4.8/ext/new_allocator.h **** new_allocator(const new_allocator&) _GLIBCXX_USE_NOEXCEPT { } 82:/usr/include/c++/4.8/ext/new_allocator.h **** 83:/usr/include/c++/4.8/ext/new_allocator.h **** template 84:/usr/include/c++/4.8/ext/new_allocator.h **** new_allocator(const new_allocator<_Tp1>&) _GLIBCXX_USE_NOEXCEPT { } 85:/usr/include/c++/4.8/ext/new_allocator.h **** 86:/usr/include/c++/4.8/ext/new_allocator.h **** ~new_allocator() _GLIBCXX_USE_NOEXCEPT { } 87:/usr/include/c++/4.8/ext/new_allocator.h **** 88:/usr/include/c++/4.8/ext/new_allocator.h **** pointer 89:/usr/include/c++/4.8/ext/new_allocator.h **** address(reference __x) const _GLIBCXX_NOEXCEPT 90:/usr/include/c++/4.8/ext/new_allocator.h **** { return std::__addressof(__x); } 91:/usr/include/c++/4.8/ext/new_allocator.h **** 92:/usr/include/c++/4.8/ext/new_allocator.h **** const_pointer 93:/usr/include/c++/4.8/ext/new_allocator.h **** address(const_reference __x) const _GLIBCXX_NOEXCEPT 94:/usr/include/c++/4.8/ext/new_allocator.h **** { return std::__addressof(__x); } 95:/usr/include/c++/4.8/ext/new_allocator.h **** 96:/usr/include/c++/4.8/ext/new_allocator.h **** // NB: __n is permitted to be 0. The C++ standard says nothing 97:/usr/include/c++/4.8/ext/new_allocator.h **** // about what the return value is when __n == 0. 98:/usr/include/c++/4.8/ext/new_allocator.h **** pointer 99:/usr/include/c++/4.8/ext/new_allocator.h **** allocate(size_type __n, const void* = 0) 100:/usr/include/c++/4.8/ext/new_allocator.h **** { 101:/usr/include/c++/4.8/ext/new_allocator.h **** if (__n > this->max_size()) 102:/usr/include/c++/4.8/ext/new_allocator.h **** std::__throw_bad_alloc(); 103:/usr/include/c++/4.8/ext/new_allocator.h **** 104:/usr/include/c++/4.8/ext/new_allocator.h **** return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 105:/usr/include/c++/4.8/ext/new_allocator.h **** } 106:/usr/include/c++/4.8/ext/new_allocator.h **** 107:/usr/include/c++/4.8/ext/new_allocator.h **** // __p is not permitted to be a null pointer. 108:/usr/include/c++/4.8/ext/new_allocator.h **** void 109:/usr/include/c++/4.8/ext/new_allocator.h **** deallocate(pointer __p, size_type) 346 .loc 7 109 0 347 .cfi_startproc 348 .LVL27: 349 0000 4883EC08 subq $8, %rsp 350 .cfi_def_cfa_offset 16 110:/usr/include/c++/4.8/ext/new_allocator.h **** { ::operator delete(__p); } 351 .loc 7 110 0 352 0004 4889F7 movq %rsi, %rdi 353 .LVL28: 354 0007 E8000000 call _ZdlPv GAS LISTING /tmp/ccrAK1jU.s page 39 354 00 355 .LVL29: 356 000c 4883C408 addq $8, %rsp 357 .cfi_def_cfa_offset 8 358 0010 C3 ret 359 .cfi_endproc 360 .LFE1805: 362 .section .text._ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm,"axG",@progbits,_ZNSt12_Vector_ba 363 .align 2 364 .weak _ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm 366 _ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm: 367 .LFB1788: 171:/usr/include/c++/4.8/bits/stl_vector.h **** { 368 .loc 5 171 0 369 .cfi_startproc 370 .LVL30: 173:/usr/include/c++/4.8/bits/stl_vector.h **** _M_impl.deallocate(__p, __n); 371 .loc 5 173 0 372 0000 4885F6 testq %rsi, %rsi 373 0003 740D je .L31 171:/usr/include/c++/4.8/bits/stl_vector.h **** { 374 .loc 5 171 0 375 0005 4883EC08 subq $8, %rsp 376 .cfi_def_cfa_offset 16 174:/usr/include/c++/4.8/bits/stl_vector.h **** } 377 .loc 5 174 0 378 0009 E8000000 call _ZN9__gnu_cxx13new_allocatorISsE10deallocateEPSsm 378 00 379 .LVL31: 175:/usr/include/c++/4.8/bits/stl_vector.h **** 380 .loc 5 175 0 381 000e 4883C408 addq $8, %rsp 382 .cfi_def_cfa_offset 8 383 .L31: 384 0012 F3C3 rep ret 385 .cfi_endproc 386 .LFE1788: 388 .section .text._ZNSt12_Vector_baseISsSaISsEED2Ev,"axG",@progbits,_ZNSt12_Vector_baseISsSaISsEED5Ev 389 .align 2 390 .weak _ZNSt12_Vector_baseISsSaISsEED2Ev 392 _ZNSt12_Vector_baseISsSaISsEED2Ev: 393 .LFB1747: 159:/usr/include/c++/4.8/bits/stl_vector.h **** { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage 394 .loc 5 159 0 395 .cfi_startproc 396 .LVL32: 397 0000 4883EC08 subq $8, %rsp 398 .cfi_def_cfa_offset 16 399 .LBB6: 161:/usr/include/c++/4.8/bits/stl_vector.h **** 400 .loc 5 161 0 401 0004 488B37 movq (%rdi), %rsi 402 0007 488B5710 movq 16(%rdi), %rdx 403 000b 4829F2 subq %rsi, %rdx 404 000e 48C1FA03 sarq $3, %rdx 160:/usr/include/c++/4.8/bits/stl_vector.h **** - this->_M_impl._M_start); } 405 .loc 5 160 0 GAS LISTING /tmp/ccrAK1jU.s page 40 406 0012 E8000000 call _ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm 406 00 407 .LVL33: 408 .LBE6: 161:/usr/include/c++/4.8/bits/stl_vector.h **** 409 .loc 5 161 0 410 0017 4883C408 addq $8, %rsp 411 .cfi_def_cfa_offset 8 412 001b C3 ret 413 .cfi_endproc 414 .LFE1747: 416 .weak _ZNSt12_Vector_baseISsSaISsEED1Ev 417 .set _ZNSt12_Vector_baseISsSaISsEED1Ev,_ZNSt12_Vector_baseISsSaISsEED2Ev 418 .section .text._ZSt10__distanceIPKSsENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_ac 419 .weak _ZSt10__distanceIPKSsENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_iter 421 _ZSt10__distanceIPKSsENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_iterator_ta 422 .LFB1807: 423 .file 8 "/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h" 1:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // Functions used by iterators -*- C++ -*- 2:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 3:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // Copyright (C) 2001-2013 Free Software Foundation, Inc. 4:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // 5:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // This file is part of the GNU ISO C++ Library. This library is free 6:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // software; you can redistribute it and/or modify it under the 7:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // terms of the GNU General Public License as published by the 8:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // Free Software Foundation; either version 3, or (at your option) 9:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // any later version. 10:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 11:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // This library is distributed in the hope that it will be useful, 12:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of 13:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // GNU General Public License for more details. 15:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 16:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // Under Section 7 of GPL version 3, you are granted additional 17:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // permissions described in the GCC Runtime Library Exception, version 18:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // 3.1, as published by the Free Software Foundation. 19:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 20:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // You should have received a copy of the GNU General Public License and 21:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // a copy of the GCC Runtime Library Exception along with this program; 22:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // . 24:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 25:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** /* 26:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * 27:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * Copyright (c) 1994 28:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * Hewlett-Packard Company 29:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * 30:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * Permission to use, copy, modify, distribute and sell this software 31:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * and its documentation for any purpose is hereby granted without fee, 32:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * provided that the above copyright notice appear in all copies and 33:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * that both that copyright notice and this permission notice appear 34:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * in supporting documentation. Hewlett-Packard Company makes no 35:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * representations about the suitability of this software for any 36:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * purpose. It is provided "as is" without express or implied warranty. 37:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * 38:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * 39:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * Copyright (c) 1996-1998 GAS LISTING /tmp/ccrAK1jU.s page 41 40:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * Silicon Graphics Computer Systems, Inc. 41:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * 42:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * Permission to use, copy, modify, distribute and sell this software 43:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * and its documentation for any purpose is hereby granted without fee, 44:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * provided that the above copyright notice appear in all copies and 45:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * that both that copyright notice and this permission notice appear 46:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * in supporting documentation. Silicon Graphics makes no 47:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * representations about the suitability of this software for any 48:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * purpose. It is provided "as is" without express or implied warranty. 49:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** */ 50:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 51:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** /** @file bits/stl_iterator_base_funcs.h 52:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * This is an internal header file, included by other library headers. 53:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * Do not attempt to use it directly. @headername{iterator} 54:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * 55:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * This file contains all of the general iterator-related utility 56:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * functions, such as distance() and advance(). 57:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** */ 58:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 59:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** #ifndef _STL_ITERATOR_BASE_FUNCS_H 60:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** #define _STL_ITERATOR_BASE_FUNCS_H 1 61:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 62:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** #pragma GCC system_header 63:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 64:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** #include 65:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** #include 66:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 67:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** namespace std _GLIBCXX_VISIBILITY(default) 68:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** { 69:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION 70:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 71:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** template 72:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** inline typename iterator_traits<_InputIterator>::difference_type 73:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** __distance(_InputIterator __first, _InputIterator __last, 74:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** input_iterator_tag) 75:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** { 76:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // concept requirements 77:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>) 78:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 79:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** typename iterator_traits<_InputIterator>::difference_type __n = 0; 80:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** while (__first != __last) 81:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** { 82:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** ++__first; 83:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** ++__n; 84:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** } 85:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** return __n; 86:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** } 87:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 88:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** template 89:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** inline typename iterator_traits<_RandomAccessIterator>::difference_type 90:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, 424 .loc 8 90 0 425 .cfi_startproc 426 .LVL34: 91:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** random_access_iterator_tag) 92:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** { 93:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // concept requirements GAS LISTING /tmp/ccrAK1jU.s page 42 94:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** __glibcxx_function_requires(_RandomAccessIteratorConcept< 95:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** _RandomAccessIterator>) 96:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** return __last - __first; 427 .loc 8 96 0 428 0000 4889F0 movq %rsi, %rax 429 0003 4829F8 subq %rdi, %rax 430 0006 48C1F803 sarq $3, %rax 97:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** } 431 .loc 8 97 0 432 000a C3 ret 433 .cfi_endproc 434 .LFE1807: 436 .section .text._ZSt8distanceIPKSsENSt15iterator_traitsIT_E15difference_typeES3_S3_,"axG",@progbits 437 .weak _ZSt8distanceIPKSsENSt15iterator_traitsIT_E15difference_typeES3_S3_ 439 _ZSt8distanceIPKSsENSt15iterator_traitsIT_E15difference_typeES3_S3_: 440 .LFB1789: 98:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 99:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** /** 100:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * @brief A generalization of pointer arithmetic. 101:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * @param __first An input iterator. 102:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * @param __last An input iterator. 103:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * @return The distance between them. 104:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * 105:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * Returns @c n such that __first + n == __last. This requires 106:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * that @p __last must be reachable from @p __first. Note that @c 107:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * n may be negative. 108:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * 109:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * For random access iterators, this uses their @c + and @c - operations 110:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** * and are constant time. For other %iterator classes they are linear time. 111:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** */ 112:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** template 113:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** inline typename iterator_traits<_InputIterator>::difference_type 114:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** distance(_InputIterator __first, _InputIterator __last) 441 .loc 8 114 0 442 .cfi_startproc 443 .LVL35: 444 0000 4883EC18 subq $24, %rsp 445 .cfi_def_cfa_offset 32 115:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** { 116:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // concept requirements -- taken care of in __distance 117:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** return std::__distance(__first, __last, 118:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** std::__iterator_category(__first)); 446 .loc 8 118 0 447 0004 C6042400 movb $0, (%rsp) 448 0008 E8000000 call _ZSt10__distanceIPKSsENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_itera 448 00 449 .LVL36: 119:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** } 450 .loc 8 119 0 451 000d 4883C418 addq $24, %rsp 452 .cfi_def_cfa_offset 8 453 0011 C3 ret 454 .cfi_endproc 455 .LFE1789: 457 .section .text._ZNSt16allocator_traitsISaISsEE9_S_selectIKS0_EENSt9enable_ifIXntsrNS1_15__select_h 458 .weak _ZNSt16allocator_traitsISaISsEE9_S_selectIKS0_EENSt9enable_ifIXntsrNS1_15__select_helperIT_E 460 _ZNSt16allocator_traitsISaISsEE9_S_selectIKS0_EENSt9enable_ifIXntsrNS1_15__select_helperIT_EE5value GAS LISTING /tmp/ccrAK1jU.s page 43 461 .LFB1811: 462 .file 9 "/usr/include/c++/4.8/bits/alloc_traits.h" 1:/usr/include/c++/4.8/bits/alloc_traits.h **** // Allocator traits -*- C++ -*- 2:/usr/include/c++/4.8/bits/alloc_traits.h **** 3:/usr/include/c++/4.8/bits/alloc_traits.h **** // Copyright (C) 2011-2013 Free Software Foundation, Inc. 4:/usr/include/c++/4.8/bits/alloc_traits.h **** // 5:/usr/include/c++/4.8/bits/alloc_traits.h **** // This file is part of the GNU ISO C++ Library. This library is free 6:/usr/include/c++/4.8/bits/alloc_traits.h **** // software; you can redistribute it and/or modify it under the 7:/usr/include/c++/4.8/bits/alloc_traits.h **** // terms of the GNU General Public License as published by the 8:/usr/include/c++/4.8/bits/alloc_traits.h **** // Free Software Foundation; either version 3, or (at your option) 9:/usr/include/c++/4.8/bits/alloc_traits.h **** // any later version. 10:/usr/include/c++/4.8/bits/alloc_traits.h **** 11:/usr/include/c++/4.8/bits/alloc_traits.h **** // This library is distributed in the hope that it will be useful, 12:/usr/include/c++/4.8/bits/alloc_traits.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of 13:/usr/include/c++/4.8/bits/alloc_traits.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14:/usr/include/c++/4.8/bits/alloc_traits.h **** // GNU General Public License for more details. 15:/usr/include/c++/4.8/bits/alloc_traits.h **** 16:/usr/include/c++/4.8/bits/alloc_traits.h **** // Under Section 7 of GPL version 3, you are granted additional 17:/usr/include/c++/4.8/bits/alloc_traits.h **** // permissions described in the GCC Runtime Library Exception, version 18:/usr/include/c++/4.8/bits/alloc_traits.h **** // 3.1, as published by the Free Software Foundation. 19:/usr/include/c++/4.8/bits/alloc_traits.h **** 20:/usr/include/c++/4.8/bits/alloc_traits.h **** // You should have received a copy of the GNU General Public License and 21:/usr/include/c++/4.8/bits/alloc_traits.h **** // a copy of the GCC Runtime Library Exception along with this program; 22:/usr/include/c++/4.8/bits/alloc_traits.h **** // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23:/usr/include/c++/4.8/bits/alloc_traits.h **** // . 24:/usr/include/c++/4.8/bits/alloc_traits.h **** 25:/usr/include/c++/4.8/bits/alloc_traits.h **** /** @file bits/alloc_traits.h 26:/usr/include/c++/4.8/bits/alloc_traits.h **** * This is an internal header file, included by other library headers. 27:/usr/include/c++/4.8/bits/alloc_traits.h **** * Do not attempt to use it directly. @headername{memory} 28:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 29:/usr/include/c++/4.8/bits/alloc_traits.h **** 30:/usr/include/c++/4.8/bits/alloc_traits.h **** #ifndef _ALLOC_TRAITS_H 31:/usr/include/c++/4.8/bits/alloc_traits.h **** #define _ALLOC_TRAITS_H 1 32:/usr/include/c++/4.8/bits/alloc_traits.h **** 33:/usr/include/c++/4.8/bits/alloc_traits.h **** #if __cplusplus >= 201103L 34:/usr/include/c++/4.8/bits/alloc_traits.h **** 35:/usr/include/c++/4.8/bits/alloc_traits.h **** #include 36:/usr/include/c++/4.8/bits/alloc_traits.h **** #include 37:/usr/include/c++/4.8/bits/alloc_traits.h **** #include 38:/usr/include/c++/4.8/bits/alloc_traits.h **** 39:/usr/include/c++/4.8/bits/alloc_traits.h **** namespace std _GLIBCXX_VISIBILITY(default) 40:/usr/include/c++/4.8/bits/alloc_traits.h **** { 41:/usr/include/c++/4.8/bits/alloc_traits.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION 42:/usr/include/c++/4.8/bits/alloc_traits.h **** 43:/usr/include/c++/4.8/bits/alloc_traits.h **** template 44:/usr/include/c++/4.8/bits/alloc_traits.h **** class __alloctr_rebind_helper 45:/usr/include/c++/4.8/bits/alloc_traits.h **** { 46:/usr/include/c++/4.8/bits/alloc_traits.h **** template 47:/usr/include/c++/4.8/bits/alloc_traits.h **** static constexpr bool 48:/usr/include/c++/4.8/bits/alloc_traits.h **** _S_chk(typename _Alloc2::template rebind<_Tp2>::other*) 49:/usr/include/c++/4.8/bits/alloc_traits.h **** { return true; } 50:/usr/include/c++/4.8/bits/alloc_traits.h **** 51:/usr/include/c++/4.8/bits/alloc_traits.h **** template 52:/usr/include/c++/4.8/bits/alloc_traits.h **** static constexpr bool 53:/usr/include/c++/4.8/bits/alloc_traits.h **** _S_chk(...) 54:/usr/include/c++/4.8/bits/alloc_traits.h **** { return false; } 55:/usr/include/c++/4.8/bits/alloc_traits.h **** GAS LISTING /tmp/ccrAK1jU.s page 44 56:/usr/include/c++/4.8/bits/alloc_traits.h **** public: 57:/usr/include/c++/4.8/bits/alloc_traits.h **** static const bool __value = _S_chk<_Alloc, _Tp>(nullptr); 58:/usr/include/c++/4.8/bits/alloc_traits.h **** }; 59:/usr/include/c++/4.8/bits/alloc_traits.h **** 60:/usr/include/c++/4.8/bits/alloc_traits.h **** template 61:/usr/include/c++/4.8/bits/alloc_traits.h **** const bool __alloctr_rebind_helper<_Alloc, _Tp>::__value; 62:/usr/include/c++/4.8/bits/alloc_traits.h **** 63:/usr/include/c++/4.8/bits/alloc_traits.h **** template::__value> 65:/usr/include/c++/4.8/bits/alloc_traits.h **** struct __alloctr_rebind; 66:/usr/include/c++/4.8/bits/alloc_traits.h **** 67:/usr/include/c++/4.8/bits/alloc_traits.h **** template 68:/usr/include/c++/4.8/bits/alloc_traits.h **** struct __alloctr_rebind<_Alloc, _Tp, true> 69:/usr/include/c++/4.8/bits/alloc_traits.h **** { 70:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef typename _Alloc::template rebind<_Tp>::other __type; 71:/usr/include/c++/4.8/bits/alloc_traits.h **** }; 72:/usr/include/c++/4.8/bits/alloc_traits.h **** 73:/usr/include/c++/4.8/bits/alloc_traits.h **** template class _Alloc, typename _Tp, 74:/usr/include/c++/4.8/bits/alloc_traits.h **** typename _Up, typename... _Args> 75:/usr/include/c++/4.8/bits/alloc_traits.h **** struct __alloctr_rebind<_Alloc<_Up, _Args...>, _Tp, false> 76:/usr/include/c++/4.8/bits/alloc_traits.h **** { 77:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef _Alloc<_Tp, _Args...> __type; 78:/usr/include/c++/4.8/bits/alloc_traits.h **** }; 79:/usr/include/c++/4.8/bits/alloc_traits.h **** 80:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 81:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief Uniform interface to all allocator types. 82:/usr/include/c++/4.8/bits/alloc_traits.h **** * @ingroup allocators 83:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 84:/usr/include/c++/4.8/bits/alloc_traits.h **** template 85:/usr/include/c++/4.8/bits/alloc_traits.h **** struct allocator_traits 86:/usr/include/c++/4.8/bits/alloc_traits.h **** { 87:/usr/include/c++/4.8/bits/alloc_traits.h **** /// The allocator type 88:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef _Alloc allocator_type; 89:/usr/include/c++/4.8/bits/alloc_traits.h **** /// The allocated type 90:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef typename _Alloc::value_type value_type; 91:/usr/include/c++/4.8/bits/alloc_traits.h **** 92:/usr/include/c++/4.8/bits/alloc_traits.h **** #define _GLIBCXX_ALLOC_TR_NESTED_TYPE(_NTYPE, _ALT) \ 93:/usr/include/c++/4.8/bits/alloc_traits.h **** private: \ 94:/usr/include/c++/4.8/bits/alloc_traits.h **** template \ 95:/usr/include/c++/4.8/bits/alloc_traits.h **** static typename _Tp::_NTYPE _S_##_NTYPE##_helper(_Tp*); \ 96:/usr/include/c++/4.8/bits/alloc_traits.h **** static _ALT _S_##_NTYPE##_helper(...); \ 97:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef decltype(_S_##_NTYPE##_helper((_Alloc*)0)) __##_NTYPE; \ 98:/usr/include/c++/4.8/bits/alloc_traits.h **** public: 99:/usr/include/c++/4.8/bits/alloc_traits.h **** 100:/usr/include/c++/4.8/bits/alloc_traits.h **** _GLIBCXX_ALLOC_TR_NESTED_TYPE(pointer, value_type*) 101:/usr/include/c++/4.8/bits/alloc_traits.h **** 102:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 103:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief The allocator's pointer type. 104:/usr/include/c++/4.8/bits/alloc_traits.h **** * 105:/usr/include/c++/4.8/bits/alloc_traits.h **** * @c Alloc::pointer if that type exists, otherwise @c value_type* 106:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 107:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef __pointer pointer; 108:/usr/include/c++/4.8/bits/alloc_traits.h **** 109:/usr/include/c++/4.8/bits/alloc_traits.h **** _GLIBCXX_ALLOC_TR_NESTED_TYPE(const_pointer, 110:/usr/include/c++/4.8/bits/alloc_traits.h **** typename pointer_traits::template rebind) 111:/usr/include/c++/4.8/bits/alloc_traits.h **** 112:/usr/include/c++/4.8/bits/alloc_traits.h **** /** GAS LISTING /tmp/ccrAK1jU.s page 45 113:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief The allocator's const pointer type. 114:/usr/include/c++/4.8/bits/alloc_traits.h **** * 115:/usr/include/c++/4.8/bits/alloc_traits.h **** * @c Alloc::const_pointer if that type exists, otherwise 116:/usr/include/c++/4.8/bits/alloc_traits.h **** * pointer_traits::rebind 117:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 118:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef __const_pointer const_pointer; 119:/usr/include/c++/4.8/bits/alloc_traits.h **** 120:/usr/include/c++/4.8/bits/alloc_traits.h **** _GLIBCXX_ALLOC_TR_NESTED_TYPE(void_pointer, 121:/usr/include/c++/4.8/bits/alloc_traits.h **** typename pointer_traits::template rebind) 122:/usr/include/c++/4.8/bits/alloc_traits.h **** 123:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 124:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief The allocator's void pointer type. 125:/usr/include/c++/4.8/bits/alloc_traits.h **** * 126:/usr/include/c++/4.8/bits/alloc_traits.h **** * @c Alloc::void_pointer if that type exists, otherwise 127:/usr/include/c++/4.8/bits/alloc_traits.h **** * pointer_traits::rebind 128:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 129:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef __void_pointer void_pointer; 130:/usr/include/c++/4.8/bits/alloc_traits.h **** 131:/usr/include/c++/4.8/bits/alloc_traits.h **** _GLIBCXX_ALLOC_TR_NESTED_TYPE(const_void_pointer, 132:/usr/include/c++/4.8/bits/alloc_traits.h **** typename pointer_traits::template rebind) 133:/usr/include/c++/4.8/bits/alloc_traits.h **** 134:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 135:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief The allocator's const void pointer type. 136:/usr/include/c++/4.8/bits/alloc_traits.h **** * 137:/usr/include/c++/4.8/bits/alloc_traits.h **** * @c Alloc::const_void_pointer if that type exists, otherwise 138:/usr/include/c++/4.8/bits/alloc_traits.h **** * pointer_traits::rebind 139:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 140:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef __const_void_pointer const_void_pointer; 141:/usr/include/c++/4.8/bits/alloc_traits.h **** 142:/usr/include/c++/4.8/bits/alloc_traits.h **** _GLIBCXX_ALLOC_TR_NESTED_TYPE(difference_type, 143:/usr/include/c++/4.8/bits/alloc_traits.h **** typename pointer_traits::difference_type) 144:/usr/include/c++/4.8/bits/alloc_traits.h **** 145:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 146:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief The allocator's difference type 147:/usr/include/c++/4.8/bits/alloc_traits.h **** * 148:/usr/include/c++/4.8/bits/alloc_traits.h **** * @c Alloc::difference_type if that type exists, otherwise 149:/usr/include/c++/4.8/bits/alloc_traits.h **** * pointer_traits::difference_type 150:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 151:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef __difference_type difference_type; 152:/usr/include/c++/4.8/bits/alloc_traits.h **** 153:/usr/include/c++/4.8/bits/alloc_traits.h **** _GLIBCXX_ALLOC_TR_NESTED_TYPE(size_type, 154:/usr/include/c++/4.8/bits/alloc_traits.h **** typename make_unsigned::type) 155:/usr/include/c++/4.8/bits/alloc_traits.h **** 156:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 157:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief The allocator's size type 158:/usr/include/c++/4.8/bits/alloc_traits.h **** * 159:/usr/include/c++/4.8/bits/alloc_traits.h **** * @c Alloc::size_type if that type exists, otherwise 160:/usr/include/c++/4.8/bits/alloc_traits.h **** * make_unsigned::type 161:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 162:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef __size_type size_type; 163:/usr/include/c++/4.8/bits/alloc_traits.h **** 164:/usr/include/c++/4.8/bits/alloc_traits.h **** _GLIBCXX_ALLOC_TR_NESTED_TYPE(propagate_on_container_copy_assignment, 165:/usr/include/c++/4.8/bits/alloc_traits.h **** false_type) 166:/usr/include/c++/4.8/bits/alloc_traits.h **** 167:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 168:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief How the allocator is propagated on copy assignment 169:/usr/include/c++/4.8/bits/alloc_traits.h **** * GAS LISTING /tmp/ccrAK1jU.s page 46 170:/usr/include/c++/4.8/bits/alloc_traits.h **** * @c Alloc::propagate_on_container_copy_assignment if that type exists, 171:/usr/include/c++/4.8/bits/alloc_traits.h **** * otherwise @c false_type 172:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 173:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef __propagate_on_container_copy_assignment 174:/usr/include/c++/4.8/bits/alloc_traits.h **** propagate_on_container_copy_assignment; 175:/usr/include/c++/4.8/bits/alloc_traits.h **** 176:/usr/include/c++/4.8/bits/alloc_traits.h **** _GLIBCXX_ALLOC_TR_NESTED_TYPE(propagate_on_container_move_assignment, 177:/usr/include/c++/4.8/bits/alloc_traits.h **** false_type) 178:/usr/include/c++/4.8/bits/alloc_traits.h **** 179:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 180:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief How the allocator is propagated on move assignment 181:/usr/include/c++/4.8/bits/alloc_traits.h **** * 182:/usr/include/c++/4.8/bits/alloc_traits.h **** * @c Alloc::propagate_on_container_move_assignment if that type exists, 183:/usr/include/c++/4.8/bits/alloc_traits.h **** * otherwise @c false_type 184:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 185:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef __propagate_on_container_move_assignment 186:/usr/include/c++/4.8/bits/alloc_traits.h **** propagate_on_container_move_assignment; 187:/usr/include/c++/4.8/bits/alloc_traits.h **** 188:/usr/include/c++/4.8/bits/alloc_traits.h **** _GLIBCXX_ALLOC_TR_NESTED_TYPE(propagate_on_container_swap, 189:/usr/include/c++/4.8/bits/alloc_traits.h **** false_type) 190:/usr/include/c++/4.8/bits/alloc_traits.h **** 191:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 192:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief How the allocator is propagated on swap 193:/usr/include/c++/4.8/bits/alloc_traits.h **** * 194:/usr/include/c++/4.8/bits/alloc_traits.h **** * @c Alloc::propagate_on_container_swap if that type exists, 195:/usr/include/c++/4.8/bits/alloc_traits.h **** * otherwise @c false_type 196:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 197:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef __propagate_on_container_swap propagate_on_container_swap; 198:/usr/include/c++/4.8/bits/alloc_traits.h **** 199:/usr/include/c++/4.8/bits/alloc_traits.h **** #undef _GLIBCXX_ALLOC_TR_NESTED_TYPE 200:/usr/include/c++/4.8/bits/alloc_traits.h **** 201:/usr/include/c++/4.8/bits/alloc_traits.h **** template 202:/usr/include/c++/4.8/bits/alloc_traits.h **** using rebind_alloc = typename __alloctr_rebind<_Alloc, _Tp>::__type; 203:/usr/include/c++/4.8/bits/alloc_traits.h **** template 204:/usr/include/c++/4.8/bits/alloc_traits.h **** using rebind_traits = allocator_traits>; 205:/usr/include/c++/4.8/bits/alloc_traits.h **** 206:/usr/include/c++/4.8/bits/alloc_traits.h **** private: 207:/usr/include/c++/4.8/bits/alloc_traits.h **** template 208:/usr/include/c++/4.8/bits/alloc_traits.h **** struct __allocate_helper 209:/usr/include/c++/4.8/bits/alloc_traits.h **** { 210:/usr/include/c++/4.8/bits/alloc_traits.h **** template()->allocate( 212:/usr/include/c++/4.8/bits/alloc_traits.h **** std::declval(), 213:/usr/include/c++/4.8/bits/alloc_traits.h **** std::declval()))> 214:/usr/include/c++/4.8/bits/alloc_traits.h **** static true_type __test(int); 215:/usr/include/c++/4.8/bits/alloc_traits.h **** 216:/usr/include/c++/4.8/bits/alloc_traits.h **** template 217:/usr/include/c++/4.8/bits/alloc_traits.h **** static false_type __test(...); 218:/usr/include/c++/4.8/bits/alloc_traits.h **** 219:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef decltype(__test<_Alloc>(0)) type; 220:/usr/include/c++/4.8/bits/alloc_traits.h **** static const bool value = type::value; 221:/usr/include/c++/4.8/bits/alloc_traits.h **** }; 222:/usr/include/c++/4.8/bits/alloc_traits.h **** 223:/usr/include/c++/4.8/bits/alloc_traits.h **** template 224:/usr/include/c++/4.8/bits/alloc_traits.h **** static typename 225:/usr/include/c++/4.8/bits/alloc_traits.h **** enable_if<__allocate_helper<_Alloc2>::value, pointer>::type 226:/usr/include/c++/4.8/bits/alloc_traits.h **** _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint) GAS LISTING /tmp/ccrAK1jU.s page 47 227:/usr/include/c++/4.8/bits/alloc_traits.h **** { return __a.allocate(__n, __hint); } 228:/usr/include/c++/4.8/bits/alloc_traits.h **** 229:/usr/include/c++/4.8/bits/alloc_traits.h **** template 230:/usr/include/c++/4.8/bits/alloc_traits.h **** static typename 231:/usr/include/c++/4.8/bits/alloc_traits.h **** enable_if::value, pointer>::type 232:/usr/include/c++/4.8/bits/alloc_traits.h **** _S_allocate(_Alloc2& __a, size_type __n, ...) 233:/usr/include/c++/4.8/bits/alloc_traits.h **** { return __a.allocate(__n); } 234:/usr/include/c++/4.8/bits/alloc_traits.h **** 235:/usr/include/c++/4.8/bits/alloc_traits.h **** template 236:/usr/include/c++/4.8/bits/alloc_traits.h **** struct __construct_helper 237:/usr/include/c++/4.8/bits/alloc_traits.h **** { 238:/usr/include/c++/4.8/bits/alloc_traits.h **** template()->construct( 240:/usr/include/c++/4.8/bits/alloc_traits.h **** std::declval<_Tp*>(), std::declval<_Args>()...))> 241:/usr/include/c++/4.8/bits/alloc_traits.h **** static true_type __test(int); 242:/usr/include/c++/4.8/bits/alloc_traits.h **** 243:/usr/include/c++/4.8/bits/alloc_traits.h **** template 244:/usr/include/c++/4.8/bits/alloc_traits.h **** static false_type __test(...); 245:/usr/include/c++/4.8/bits/alloc_traits.h **** 246:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef decltype(__test<_Alloc>(0)) type; 247:/usr/include/c++/4.8/bits/alloc_traits.h **** static const bool value = type::value; 248:/usr/include/c++/4.8/bits/alloc_traits.h **** }; 249:/usr/include/c++/4.8/bits/alloc_traits.h **** 250:/usr/include/c++/4.8/bits/alloc_traits.h **** template 251:/usr/include/c++/4.8/bits/alloc_traits.h **** static typename 252:/usr/include/c++/4.8/bits/alloc_traits.h **** enable_if<__construct_helper<_Tp, _Args...>::value, void>::type 253:/usr/include/c++/4.8/bits/alloc_traits.h **** _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 254:/usr/include/c++/4.8/bits/alloc_traits.h **** { __a.construct(__p, std::forward<_Args>(__args)...); } 255:/usr/include/c++/4.8/bits/alloc_traits.h **** 256:/usr/include/c++/4.8/bits/alloc_traits.h **** template 257:/usr/include/c++/4.8/bits/alloc_traits.h **** static typename 258:/usr/include/c++/4.8/bits/alloc_traits.h **** enable_if<__and_<__not_<__construct_helper<_Tp, _Args...>>, 259:/usr/include/c++/4.8/bits/alloc_traits.h **** is_constructible<_Tp, _Args...>>::value, void>::type 260:/usr/include/c++/4.8/bits/alloc_traits.h **** _S_construct(_Alloc&, _Tp* __p, _Args&&... __args) 261:/usr/include/c++/4.8/bits/alloc_traits.h **** { ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); } 262:/usr/include/c++/4.8/bits/alloc_traits.h **** 263:/usr/include/c++/4.8/bits/alloc_traits.h **** template 264:/usr/include/c++/4.8/bits/alloc_traits.h **** struct __destroy_helper 265:/usr/include/c++/4.8/bits/alloc_traits.h **** { 266:/usr/include/c++/4.8/bits/alloc_traits.h **** template()->destroy( 268:/usr/include/c++/4.8/bits/alloc_traits.h **** std::declval<_Tp*>()))> 269:/usr/include/c++/4.8/bits/alloc_traits.h **** static true_type __test(int); 270:/usr/include/c++/4.8/bits/alloc_traits.h **** 271:/usr/include/c++/4.8/bits/alloc_traits.h **** template 272:/usr/include/c++/4.8/bits/alloc_traits.h **** static false_type __test(...); 273:/usr/include/c++/4.8/bits/alloc_traits.h **** 274:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef decltype(__test<_Alloc>(0)) type; 275:/usr/include/c++/4.8/bits/alloc_traits.h **** static const bool value = type::value; 276:/usr/include/c++/4.8/bits/alloc_traits.h **** }; 277:/usr/include/c++/4.8/bits/alloc_traits.h **** 278:/usr/include/c++/4.8/bits/alloc_traits.h **** template 279:/usr/include/c++/4.8/bits/alloc_traits.h **** static typename enable_if<__destroy_helper<_Tp>::value, void>::type 280:/usr/include/c++/4.8/bits/alloc_traits.h **** _S_destroy(_Alloc& __a, _Tp* __p) 281:/usr/include/c++/4.8/bits/alloc_traits.h **** { __a.destroy(__p); } 282:/usr/include/c++/4.8/bits/alloc_traits.h **** 283:/usr/include/c++/4.8/bits/alloc_traits.h **** template GAS LISTING /tmp/ccrAK1jU.s page 48 284:/usr/include/c++/4.8/bits/alloc_traits.h **** static typename enable_if::value, void>::type 285:/usr/include/c++/4.8/bits/alloc_traits.h **** _S_destroy(_Alloc&, _Tp* __p) 286:/usr/include/c++/4.8/bits/alloc_traits.h **** { __p->~_Tp(); } 287:/usr/include/c++/4.8/bits/alloc_traits.h **** 288:/usr/include/c++/4.8/bits/alloc_traits.h **** template 289:/usr/include/c++/4.8/bits/alloc_traits.h **** struct __maxsize_helper 290:/usr/include/c++/4.8/bits/alloc_traits.h **** { 291:/usr/include/c++/4.8/bits/alloc_traits.h **** template()->max_size())> 293:/usr/include/c++/4.8/bits/alloc_traits.h **** static true_type __test(int); 294:/usr/include/c++/4.8/bits/alloc_traits.h **** 295:/usr/include/c++/4.8/bits/alloc_traits.h **** template 296:/usr/include/c++/4.8/bits/alloc_traits.h **** static false_type __test(...); 297:/usr/include/c++/4.8/bits/alloc_traits.h **** 298:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef decltype(__test<_Alloc2>(0)) type; 299:/usr/include/c++/4.8/bits/alloc_traits.h **** static const bool value = type::value; 300:/usr/include/c++/4.8/bits/alloc_traits.h **** }; 301:/usr/include/c++/4.8/bits/alloc_traits.h **** 302:/usr/include/c++/4.8/bits/alloc_traits.h **** template 303:/usr/include/c++/4.8/bits/alloc_traits.h **** static typename 304:/usr/include/c++/4.8/bits/alloc_traits.h **** enable_if<__maxsize_helper<_Alloc2>::value, size_type>::type 305:/usr/include/c++/4.8/bits/alloc_traits.h **** _S_max_size(_Alloc2& __a) 306:/usr/include/c++/4.8/bits/alloc_traits.h **** { return __a.max_size(); } 307:/usr/include/c++/4.8/bits/alloc_traits.h **** 308:/usr/include/c++/4.8/bits/alloc_traits.h **** template 309:/usr/include/c++/4.8/bits/alloc_traits.h **** static typename 310:/usr/include/c++/4.8/bits/alloc_traits.h **** enable_if::value, size_type>::type 311:/usr/include/c++/4.8/bits/alloc_traits.h **** _S_max_size(_Alloc2&) 312:/usr/include/c++/4.8/bits/alloc_traits.h **** { return __gnu_cxx::__numeric_traits::__max; } 313:/usr/include/c++/4.8/bits/alloc_traits.h **** 314:/usr/include/c++/4.8/bits/alloc_traits.h **** template 315:/usr/include/c++/4.8/bits/alloc_traits.h **** struct __select_helper 316:/usr/include/c++/4.8/bits/alloc_traits.h **** { 317:/usr/include/c++/4.8/bits/alloc_traits.h **** template() 319:/usr/include/c++/4.8/bits/alloc_traits.h **** ->select_on_container_copy_construction())> 320:/usr/include/c++/4.8/bits/alloc_traits.h **** static true_type __test(int); 321:/usr/include/c++/4.8/bits/alloc_traits.h **** 322:/usr/include/c++/4.8/bits/alloc_traits.h **** template 323:/usr/include/c++/4.8/bits/alloc_traits.h **** static false_type __test(...); 324:/usr/include/c++/4.8/bits/alloc_traits.h **** 325:/usr/include/c++/4.8/bits/alloc_traits.h **** typedef decltype(__test<_Alloc2>(0)) type; 326:/usr/include/c++/4.8/bits/alloc_traits.h **** static const bool value = type::value; 327:/usr/include/c++/4.8/bits/alloc_traits.h **** }; 328:/usr/include/c++/4.8/bits/alloc_traits.h **** template 329:/usr/include/c++/4.8/bits/alloc_traits.h **** static typename 330:/usr/include/c++/4.8/bits/alloc_traits.h **** enable_if<__select_helper<_Alloc2>::value, _Alloc2>::type 331:/usr/include/c++/4.8/bits/alloc_traits.h **** _S_select(_Alloc2& __a) 332:/usr/include/c++/4.8/bits/alloc_traits.h **** { return __a.select_on_container_copy_construction(); } 333:/usr/include/c++/4.8/bits/alloc_traits.h **** 334:/usr/include/c++/4.8/bits/alloc_traits.h **** template 335:/usr/include/c++/4.8/bits/alloc_traits.h **** static typename 336:/usr/include/c++/4.8/bits/alloc_traits.h **** enable_if::value, _Alloc2>::type 337:/usr/include/c++/4.8/bits/alloc_traits.h **** _S_select(_Alloc2& __a) 463 .loc 9 337 0 464 .cfi_startproc 465 .LVL37: GAS LISTING /tmp/ccrAK1jU.s page 49 466 0000 4889F8 movq %rdi, %rax 338:/usr/include/c++/4.8/bits/alloc_traits.h **** { return __a; } 467 .loc 9 338 0 468 0003 C3 ret 469 .cfi_endproc 470 .LFE1811: 472 .section .text._ZNSt16allocator_traitsISaISsEE37select_on_container_copy_constructionERKS0_,"axG", 473 .weak _ZNSt16allocator_traitsISaISsEE37select_on_container_copy_constructionERKS0_ 475 _ZNSt16allocator_traitsISaISsEE37select_on_container_copy_constructionERKS0_: 476 .LFB1793: 339:/usr/include/c++/4.8/bits/alloc_traits.h **** 340:/usr/include/c++/4.8/bits/alloc_traits.h **** public: 341:/usr/include/c++/4.8/bits/alloc_traits.h **** 342:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 343:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief Allocate memory. 344:/usr/include/c++/4.8/bits/alloc_traits.h **** * @param __a An allocator. 345:/usr/include/c++/4.8/bits/alloc_traits.h **** * @param __n The number of objects to allocate space for. 346:/usr/include/c++/4.8/bits/alloc_traits.h **** * 347:/usr/include/c++/4.8/bits/alloc_traits.h **** * Calls @c a.allocate(n) 348:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 349:/usr/include/c++/4.8/bits/alloc_traits.h **** static pointer 350:/usr/include/c++/4.8/bits/alloc_traits.h **** allocate(_Alloc& __a, size_type __n) 351:/usr/include/c++/4.8/bits/alloc_traits.h **** { return __a.allocate(__n); } 352:/usr/include/c++/4.8/bits/alloc_traits.h **** 353:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 354:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief Allocate memory. 355:/usr/include/c++/4.8/bits/alloc_traits.h **** * @param __a An allocator. 356:/usr/include/c++/4.8/bits/alloc_traits.h **** * @param __n The number of objects to allocate space for. 357:/usr/include/c++/4.8/bits/alloc_traits.h **** * @param __hint Aid to locality. 358:/usr/include/c++/4.8/bits/alloc_traits.h **** * @return Memory of suitable size and alignment for @a n objects 359:/usr/include/c++/4.8/bits/alloc_traits.h **** * of type @c value_type 360:/usr/include/c++/4.8/bits/alloc_traits.h **** * 361:/usr/include/c++/4.8/bits/alloc_traits.h **** * Returns a.allocate(n, hint) if that expression is 362:/usr/include/c++/4.8/bits/alloc_traits.h **** * well-formed, otherwise returns @c a.allocate(n) 363:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 364:/usr/include/c++/4.8/bits/alloc_traits.h **** static pointer 365:/usr/include/c++/4.8/bits/alloc_traits.h **** allocate(_Alloc& __a, size_type __n, const_void_pointer __hint) 366:/usr/include/c++/4.8/bits/alloc_traits.h **** { return _S_allocate(__a, __n, __hint); } 367:/usr/include/c++/4.8/bits/alloc_traits.h **** 368:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 369:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief Deallocate memory. 370:/usr/include/c++/4.8/bits/alloc_traits.h **** * @param __a An allocator. 371:/usr/include/c++/4.8/bits/alloc_traits.h **** * @param __p Pointer to the memory to deallocate. 372:/usr/include/c++/4.8/bits/alloc_traits.h **** * @param __n The number of objects space was allocated for. 373:/usr/include/c++/4.8/bits/alloc_traits.h **** * 374:/usr/include/c++/4.8/bits/alloc_traits.h **** * Calls a.deallocate(p, n) 375:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 376:/usr/include/c++/4.8/bits/alloc_traits.h **** static void deallocate(_Alloc& __a, pointer __p, size_type __n) 377:/usr/include/c++/4.8/bits/alloc_traits.h **** { __a.deallocate(__p, __n); } 378:/usr/include/c++/4.8/bits/alloc_traits.h **** 379:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 380:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief Construct an object of type @a _Tp 381:/usr/include/c++/4.8/bits/alloc_traits.h **** * @param __a An allocator. 382:/usr/include/c++/4.8/bits/alloc_traits.h **** * @param __p Pointer to memory of suitable size and alignment for Tp 383:/usr/include/c++/4.8/bits/alloc_traits.h **** * @param __args Constructor arguments. 384:/usr/include/c++/4.8/bits/alloc_traits.h **** * 385:/usr/include/c++/4.8/bits/alloc_traits.h **** * Calls __a.construct(__p, std::forward(__args)...) GAS LISTING /tmp/ccrAK1jU.s page 50 386:/usr/include/c++/4.8/bits/alloc_traits.h **** * if that expression is well-formed, otherwise uses placement-new 387:/usr/include/c++/4.8/bits/alloc_traits.h **** * to construct an object of type @a _Tp at location @a __p from the 388:/usr/include/c++/4.8/bits/alloc_traits.h **** * arguments @a __args... 389:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 390:/usr/include/c++/4.8/bits/alloc_traits.h **** template 391:/usr/include/c++/4.8/bits/alloc_traits.h **** static auto construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 392:/usr/include/c++/4.8/bits/alloc_traits.h **** -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...)) 393:/usr/include/c++/4.8/bits/alloc_traits.h **** { _S_construct(__a, __p, std::forward<_Args>(__args)...); } 394:/usr/include/c++/4.8/bits/alloc_traits.h **** 395:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 396:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief Destroy an object of type @a _Tp 397:/usr/include/c++/4.8/bits/alloc_traits.h **** * @param __a An allocator. 398:/usr/include/c++/4.8/bits/alloc_traits.h **** * @param __p Pointer to the object to destroy 399:/usr/include/c++/4.8/bits/alloc_traits.h **** * 400:/usr/include/c++/4.8/bits/alloc_traits.h **** * Calls @c __a.destroy(__p) if that expression is well-formed, 401:/usr/include/c++/4.8/bits/alloc_traits.h **** * otherwise calls @c __p->~_Tp() 402:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 403:/usr/include/c++/4.8/bits/alloc_traits.h **** template 404:/usr/include/c++/4.8/bits/alloc_traits.h **** static void destroy(_Alloc& __a, _Tp* __p) 405:/usr/include/c++/4.8/bits/alloc_traits.h **** { _S_destroy(__a, __p); } 406:/usr/include/c++/4.8/bits/alloc_traits.h **** 407:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 408:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief The maximum supported allocation size 409:/usr/include/c++/4.8/bits/alloc_traits.h **** * @param __a An allocator. 410:/usr/include/c++/4.8/bits/alloc_traits.h **** * @return @c __a.max_size() or @c numeric_limits::max() 411:/usr/include/c++/4.8/bits/alloc_traits.h **** * 412:/usr/include/c++/4.8/bits/alloc_traits.h **** * Returns @c __a.max_size() if that expression is well-formed, 413:/usr/include/c++/4.8/bits/alloc_traits.h **** * otherwise returns @c numeric_limits::max() 414:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 415:/usr/include/c++/4.8/bits/alloc_traits.h **** static size_type max_size(const _Alloc& __a) 416:/usr/include/c++/4.8/bits/alloc_traits.h **** { return _S_max_size(__a); } 417:/usr/include/c++/4.8/bits/alloc_traits.h **** 418:/usr/include/c++/4.8/bits/alloc_traits.h **** /** 419:/usr/include/c++/4.8/bits/alloc_traits.h **** * @brief Obtain an allocator to use when copying a container. 420:/usr/include/c++/4.8/bits/alloc_traits.h **** * @param __rhs An allocator. 421:/usr/include/c++/4.8/bits/alloc_traits.h **** * @return @c __rhs.select_on_container_copy_construction() or @a __rhs 422:/usr/include/c++/4.8/bits/alloc_traits.h **** * 423:/usr/include/c++/4.8/bits/alloc_traits.h **** * Returns @c __rhs.select_on_container_copy_construction() if that 424:/usr/include/c++/4.8/bits/alloc_traits.h **** * expression is well-formed, otherwise returns @a __rhs 425:/usr/include/c++/4.8/bits/alloc_traits.h **** */ 426:/usr/include/c++/4.8/bits/alloc_traits.h **** static _Alloc 427:/usr/include/c++/4.8/bits/alloc_traits.h **** select_on_container_copy_construction(const _Alloc& __rhs) 477 .loc 9 427 0 478 .cfi_startproc 479 .LVL38: 480 0000 53 pushq %rbx 481 .cfi_def_cfa_offset 16 482 .cfi_offset 3, -16 483 0001 4889FB movq %rdi, %rbx 428:/usr/include/c++/4.8/bits/alloc_traits.h **** { return _S_select(__rhs); } 484 .loc 9 428 0 485 0004 E8000000 call _ZNSt16allocator_traitsISaISsEE9_S_selectIKS0_EENSt9enable_ifIXntsrNS1_15__select_helperIT_EE 485 00 486 .LVL39: 487 0009 4889D8 movq %rbx, %rax 488 000c 5B popq %rbx 489 .cfi_def_cfa_offset 8 GAS LISTING /tmp/ccrAK1jU.s page 51 490 .LVL40: 491 000d C3 ret 492 .cfi_endproc 493 .LFE1793: 495 .section .text._ZN9__gnu_cxx14__alloc_traitsISaISsEE17_S_select_on_copyERKS1_,"axG",@progbits,_ZN9 496 .weak _ZN9__gnu_cxx14__alloc_traitsISaISsEE17_S_select_on_copyERKS1_ 498 _ZN9__gnu_cxx14__alloc_traitsISaISsEE17_S_select_on_copyERKS1_: 499 .LFB1753: 500 .file 10 "/usr/include/c++/4.8/ext/alloc_traits.h" 1:/usr/include/c++/4.8/ext/alloc_traits.h **** // Allocator traits -*- C++ -*- 2:/usr/include/c++/4.8/ext/alloc_traits.h **** 3:/usr/include/c++/4.8/ext/alloc_traits.h **** // Copyright (C) 2011-2013 Free Software Foundation, Inc. 4:/usr/include/c++/4.8/ext/alloc_traits.h **** // 5:/usr/include/c++/4.8/ext/alloc_traits.h **** // This file is part of the GNU ISO C++ Library. This library is free 6:/usr/include/c++/4.8/ext/alloc_traits.h **** // software; you can redistribute it and/or modify it under the 7:/usr/include/c++/4.8/ext/alloc_traits.h **** // terms of the GNU General Public License as published by the 8:/usr/include/c++/4.8/ext/alloc_traits.h **** // Free Software Foundation; either version 3, or (at your option) 9:/usr/include/c++/4.8/ext/alloc_traits.h **** // any later version. 10:/usr/include/c++/4.8/ext/alloc_traits.h **** 11:/usr/include/c++/4.8/ext/alloc_traits.h **** // This library is distributed in the hope that it will be useful, 12:/usr/include/c++/4.8/ext/alloc_traits.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of 13:/usr/include/c++/4.8/ext/alloc_traits.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14:/usr/include/c++/4.8/ext/alloc_traits.h **** // GNU General Public License for more details. 15:/usr/include/c++/4.8/ext/alloc_traits.h **** 16:/usr/include/c++/4.8/ext/alloc_traits.h **** // Under Section 7 of GPL version 3, you are granted additional 17:/usr/include/c++/4.8/ext/alloc_traits.h **** // permissions described in the GCC Runtime Library Exception, version 18:/usr/include/c++/4.8/ext/alloc_traits.h **** // 3.1, as published by the Free Software Foundation. 19:/usr/include/c++/4.8/ext/alloc_traits.h **** 20:/usr/include/c++/4.8/ext/alloc_traits.h **** // You should have received a copy of the GNU General Public License and 21:/usr/include/c++/4.8/ext/alloc_traits.h **** // a copy of the GCC Runtime Library Exception along with this program; 22:/usr/include/c++/4.8/ext/alloc_traits.h **** // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23:/usr/include/c++/4.8/ext/alloc_traits.h **** // . 24:/usr/include/c++/4.8/ext/alloc_traits.h **** 25:/usr/include/c++/4.8/ext/alloc_traits.h **** /** @file ext/alloc_traits.h 26:/usr/include/c++/4.8/ext/alloc_traits.h **** * This file is a GNU extension to the Standard C++ Library. 27:/usr/include/c++/4.8/ext/alloc_traits.h **** */ 28:/usr/include/c++/4.8/ext/alloc_traits.h **** 29:/usr/include/c++/4.8/ext/alloc_traits.h **** #ifndef _EXT_ALLOC_TRAITS_H 30:/usr/include/c++/4.8/ext/alloc_traits.h **** #define _EXT_ALLOC_TRAITS_H 1 31:/usr/include/c++/4.8/ext/alloc_traits.h **** 32:/usr/include/c++/4.8/ext/alloc_traits.h **** #pragma GCC system_header 33:/usr/include/c++/4.8/ext/alloc_traits.h **** 34:/usr/include/c++/4.8/ext/alloc_traits.h **** #if __cplusplus >= 201103L 35:/usr/include/c++/4.8/ext/alloc_traits.h **** # include 36:/usr/include/c++/4.8/ext/alloc_traits.h **** # include 37:/usr/include/c++/4.8/ext/alloc_traits.h **** #else 38:/usr/include/c++/4.8/ext/alloc_traits.h **** # include // for __alloc_swap 39:/usr/include/c++/4.8/ext/alloc_traits.h **** #endif 40:/usr/include/c++/4.8/ext/alloc_traits.h **** 41:/usr/include/c++/4.8/ext/alloc_traits.h **** namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) 42:/usr/include/c++/4.8/ext/alloc_traits.h **** { 43:/usr/include/c++/4.8/ext/alloc_traits.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION 44:/usr/include/c++/4.8/ext/alloc_traits.h **** 45:/usr/include/c++/4.8/ext/alloc_traits.h **** #if __cplusplus >= 201103L 46:/usr/include/c++/4.8/ext/alloc_traits.h **** template 47:/usr/include/c++/4.8/ext/alloc_traits.h **** struct __allocator_always_compares_equal 48:/usr/include/c++/4.8/ext/alloc_traits.h **** { static const bool value = false; }; GAS LISTING /tmp/ccrAK1jU.s page 52 49:/usr/include/c++/4.8/ext/alloc_traits.h **** 50:/usr/include/c++/4.8/ext/alloc_traits.h **** template 51:/usr/include/c++/4.8/ext/alloc_traits.h **** const bool __allocator_always_compares_equal<_Alloc>::value; 52:/usr/include/c++/4.8/ext/alloc_traits.h **** 53:/usr/include/c++/4.8/ext/alloc_traits.h **** template 54:/usr/include/c++/4.8/ext/alloc_traits.h **** struct __allocator_always_compares_equal> 55:/usr/include/c++/4.8/ext/alloc_traits.h **** { static const bool value = true; }; 56:/usr/include/c++/4.8/ext/alloc_traits.h **** 57:/usr/include/c++/4.8/ext/alloc_traits.h **** template 58:/usr/include/c++/4.8/ext/alloc_traits.h **** const bool __allocator_always_compares_equal>::value; 59:/usr/include/c++/4.8/ext/alloc_traits.h **** 60:/usr/include/c++/4.8/ext/alloc_traits.h **** template struct array_allocator; 61:/usr/include/c++/4.8/ext/alloc_traits.h **** 62:/usr/include/c++/4.8/ext/alloc_traits.h **** template 63:/usr/include/c++/4.8/ext/alloc_traits.h **** struct __allocator_always_compares_equal> 64:/usr/include/c++/4.8/ext/alloc_traits.h **** { static const bool value = true; }; 65:/usr/include/c++/4.8/ext/alloc_traits.h **** 66:/usr/include/c++/4.8/ext/alloc_traits.h **** template 67:/usr/include/c++/4.8/ext/alloc_traits.h **** const bool 68:/usr/include/c++/4.8/ext/alloc_traits.h **** __allocator_always_compares_equal>::value; 69:/usr/include/c++/4.8/ext/alloc_traits.h **** 70:/usr/include/c++/4.8/ext/alloc_traits.h **** template struct bitmap_allocator; 71:/usr/include/c++/4.8/ext/alloc_traits.h **** 72:/usr/include/c++/4.8/ext/alloc_traits.h **** template 73:/usr/include/c++/4.8/ext/alloc_traits.h **** struct __allocator_always_compares_equal> 74:/usr/include/c++/4.8/ext/alloc_traits.h **** { static const bool value = true; }; 75:/usr/include/c++/4.8/ext/alloc_traits.h **** 76:/usr/include/c++/4.8/ext/alloc_traits.h **** template 77:/usr/include/c++/4.8/ext/alloc_traits.h **** const bool __allocator_always_compares_equal>::value; 78:/usr/include/c++/4.8/ext/alloc_traits.h **** 79:/usr/include/c++/4.8/ext/alloc_traits.h **** template struct malloc_allocator; 80:/usr/include/c++/4.8/ext/alloc_traits.h **** 81:/usr/include/c++/4.8/ext/alloc_traits.h **** template 82:/usr/include/c++/4.8/ext/alloc_traits.h **** struct __allocator_always_compares_equal> 83:/usr/include/c++/4.8/ext/alloc_traits.h **** { static const bool value = true; }; 84:/usr/include/c++/4.8/ext/alloc_traits.h **** 85:/usr/include/c++/4.8/ext/alloc_traits.h **** template 86:/usr/include/c++/4.8/ext/alloc_traits.h **** const bool __allocator_always_compares_equal>::value; 87:/usr/include/c++/4.8/ext/alloc_traits.h **** 88:/usr/include/c++/4.8/ext/alloc_traits.h **** template struct mt_allocator; 89:/usr/include/c++/4.8/ext/alloc_traits.h **** 90:/usr/include/c++/4.8/ext/alloc_traits.h **** template 91:/usr/include/c++/4.8/ext/alloc_traits.h **** struct __allocator_always_compares_equal> 92:/usr/include/c++/4.8/ext/alloc_traits.h **** { static const bool value = true; }; 93:/usr/include/c++/4.8/ext/alloc_traits.h **** 94:/usr/include/c++/4.8/ext/alloc_traits.h **** template 95:/usr/include/c++/4.8/ext/alloc_traits.h **** const bool __allocator_always_compares_equal>::value; 96:/usr/include/c++/4.8/ext/alloc_traits.h **** 97:/usr/include/c++/4.8/ext/alloc_traits.h **** template struct new_allocator; 98:/usr/include/c++/4.8/ext/alloc_traits.h **** 99:/usr/include/c++/4.8/ext/alloc_traits.h **** template 100:/usr/include/c++/4.8/ext/alloc_traits.h **** struct __allocator_always_compares_equal> 101:/usr/include/c++/4.8/ext/alloc_traits.h **** { static const bool value = true; }; 102:/usr/include/c++/4.8/ext/alloc_traits.h **** 103:/usr/include/c++/4.8/ext/alloc_traits.h **** template 104:/usr/include/c++/4.8/ext/alloc_traits.h **** const bool __allocator_always_compares_equal>::value; 105:/usr/include/c++/4.8/ext/alloc_traits.h **** GAS LISTING /tmp/ccrAK1jU.s page 53 106:/usr/include/c++/4.8/ext/alloc_traits.h **** template struct pool_allocator; 107:/usr/include/c++/4.8/ext/alloc_traits.h **** 108:/usr/include/c++/4.8/ext/alloc_traits.h **** template 109:/usr/include/c++/4.8/ext/alloc_traits.h **** struct __allocator_always_compares_equal> 110:/usr/include/c++/4.8/ext/alloc_traits.h **** { static const bool value = true; }; 111:/usr/include/c++/4.8/ext/alloc_traits.h **** 112:/usr/include/c++/4.8/ext/alloc_traits.h **** template 113:/usr/include/c++/4.8/ext/alloc_traits.h **** const bool __allocator_always_compares_equal>::value; 114:/usr/include/c++/4.8/ext/alloc_traits.h **** #endif 115:/usr/include/c++/4.8/ext/alloc_traits.h **** 116:/usr/include/c++/4.8/ext/alloc_traits.h **** /** 117:/usr/include/c++/4.8/ext/alloc_traits.h **** * @brief Uniform interface to C++98 and C++0x allocators. 118:/usr/include/c++/4.8/ext/alloc_traits.h **** * @ingroup allocators 119:/usr/include/c++/4.8/ext/alloc_traits.h **** */ 120:/usr/include/c++/4.8/ext/alloc_traits.h **** template 121:/usr/include/c++/4.8/ext/alloc_traits.h **** struct __alloc_traits 122:/usr/include/c++/4.8/ext/alloc_traits.h **** #if __cplusplus >= 201103L 123:/usr/include/c++/4.8/ext/alloc_traits.h **** : std::allocator_traits<_Alloc> 124:/usr/include/c++/4.8/ext/alloc_traits.h **** #endif 125:/usr/include/c++/4.8/ext/alloc_traits.h **** { 126:/usr/include/c++/4.8/ext/alloc_traits.h **** typedef _Alloc allocator_type; 127:/usr/include/c++/4.8/ext/alloc_traits.h **** #if __cplusplus >= 201103L 128:/usr/include/c++/4.8/ext/alloc_traits.h **** typedef std::allocator_traits<_Alloc> _Base_type; 129:/usr/include/c++/4.8/ext/alloc_traits.h **** typedef typename _Base_type::value_type value_type; 130:/usr/include/c++/4.8/ext/alloc_traits.h **** typedef typename _Base_type::pointer pointer; 131:/usr/include/c++/4.8/ext/alloc_traits.h **** typedef typename _Base_type::const_pointer const_pointer; 132:/usr/include/c++/4.8/ext/alloc_traits.h **** typedef typename _Base_type::size_type size_type; 133:/usr/include/c++/4.8/ext/alloc_traits.h **** typedef typename _Base_type::difference_type difference_type; 134:/usr/include/c++/4.8/ext/alloc_traits.h **** // C++0x allocators do not define reference or const_reference 135:/usr/include/c++/4.8/ext/alloc_traits.h **** typedef value_type& reference; 136:/usr/include/c++/4.8/ext/alloc_traits.h **** typedef const value_type& const_reference; 137:/usr/include/c++/4.8/ext/alloc_traits.h **** using _Base_type::allocate; 138:/usr/include/c++/4.8/ext/alloc_traits.h **** using _Base_type::deallocate; 139:/usr/include/c++/4.8/ext/alloc_traits.h **** using _Base_type::construct; 140:/usr/include/c++/4.8/ext/alloc_traits.h **** using _Base_type::destroy; 141:/usr/include/c++/4.8/ext/alloc_traits.h **** using _Base_type::max_size; 142:/usr/include/c++/4.8/ext/alloc_traits.h **** 143:/usr/include/c++/4.8/ext/alloc_traits.h **** private: 144:/usr/include/c++/4.8/ext/alloc_traits.h **** template 145:/usr/include/c++/4.8/ext/alloc_traits.h **** struct __is_custom_pointer 146:/usr/include/c++/4.8/ext/alloc_traits.h **** : std::integral_constant::value 147:/usr/include/c++/4.8/ext/alloc_traits.h **** && !std::is_pointer<_Ptr>::value> 148:/usr/include/c++/4.8/ext/alloc_traits.h **** { }; 149:/usr/include/c++/4.8/ext/alloc_traits.h **** 150:/usr/include/c++/4.8/ext/alloc_traits.h **** public: 151:/usr/include/c++/4.8/ext/alloc_traits.h **** // overload construct for non-standard pointer types 152:/usr/include/c++/4.8/ext/alloc_traits.h **** template 153:/usr/include/c++/4.8/ext/alloc_traits.h **** static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type 154:/usr/include/c++/4.8/ext/alloc_traits.h **** construct(_Alloc& __a, _Ptr __p, _Args&&... __args) 155:/usr/include/c++/4.8/ext/alloc_traits.h **** { 156:/usr/include/c++/4.8/ext/alloc_traits.h **** _Base_type::construct(__a, std::addressof(*__p), 157:/usr/include/c++/4.8/ext/alloc_traits.h **** std::forward<_Args>(__args)...); 158:/usr/include/c++/4.8/ext/alloc_traits.h **** } 159:/usr/include/c++/4.8/ext/alloc_traits.h **** 160:/usr/include/c++/4.8/ext/alloc_traits.h **** // overload destroy for non-standard pointer types 161:/usr/include/c++/4.8/ext/alloc_traits.h **** template 162:/usr/include/c++/4.8/ext/alloc_traits.h **** static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type GAS LISTING /tmp/ccrAK1jU.s page 54 163:/usr/include/c++/4.8/ext/alloc_traits.h **** destroy(_Alloc& __a, _Ptr __p) 164:/usr/include/c++/4.8/ext/alloc_traits.h **** { _Base_type::destroy(__a, std::addressof(*__p)); } 165:/usr/include/c++/4.8/ext/alloc_traits.h **** 166:/usr/include/c++/4.8/ext/alloc_traits.h **** static _Alloc _S_select_on_copy(const _Alloc& __a) 501 .loc 10 166 0 502 .cfi_startproc 503 .LVL41: 504 0000 53 pushq %rbx 505 .cfi_def_cfa_offset 16 506 .cfi_offset 3, -16 507 0001 4889FB movq %rdi, %rbx 167:/usr/include/c++/4.8/ext/alloc_traits.h **** { return _Base_type::select_on_container_copy_construction(__a); } 508 .loc 10 167 0 509 0004 E8000000 call _ZNSt16allocator_traitsISaISsEE37select_on_container_copy_constructionERKS0_ 509 00 510 .LVL42: 511 0009 4889D8 movq %rbx, %rax 512 000c 5B popq %rbx 513 .cfi_def_cfa_offset 8 514 .LVL43: 515 000d C3 ret 516 .cfi_endproc 517 .LFE1753: 519 .section .text._ZNK9__gnu_cxx13new_allocatorISsE8max_sizeEv,"axG",@progbits,_ZNK9__gnu_cxx13new_al 520 .align 2 521 .weak _ZNK9__gnu_cxx13new_allocatorISsE8max_sizeEv 523 _ZNK9__gnu_cxx13new_allocatorISsE8max_sizeEv: 524 .LFB1818: 111:/usr/include/c++/4.8/ext/new_allocator.h **** 112:/usr/include/c++/4.8/ext/new_allocator.h **** size_type 113:/usr/include/c++/4.8/ext/new_allocator.h **** max_size() const _GLIBCXX_USE_NOEXCEPT 525 .loc 7 113 0 526 .cfi_startproc 527 .LVL44: 114:/usr/include/c++/4.8/ext/new_allocator.h **** { return size_t(-1) / sizeof(_Tp); } 528 .loc 7 114 0 529 0000 48B8FFFF movabsq $2305843009213693951, %rax 529 FFFFFFFF 529 FF1F 530 000a C3 ret 531 .cfi_endproc 532 .LFE1818: 534 .section .text._ZN9__gnu_cxx13new_allocatorISsE8allocateEmPKv,"axG",@progbits,_ZN9__gnu_cxx13new_a 535 .align 2 536 .weak _ZN9__gnu_cxx13new_allocatorISsE8allocateEmPKv 538 _ZN9__gnu_cxx13new_allocatorISsE8allocateEmPKv: 539 .LFB1808: 99:/usr/include/c++/4.8/ext/new_allocator.h **** { 540 .loc 7 99 0 541 .cfi_startproc 542 .LVL45: 543 0000 53 pushq %rbx 544 .cfi_def_cfa_offset 16 545 .cfi_offset 3, -16 546 0001 4889F3 movq %rsi, %rbx 101:/usr/include/c++/4.8/ext/new_allocator.h **** std::__throw_bad_alloc(); 547 .loc 7 101 0 GAS LISTING /tmp/ccrAK1jU.s page 55 548 0004 E8000000 call _ZNK9__gnu_cxx13new_allocatorISsE8max_sizeEv 548 00 549 .LVL46: 550 0009 4839D8 cmpq %rbx, %rax 551 000c 7305 jae .L44 102:/usr/include/c++/4.8/ext/new_allocator.h **** 552 .loc 7 102 0 553 000e E8000000 call _ZSt17__throw_bad_allocv 553 00 554 .LVL47: 555 .L44: 104:/usr/include/c++/4.8/ext/new_allocator.h **** } 556 .loc 7 104 0 557 0013 488D3CDD leaq 0(,%rbx,8), %rdi 557 00000000 558 001b E8000000 call _Znwm 558 00 559 .LVL48: 105:/usr/include/c++/4.8/ext/new_allocator.h **** 560 .loc 7 105 0 561 0020 5B popq %rbx 562 .cfi_def_cfa_offset 8 563 .LVL49: 564 0021 C3 ret 565 .cfi_endproc 566 .LFE1808: 568 .section .text._ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm,"axG",@progbits,_ZNSt12_Vector_baseISs 569 .align 2 570 .weak _ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm 572 _ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm: 573 .LFB1790: 167:/usr/include/c++/4.8/bits/stl_vector.h **** { return __n != 0 ? _M_impl.allocate(__n) : 0; } 574 .loc 5 167 0 575 .cfi_startproc 576 .LVL50: 168:/usr/include/c++/4.8/bits/stl_vector.h **** 577 .loc 5 168 0 578 0000 B8000000 movl $0, %eax 578 00 579 0005 4885F6 testq %rsi, %rsi 580 0008 7412 je .L51 167:/usr/include/c++/4.8/bits/stl_vector.h **** { return __n != 0 ? _M_impl.allocate(__n) : 0; } 581 .loc 5 167 0 discriminator 1 582 000a 4883EC08 subq $8, %rsp 583 .cfi_def_cfa_offset 16 168:/usr/include/c++/4.8/bits/stl_vector.h **** 584 .loc 5 168 0 discriminator 1 585 000e BA000000 movl $0, %edx 585 00 586 0013 E8000000 call _ZN9__gnu_cxx13new_allocatorISsE8allocateEmPKv 586 00 587 .LVL51: 588 0018 4883C408 addq $8, %rsp 589 .cfi_def_cfa_offset 8 590 .L51: 168:/usr/include/c++/4.8/bits/stl_vector.h **** 591 .loc 5 168 0 is_stmt 0 discriminator 3 GAS LISTING /tmp/ccrAK1jU.s page 56 592 001c F3C3 rep ret 593 .cfi_endproc 594 .LFE1790: 596 .section .text._ZNSt12_Vector_baseISsSaISsEE17_M_create_storageEm,"axG",@progbits,_ZNSt12_Vector_b 597 .align 2 598 .weak _ZNSt12_Vector_baseISsSaISsEE17_M_create_storageEm 600 _ZNSt12_Vector_baseISsSaISsEE17_M_create_storageEm: 601 .LFB1797: 179:/usr/include/c++/4.8/bits/stl_vector.h **** { 602 .loc 5 179 0 is_stmt 1 603 .cfi_startproc 604 .LVL52: 605 0000 55 pushq %rbp 606 .cfi_def_cfa_offset 16 607 .cfi_offset 6, -16 608 0001 53 pushq %rbx 609 .cfi_def_cfa_offset 24 610 .cfi_offset 3, -24 611 0002 4883EC08 subq $8, %rsp 612 .cfi_def_cfa_offset 32 613 0006 4889FB movq %rdi, %rbx 614 0009 4889F5 movq %rsi, %rbp 181:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_finish = this->_M_impl._M_start; 615 .loc 5 181 0 616 000c E8000000 call _ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm 616 00 617 .LVL53: 618 0011 488903 movq %rax, (%rbx) 182:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 619 .loc 5 182 0 620 0014 48894308 movq %rax, 8(%rbx) 183:/usr/include/c++/4.8/bits/stl_vector.h **** } 621 .loc 5 183 0 622 0018 488D04E8 leaq (%rax,%rbp,8), %rax 623 001c 48894310 movq %rax, 16(%rbx) 184:/usr/include/c++/4.8/bits/stl_vector.h **** }; 624 .loc 5 184 0 625 0020 4883C408 addq $8, %rsp 626 .cfi_def_cfa_offset 24 627 0024 5B popq %rbx 628 .cfi_def_cfa_offset 16 629 .LVL54: 630 0025 5D popq %rbp 631 .cfi_def_cfa_offset 8 632 .LVL55: 633 0026 C3 ret 634 .cfi_endproc 635 .LFE1797: 637 .section .text._ZNSt12_Vector_baseISsSaISsEEC2EmRKS0_,"axG",@progbits,_ZNSt12_Vector_baseISsSaISsE 638 .align 2 639 .weak _ZNSt12_Vector_baseISsSaISsEEC2EmRKS0_ 641 _ZNSt12_Vector_baseISsSaISsEEC2EmRKS0_: 642 .LFB1756: 134:/usr/include/c++/4.8/bits/stl_vector.h **** : _M_impl(__a) 643 .loc 5 134 0 644 .cfi_startproc 645 .LVL56: GAS LISTING /tmp/ccrAK1jU.s page 57 646 0000 55 pushq %rbp 647 .cfi_def_cfa_offset 16 648 .cfi_offset 6, -16 649 0001 53 pushq %rbx 650 .cfi_def_cfa_offset 24 651 .cfi_offset 3, -24 652 0002 4883EC08 subq $8, %rsp 653 .cfi_def_cfa_offset 32 654 0006 4889FB movq %rdi, %rbx 655 0009 4889F5 movq %rsi, %rbp 656 .LBB7: 135:/usr/include/c++/4.8/bits/stl_vector.h **** { _M_create_storage(__n); } 657 .loc 5 135 0 658 000c 4889D6 movq %rdx, %rsi 659 .LVL57: 660 000f E8000000 call _ZNSt12_Vector_baseISsSaISsEE12_Vector_implC1ERKS0_ 660 00 661 .LVL58: 136:/usr/include/c++/4.8/bits/stl_vector.h **** 662 .loc 5 136 0 663 0014 4889EE movq %rbp, %rsi 664 0017 4889DF movq %rbx, %rdi 665 001a E8000000 call _ZNSt12_Vector_baseISsSaISsEE17_M_create_storageEm 665 00 666 .LVL59: 667 .LBE7: 668 001f 4883C408 addq $8, %rsp 669 .cfi_def_cfa_offset 24 670 0023 5B popq %rbx 671 .cfi_def_cfa_offset 16 672 .LVL60: 673 0024 5D popq %rbp 674 .cfi_def_cfa_offset 8 675 .LVL61: 676 0025 C3 ret 677 .cfi_endproc 678 .LFE1756: 680 .weak _ZNSt12_Vector_baseISsSaISsEEC1EmRKS0_ 681 .set _ZNSt12_Vector_baseISsSaISsEEC1EmRKS0_,_ZNSt12_Vector_baseISsSaISsEEC2EmRKS0_ 682 .section .text._ZSt11__addressofISsEPT_RS0_,"axG",@progbits,_ZSt11__addressofISsEPT_RS0_,comdat 683 .weak _ZSt11__addressofISsEPT_RS0_ 685 _ZSt11__addressofISsEPT_RS0_: 686 .LFB1820: 687 .file 11 "/usr/include/c++/4.8/bits/move.h" 1:/usr/include/c++/4.8/bits/move.h **** // Move, forward and identity for C++0x + swap -*- C++ -*- 2:/usr/include/c++/4.8/bits/move.h **** 3:/usr/include/c++/4.8/bits/move.h **** // Copyright (C) 2007-2013 Free Software Foundation, Inc. 4:/usr/include/c++/4.8/bits/move.h **** // 5:/usr/include/c++/4.8/bits/move.h **** // This file is part of the GNU ISO C++ Library. This library is free 6:/usr/include/c++/4.8/bits/move.h **** // software; you can redistribute it and/or modify it under the 7:/usr/include/c++/4.8/bits/move.h **** // terms of the GNU General Public License as published by the 8:/usr/include/c++/4.8/bits/move.h **** // Free Software Foundation; either version 3, or (at your option) 9:/usr/include/c++/4.8/bits/move.h **** // any later version. 10:/usr/include/c++/4.8/bits/move.h **** 11:/usr/include/c++/4.8/bits/move.h **** // This library is distributed in the hope that it will be useful, 12:/usr/include/c++/4.8/bits/move.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of 13:/usr/include/c++/4.8/bits/move.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GAS LISTING /tmp/ccrAK1jU.s page 58 14:/usr/include/c++/4.8/bits/move.h **** // GNU General Public License for more details. 15:/usr/include/c++/4.8/bits/move.h **** 16:/usr/include/c++/4.8/bits/move.h **** // Under Section 7 of GPL version 3, you are granted additional 17:/usr/include/c++/4.8/bits/move.h **** // permissions described in the GCC Runtime Library Exception, version 18:/usr/include/c++/4.8/bits/move.h **** // 3.1, as published by the Free Software Foundation. 19:/usr/include/c++/4.8/bits/move.h **** 20:/usr/include/c++/4.8/bits/move.h **** // You should have received a copy of the GNU General Public License and 21:/usr/include/c++/4.8/bits/move.h **** // a copy of the GCC Runtime Library Exception along with this program; 22:/usr/include/c++/4.8/bits/move.h **** // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23:/usr/include/c++/4.8/bits/move.h **** // . 24:/usr/include/c++/4.8/bits/move.h **** 25:/usr/include/c++/4.8/bits/move.h **** /** @file bits/move.h 26:/usr/include/c++/4.8/bits/move.h **** * This is an internal header file, included by other library headers. 27:/usr/include/c++/4.8/bits/move.h **** * Do not attempt to use it directly. @headername{utility} 28:/usr/include/c++/4.8/bits/move.h **** */ 29:/usr/include/c++/4.8/bits/move.h **** 30:/usr/include/c++/4.8/bits/move.h **** #ifndef _MOVE_H 31:/usr/include/c++/4.8/bits/move.h **** #define _MOVE_H 1 32:/usr/include/c++/4.8/bits/move.h **** 33:/usr/include/c++/4.8/bits/move.h **** #include 34:/usr/include/c++/4.8/bits/move.h **** #include 35:/usr/include/c++/4.8/bits/move.h **** 36:/usr/include/c++/4.8/bits/move.h **** namespace std _GLIBCXX_VISIBILITY(default) 37:/usr/include/c++/4.8/bits/move.h **** { 38:/usr/include/c++/4.8/bits/move.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION 39:/usr/include/c++/4.8/bits/move.h **** 40:/usr/include/c++/4.8/bits/move.h **** // Used, in C++03 mode too, by allocators, etc. 41:/usr/include/c++/4.8/bits/move.h **** /** 42:/usr/include/c++/4.8/bits/move.h **** * @brief Same as C++11 std::addressof 43:/usr/include/c++/4.8/bits/move.h **** * @ingroup utilities 44:/usr/include/c++/4.8/bits/move.h **** */ 45:/usr/include/c++/4.8/bits/move.h **** template 46:/usr/include/c++/4.8/bits/move.h **** inline _Tp* 47:/usr/include/c++/4.8/bits/move.h **** __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT 688 .loc 11 47 0 689 .cfi_startproc 690 .LVL62: 691 0000 4889F8 movq %rdi, %rax 48:/usr/include/c++/4.8/bits/move.h **** { 49:/usr/include/c++/4.8/bits/move.h **** return reinterpret_cast<_Tp*> 50:/usr/include/c++/4.8/bits/move.h **** (&const_cast(reinterpret_cast(__r))); 51:/usr/include/c++/4.8/bits/move.h **** } 692 .loc 11 51 0 693 0003 C3 ret 694 .cfi_endproc 695 .LFE1820: 697 .section .text._ZSt8_DestroyISsEvPT_,"axG",@progbits,_ZSt8_DestroyISsEvPT_,comdat 698 .weak _ZSt8_DestroyISsEvPT_ 700 _ZSt8_DestroyISsEvPT_: 701 .LFB1821: 702 .file 12 "/usr/include/c++/4.8/bits/stl_construct.h" 1:/usr/include/c++/4.8/bits/stl_construct.h **** // nonstandard construct and destroy functions -*- C++ -*- 2:/usr/include/c++/4.8/bits/stl_construct.h **** 3:/usr/include/c++/4.8/bits/stl_construct.h **** // Copyright (C) 2001-2013 Free Software Foundation, Inc. 4:/usr/include/c++/4.8/bits/stl_construct.h **** // 5:/usr/include/c++/4.8/bits/stl_construct.h **** // This file is part of the GNU ISO C++ Library. This library is free 6:/usr/include/c++/4.8/bits/stl_construct.h **** // software; you can redistribute it and/or modify it under the GAS LISTING /tmp/ccrAK1jU.s page 59 7:/usr/include/c++/4.8/bits/stl_construct.h **** // terms of the GNU General Public License as published by the 8:/usr/include/c++/4.8/bits/stl_construct.h **** // Free Software Foundation; either version 3, or (at your option) 9:/usr/include/c++/4.8/bits/stl_construct.h **** // any later version. 10:/usr/include/c++/4.8/bits/stl_construct.h **** 11:/usr/include/c++/4.8/bits/stl_construct.h **** // This library is distributed in the hope that it will be useful, 12:/usr/include/c++/4.8/bits/stl_construct.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of 13:/usr/include/c++/4.8/bits/stl_construct.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14:/usr/include/c++/4.8/bits/stl_construct.h **** // GNU General Public License for more details. 15:/usr/include/c++/4.8/bits/stl_construct.h **** 16:/usr/include/c++/4.8/bits/stl_construct.h **** // Under Section 7 of GPL version 3, you are granted additional 17:/usr/include/c++/4.8/bits/stl_construct.h **** // permissions described in the GCC Runtime Library Exception, version 18:/usr/include/c++/4.8/bits/stl_construct.h **** // 3.1, as published by the Free Software Foundation. 19:/usr/include/c++/4.8/bits/stl_construct.h **** 20:/usr/include/c++/4.8/bits/stl_construct.h **** // You should have received a copy of the GNU General Public License and 21:/usr/include/c++/4.8/bits/stl_construct.h **** // a copy of the GCC Runtime Library Exception along with this program; 22:/usr/include/c++/4.8/bits/stl_construct.h **** // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23:/usr/include/c++/4.8/bits/stl_construct.h **** // . 24:/usr/include/c++/4.8/bits/stl_construct.h **** 25:/usr/include/c++/4.8/bits/stl_construct.h **** /* 26:/usr/include/c++/4.8/bits/stl_construct.h **** * 27:/usr/include/c++/4.8/bits/stl_construct.h **** * Copyright (c) 1994 28:/usr/include/c++/4.8/bits/stl_construct.h **** * Hewlett-Packard Company 29:/usr/include/c++/4.8/bits/stl_construct.h **** * 30:/usr/include/c++/4.8/bits/stl_construct.h **** * Permission to use, copy, modify, distribute and sell this software 31:/usr/include/c++/4.8/bits/stl_construct.h **** * and its documentation for any purpose is hereby granted without fee, 32:/usr/include/c++/4.8/bits/stl_construct.h **** * provided that the above copyright notice appear in all copies and 33:/usr/include/c++/4.8/bits/stl_construct.h **** * that both that copyright notice and this permission notice appear 34:/usr/include/c++/4.8/bits/stl_construct.h **** * in supporting documentation. Hewlett-Packard Company makes no 35:/usr/include/c++/4.8/bits/stl_construct.h **** * representations about the suitability of this software for any 36:/usr/include/c++/4.8/bits/stl_construct.h **** * purpose. It is provided "as is" without express or implied warranty. 37:/usr/include/c++/4.8/bits/stl_construct.h **** * 38:/usr/include/c++/4.8/bits/stl_construct.h **** * 39:/usr/include/c++/4.8/bits/stl_construct.h **** * Copyright (c) 1996,1997 40:/usr/include/c++/4.8/bits/stl_construct.h **** * Silicon Graphics Computer Systems, Inc. 41:/usr/include/c++/4.8/bits/stl_construct.h **** * 42:/usr/include/c++/4.8/bits/stl_construct.h **** * Permission to use, copy, modify, distribute and sell this software 43:/usr/include/c++/4.8/bits/stl_construct.h **** * and its documentation for any purpose is hereby granted without fee, 44:/usr/include/c++/4.8/bits/stl_construct.h **** * provided that the above copyright notice appear in all copies and 45:/usr/include/c++/4.8/bits/stl_construct.h **** * that both that copyright notice and this permission notice appear 46:/usr/include/c++/4.8/bits/stl_construct.h **** * in supporting documentation. Silicon Graphics makes no 47:/usr/include/c++/4.8/bits/stl_construct.h **** * representations about the suitability of this software for any 48:/usr/include/c++/4.8/bits/stl_construct.h **** * purpose. It is provided "as is" without express or implied warranty. 49:/usr/include/c++/4.8/bits/stl_construct.h **** */ 50:/usr/include/c++/4.8/bits/stl_construct.h **** 51:/usr/include/c++/4.8/bits/stl_construct.h **** /** @file bits/stl_construct.h 52:/usr/include/c++/4.8/bits/stl_construct.h **** * This is an internal header file, included by other library headers. 53:/usr/include/c++/4.8/bits/stl_construct.h **** * Do not attempt to use it directly. @headername{memory} 54:/usr/include/c++/4.8/bits/stl_construct.h **** */ 55:/usr/include/c++/4.8/bits/stl_construct.h **** 56:/usr/include/c++/4.8/bits/stl_construct.h **** #ifndef _STL_CONSTRUCT_H 57:/usr/include/c++/4.8/bits/stl_construct.h **** #define _STL_CONSTRUCT_H 1 58:/usr/include/c++/4.8/bits/stl_construct.h **** 59:/usr/include/c++/4.8/bits/stl_construct.h **** #include 60:/usr/include/c++/4.8/bits/stl_construct.h **** #include 61:/usr/include/c++/4.8/bits/stl_construct.h **** #include 62:/usr/include/c++/4.8/bits/stl_construct.h **** 63:/usr/include/c++/4.8/bits/stl_construct.h **** namespace std _GLIBCXX_VISIBILITY(default) GAS LISTING /tmp/ccrAK1jU.s page 60 64:/usr/include/c++/4.8/bits/stl_construct.h **** { 65:/usr/include/c++/4.8/bits/stl_construct.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION 66:/usr/include/c++/4.8/bits/stl_construct.h **** 67:/usr/include/c++/4.8/bits/stl_construct.h **** /** 68:/usr/include/c++/4.8/bits/stl_construct.h **** * Constructs an object in existing memory by invoking an allocated 69:/usr/include/c++/4.8/bits/stl_construct.h **** * object's constructor with an initializer. 70:/usr/include/c++/4.8/bits/stl_construct.h **** */ 71:/usr/include/c++/4.8/bits/stl_construct.h **** #if __cplusplus >= 201103L 72:/usr/include/c++/4.8/bits/stl_construct.h **** template 73:/usr/include/c++/4.8/bits/stl_construct.h **** inline void 74:/usr/include/c++/4.8/bits/stl_construct.h **** _Construct(_T1* __p, _Args&&... __args) 75:/usr/include/c++/4.8/bits/stl_construct.h **** { ::new(static_cast(__p)) _T1(std::forward<_Args>(__args)...); } 76:/usr/include/c++/4.8/bits/stl_construct.h **** #else 77:/usr/include/c++/4.8/bits/stl_construct.h **** template 78:/usr/include/c++/4.8/bits/stl_construct.h **** inline void 79:/usr/include/c++/4.8/bits/stl_construct.h **** _Construct(_T1* __p, const _T2& __value) 80:/usr/include/c++/4.8/bits/stl_construct.h **** { 81:/usr/include/c++/4.8/bits/stl_construct.h **** // _GLIBCXX_RESOLVE_LIB_DEFECTS 82:/usr/include/c++/4.8/bits/stl_construct.h **** // 402. wrong new expression in [some_]allocator::construct 83:/usr/include/c++/4.8/bits/stl_construct.h **** ::new(static_cast(__p)) _T1(__value); 84:/usr/include/c++/4.8/bits/stl_construct.h **** } 85:/usr/include/c++/4.8/bits/stl_construct.h **** #endif 86:/usr/include/c++/4.8/bits/stl_construct.h **** 87:/usr/include/c++/4.8/bits/stl_construct.h **** /** 88:/usr/include/c++/4.8/bits/stl_construct.h **** * Destroy the object pointed to by a pointer type. 89:/usr/include/c++/4.8/bits/stl_construct.h **** */ 90:/usr/include/c++/4.8/bits/stl_construct.h **** template 91:/usr/include/c++/4.8/bits/stl_construct.h **** inline void 92:/usr/include/c++/4.8/bits/stl_construct.h **** _Destroy(_Tp* __pointer) 703 .loc 12 92 0 704 .cfi_startproc 705 .LVL63: 706 0000 4883EC08 subq $8, %rsp 707 .cfi_def_cfa_offset 16 93:/usr/include/c++/4.8/bits/stl_construct.h **** { __pointer->~_Tp(); } 708 .loc 12 93 0 709 0004 E8000000 call _ZNSsD1Ev 709 00 710 .LVL64: 711 0009 4883C408 addq $8, %rsp 712 .cfi_def_cfa_offset 8 713 000d C3 ret 714 .cfi_endproc 715 .LFE1821: 717 .section .text._ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_,"axG",@progbits,_ZNSt12_Destroy_aux 718 .weak _ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_ 720 _ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_: 721 .LFB1810: 94:/usr/include/c++/4.8/bits/stl_construct.h **** 95:/usr/include/c++/4.8/bits/stl_construct.h **** template 96:/usr/include/c++/4.8/bits/stl_construct.h **** struct _Destroy_aux 97:/usr/include/c++/4.8/bits/stl_construct.h **** { 98:/usr/include/c++/4.8/bits/stl_construct.h **** template 99:/usr/include/c++/4.8/bits/stl_construct.h **** static void 100:/usr/include/c++/4.8/bits/stl_construct.h **** __destroy(_ForwardIterator __first, _ForwardIterator __last) 722 .loc 12 100 0 723 .cfi_startproc GAS LISTING /tmp/ccrAK1jU.s page 61 724 .LVL65: 725 0000 55 pushq %rbp 726 .cfi_def_cfa_offset 16 727 .cfi_offset 6, -16 728 0001 53 pushq %rbx 729 .cfi_def_cfa_offset 24 730 .cfi_offset 3, -24 731 0002 4883EC08 subq $8, %rsp 732 .cfi_def_cfa_offset 32 733 0006 4889FB movq %rdi, %rbx 734 0009 4889F5 movq %rsi, %rbp 101:/usr/include/c++/4.8/bits/stl_construct.h **** { 102:/usr/include/c++/4.8/bits/stl_construct.h **** for (; __first != __last; ++__first) 735 .loc 12 102 0 736 000c 4839F7 cmpq %rsi, %rdi 737 000f 7419 je .L59 738 .LVL66: 739 .L61: 103:/usr/include/c++/4.8/bits/stl_construct.h **** std::_Destroy(std::__addressof(*__first)); 740 .loc 12 103 0 discriminator 2 741 0011 4889DF movq %rbx, %rdi 742 0014 E8000000 call _ZSt11__addressofISsEPT_RS0_ 742 00 743 .LVL67: 744 0019 4889C7 movq %rax, %rdi 745 001c E8000000 call _ZSt8_DestroyISsEvPT_ 745 00 746 .LVL68: 102:/usr/include/c++/4.8/bits/stl_construct.h **** std::_Destroy(std::__addressof(*__first)); 747 .loc 12 102 0 discriminator 2 748 0021 4883C308 addq $8, %rbx 749 .LVL69: 750 0025 4839DD cmpq %rbx, %rbp 751 0028 75E7 jne .L61 752 .L59: 104:/usr/include/c++/4.8/bits/stl_construct.h **** } 753 .loc 12 104 0 754 002a 4883C408 addq $8, %rsp 755 .cfi_def_cfa_offset 24 756 002e 5B popq %rbx 757 .cfi_def_cfa_offset 16 758 .LVL70: 759 002f 5D popq %rbp 760 .cfi_def_cfa_offset 8 761 .LVL71: 762 0030 C3 ret 763 .cfi_endproc 764 .LFE1810: 766 .section .text._ZSt8_DestroyIPSsEvT_S1_,"axG",@progbits,_ZSt8_DestroyIPSsEvT_S1_,comdat 767 .weak _ZSt8_DestroyIPSsEvT_S1_ 769 _ZSt8_DestroyIPSsEvT_S1_: 770 .LFB1792: 105:/usr/include/c++/4.8/bits/stl_construct.h **** }; 106:/usr/include/c++/4.8/bits/stl_construct.h **** 107:/usr/include/c++/4.8/bits/stl_construct.h **** template<> 108:/usr/include/c++/4.8/bits/stl_construct.h **** struct _Destroy_aux 109:/usr/include/c++/4.8/bits/stl_construct.h **** { GAS LISTING /tmp/ccrAK1jU.s page 62 110:/usr/include/c++/4.8/bits/stl_construct.h **** template 111:/usr/include/c++/4.8/bits/stl_construct.h **** static void 112:/usr/include/c++/4.8/bits/stl_construct.h **** __destroy(_ForwardIterator, _ForwardIterator) { } 113:/usr/include/c++/4.8/bits/stl_construct.h **** }; 114:/usr/include/c++/4.8/bits/stl_construct.h **** 115:/usr/include/c++/4.8/bits/stl_construct.h **** /** 116:/usr/include/c++/4.8/bits/stl_construct.h **** * Destroy a range of objects. If the value_type of the object has 117:/usr/include/c++/4.8/bits/stl_construct.h **** * a trivial destructor, the compiler should optimize all of this 118:/usr/include/c++/4.8/bits/stl_construct.h **** * away, otherwise the objects' destructors must be invoked. 119:/usr/include/c++/4.8/bits/stl_construct.h **** */ 120:/usr/include/c++/4.8/bits/stl_construct.h **** template 121:/usr/include/c++/4.8/bits/stl_construct.h **** inline void 122:/usr/include/c++/4.8/bits/stl_construct.h **** _Destroy(_ForwardIterator __first, _ForwardIterator __last) 771 .loc 12 122 0 772 .cfi_startproc 773 .LVL72: 774 0000 4883EC08 subq $8, %rsp 775 .cfi_def_cfa_offset 16 776 .LBB8: 123:/usr/include/c++/4.8/bits/stl_construct.h **** { 124:/usr/include/c++/4.8/bits/stl_construct.h **** typedef typename iterator_traits<_ForwardIterator>::value_type 125:/usr/include/c++/4.8/bits/stl_construct.h **** _Value_type; 126:/usr/include/c++/4.8/bits/stl_construct.h **** std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: 777 .loc 12 126 0 778 0004 E8000000 call _ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_ 778 00 779 .LVL73: 780 .LBE8: 127:/usr/include/c++/4.8/bits/stl_construct.h **** __destroy(__first, __last); 128:/usr/include/c++/4.8/bits/stl_construct.h **** } 781 .loc 12 128 0 782 0009 4883C408 addq $8, %rsp 783 .cfi_def_cfa_offset 8 784 000d C3 ret 785 .cfi_endproc 786 .LFE1792: 788 .section .text._ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E,"axG",@progbits,_ZSt8_DestroyIPSsSsEvT_S1_RSaIT0 789 .weak _ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E 791 _ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E: 792 .LFB1751: 129:/usr/include/c++/4.8/bits/stl_construct.h **** 130:/usr/include/c++/4.8/bits/stl_construct.h **** /** 131:/usr/include/c++/4.8/bits/stl_construct.h **** * Destroy a range of objects using the supplied allocator. For 132:/usr/include/c++/4.8/bits/stl_construct.h **** * nondefault allocators we do not optimize away invocation of 133:/usr/include/c++/4.8/bits/stl_construct.h **** * destroy() even if _Tp has a trivial destructor. 134:/usr/include/c++/4.8/bits/stl_construct.h **** */ 135:/usr/include/c++/4.8/bits/stl_construct.h **** 136:/usr/include/c++/4.8/bits/stl_construct.h **** template 137:/usr/include/c++/4.8/bits/stl_construct.h **** void 138:/usr/include/c++/4.8/bits/stl_construct.h **** _Destroy(_ForwardIterator __first, _ForwardIterator __last, 139:/usr/include/c++/4.8/bits/stl_construct.h **** _Allocator& __alloc) 140:/usr/include/c++/4.8/bits/stl_construct.h **** { 141:/usr/include/c++/4.8/bits/stl_construct.h **** typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 142:/usr/include/c++/4.8/bits/stl_construct.h **** for (; __first != __last; ++__first) 143:/usr/include/c++/4.8/bits/stl_construct.h **** __traits::destroy(__alloc, std::__addressof(*__first)); 144:/usr/include/c++/4.8/bits/stl_construct.h **** } 145:/usr/include/c++/4.8/bits/stl_construct.h **** GAS LISTING /tmp/ccrAK1jU.s page 63 146:/usr/include/c++/4.8/bits/stl_construct.h **** template 147:/usr/include/c++/4.8/bits/stl_construct.h **** inline void 148:/usr/include/c++/4.8/bits/stl_construct.h **** _Destroy(_ForwardIterator __first, _ForwardIterator __last, 793 .loc 12 148 0 794 .cfi_startproc 795 .LVL74: 796 0000 4883EC08 subq $8, %rsp 797 .cfi_def_cfa_offset 16 149:/usr/include/c++/4.8/bits/stl_construct.h **** allocator<_Tp>&) 150:/usr/include/c++/4.8/bits/stl_construct.h **** { 151:/usr/include/c++/4.8/bits/stl_construct.h **** _Destroy(__first, __last); 798 .loc 12 151 0 799 0004 E8000000 call _ZSt8_DestroyIPSsEvT_S1_ 799 00 800 .LVL75: 152:/usr/include/c++/4.8/bits/stl_construct.h **** } 801 .loc 12 152 0 802 0009 4883C408 addq $8, %rsp 803 .cfi_def_cfa_offset 8 804 000d C3 ret 805 .cfi_endproc 806 .LFE1751: 808 .section .text._ZNSt6vectorISsSaISsEED2Ev,"axG",@progbits,_ZNSt6vectorISsSaISsEED5Ev,comdat 809 .align 2 810 .weak _ZNSt6vectorISsSaISsEED2Ev 812 _ZNSt6vectorISsSaISsEED2Ev: 813 .LFB1684: 414:/usr/include/c++/4.8/bits/stl_vector.h **** { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 814 .loc 5 414 0 815 .cfi_startproc 816 .LVL76: 817 0000 53 pushq %rbx 818 .cfi_def_cfa_offset 16 819 .cfi_offset 3, -16 820 0001 4889FB movq %rdi, %rbx 821 .LBB9: 416:/usr/include/c++/4.8/bits/stl_vector.h **** 822 .loc 5 416 0 823 0004 E8000000 call _ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv 823 00 824 .LVL77: 415:/usr/include/c++/4.8/bits/stl_vector.h **** _M_get_Tp_allocator()); } 825 .loc 5 415 0 826 0009 488B7308 movq 8(%rbx), %rsi 827 000d 4889C2 movq %rax, %rdx 828 0010 488B3B movq (%rbx), %rdi 829 0013 E8000000 call _ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E 829 00 830 .LVL78: 416:/usr/include/c++/4.8/bits/stl_vector.h **** 831 .loc 5 416 0 832 0018 4889DF movq %rbx, %rdi 833 001b E8000000 call _ZNSt12_Vector_baseISsSaISsEED2Ev 833 00 834 .LVL79: 835 .LBE9: 836 0020 5B popq %rbx GAS LISTING /tmp/ccrAK1jU.s page 64 837 .cfi_def_cfa_offset 8 838 .LVL80: 839 0021 C3 ret 840 .cfi_endproc 841 .LFE1684: 843 .weak _ZNSt6vectorISsSaISsEED1Ev 844 .set _ZNSt6vectorISsSaISsEED1Ev,_ZNSt6vectorISsSaISsEED2Ev 845 .section .text._ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEppEv,"axG",@progbits,_ZN9_ 846 .align 2 847 .weak _ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEppEv 849 _ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEppEv: 850 .LFB1823: 727:/usr/include/c++/4.8/bits/stl_iterator.h **** 728:/usr/include/c++/4.8/bits/stl_iterator.h **** // Allow iterator to const_iterator conversion 729:/usr/include/c++/4.8/bits/stl_iterator.h **** template 730:/usr/include/c++/4.8/bits/stl_iterator.h **** __normal_iterator(const __normal_iterator<_Iter, 731:/usr/include/c++/4.8/bits/stl_iterator.h **** typename __enable_if< 732:/usr/include/c++/4.8/bits/stl_iterator.h **** (std::__are_same<_Iter, typename _Container::pointer>::__value), 733:/usr/include/c++/4.8/bits/stl_iterator.h **** _Container>::__type>& __i) 734:/usr/include/c++/4.8/bits/stl_iterator.h **** : _M_current(__i.base()) { } 735:/usr/include/c++/4.8/bits/stl_iterator.h **** 736:/usr/include/c++/4.8/bits/stl_iterator.h **** // Forward iterator requirements 737:/usr/include/c++/4.8/bits/stl_iterator.h **** reference 738:/usr/include/c++/4.8/bits/stl_iterator.h **** operator*() const 739:/usr/include/c++/4.8/bits/stl_iterator.h **** { return *_M_current; } 740:/usr/include/c++/4.8/bits/stl_iterator.h **** 741:/usr/include/c++/4.8/bits/stl_iterator.h **** pointer 742:/usr/include/c++/4.8/bits/stl_iterator.h **** operator->() const 743:/usr/include/c++/4.8/bits/stl_iterator.h **** { return _M_current; } 744:/usr/include/c++/4.8/bits/stl_iterator.h **** 745:/usr/include/c++/4.8/bits/stl_iterator.h **** __normal_iterator& 746:/usr/include/c++/4.8/bits/stl_iterator.h **** operator++() 851 .loc 6 746 0 852 .cfi_startproc 853 .LVL81: 854 0000 4889F8 movq %rdi, %rax 747:/usr/include/c++/4.8/bits/stl_iterator.h **** { 748:/usr/include/c++/4.8/bits/stl_iterator.h **** ++_M_current; 855 .loc 6 748 0 856 0003 48830708 addq $8, (%rdi) 749:/usr/include/c++/4.8/bits/stl_iterator.h **** return *this; 750:/usr/include/c++/4.8/bits/stl_iterator.h **** } 857 .loc 6 750 0 858 0007 C3 ret 859 .cfi_endproc 860 .LFE1823: 862 .section .text._ZNK9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEdeEv,"axG",@progbits,_ZNK 863 .align 2 864 .weak _ZNK9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEdeEv 866 _ZNK9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEdeEv: 867 .LFB1824: 738:/usr/include/c++/4.8/bits/stl_iterator.h **** { return *_M_current; } 868 .loc 6 738 0 869 .cfi_startproc 870 .LVL82: 739:/usr/include/c++/4.8/bits/stl_iterator.h **** 871 .loc 6 739 0 GAS LISTING /tmp/ccrAK1jU.s page 65 872 0000 488B07 movq (%rdi), %rax 873 0003 C3 ret 874 .cfi_endproc 875 .LFE1824: 877 .section .text._ZSt7forwardIRKSsEOT_RNSt16remove_referenceIS2_E4typeE,"axG",@progbits,_ZSt7forward 878 .weak _ZSt7forwardIRKSsEOT_RNSt16remove_referenceIS2_E4typeE 880 _ZSt7forwardIRKSsEOT_RNSt16remove_referenceIS2_E4typeE: 881 .LFB1826: 52:/usr/include/c++/4.8/bits/move.h **** 53:/usr/include/c++/4.8/bits/move.h **** _GLIBCXX_END_NAMESPACE_VERSION 54:/usr/include/c++/4.8/bits/move.h **** } // namespace 55:/usr/include/c++/4.8/bits/move.h **** 56:/usr/include/c++/4.8/bits/move.h **** #if __cplusplus >= 201103L 57:/usr/include/c++/4.8/bits/move.h **** #include // Brings in std::declval too. 58:/usr/include/c++/4.8/bits/move.h **** 59:/usr/include/c++/4.8/bits/move.h **** namespace std _GLIBCXX_VISIBILITY(default) 60:/usr/include/c++/4.8/bits/move.h **** { 61:/usr/include/c++/4.8/bits/move.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION 62:/usr/include/c++/4.8/bits/move.h **** 63:/usr/include/c++/4.8/bits/move.h **** /** 64:/usr/include/c++/4.8/bits/move.h **** * @addtogroup utilities 65:/usr/include/c++/4.8/bits/move.h **** * @{ 66:/usr/include/c++/4.8/bits/move.h **** */ 67:/usr/include/c++/4.8/bits/move.h **** 68:/usr/include/c++/4.8/bits/move.h **** /** 69:/usr/include/c++/4.8/bits/move.h **** * @brief Forward an lvalue. 70:/usr/include/c++/4.8/bits/move.h **** * @return The parameter cast to the specified type. 71:/usr/include/c++/4.8/bits/move.h **** * 72:/usr/include/c++/4.8/bits/move.h **** * This function is used to implement "perfect forwarding". 73:/usr/include/c++/4.8/bits/move.h **** */ 74:/usr/include/c++/4.8/bits/move.h **** template 75:/usr/include/c++/4.8/bits/move.h **** constexpr _Tp&& 76:/usr/include/c++/4.8/bits/move.h **** forward(typename std::remove_reference<_Tp>::type& __t) noexcept 882 .loc 11 76 0 883 .cfi_startproc 884 .LVL83: 885 0000 4889F8 movq %rdi, %rax 77:/usr/include/c++/4.8/bits/move.h **** { return static_cast<_Tp&&>(__t); } 886 .loc 11 77 0 887 0003 C3 ret 888 .cfi_endproc 889 .LFE1826: 891 .section .text._ZSt10_ConstructISsIRKSsEEvPT_DpOT0_,"axG",@progbits,_ZSt10_ConstructISsIRKSsEEvPT_ 892 .weak _ZSt10_ConstructISsIRKSsEEvPT_DpOT0_ 894 _ZSt10_ConstructISsIRKSsEEvPT_DpOT0_: 895 .LFB1825: 74:/usr/include/c++/4.8/bits/stl_construct.h **** { ::new(static_cast(__p)) _T1(std::forward<_Args>(__args)...); } 896 .loc 12 74 0 897 .cfi_startproc 898 .LVL84: 899 0000 55 pushq %rbp 900 .cfi_def_cfa_offset 16 901 .cfi_offset 6, -16 902 0001 53 pushq %rbx 903 .cfi_def_cfa_offset 24 904 .cfi_offset 3, -24 905 0002 4883EC08 subq $8, %rsp GAS LISTING /tmp/ccrAK1jU.s page 66 906 .cfi_def_cfa_offset 32 907 0006 4889FB movq %rdi, %rbx 75:/usr/include/c++/4.8/bits/stl_construct.h **** #else 908 .loc 12 75 0 909 0009 4889F7 movq %rsi, %rdi 910 .LVL85: 911 000c E8000000 call _ZSt7forwardIRKSsEOT_RNSt16remove_referenceIS2_E4typeE 911 00 912 .LVL86: 913 0011 4889C5 movq %rax, %rbp 914 0014 4889DE movq %rbx, %rsi 915 0017 BF080000 movl $8, %edi 915 00 916 001c E8000000 call _ZnwmPv 916 00 917 .LVL87: 918 0021 4885C0 testq %rax, %rax 919 0024 740B je .L72 75:/usr/include/c++/4.8/bits/stl_construct.h **** #else 920 .loc 12 75 0 is_stmt 0 discriminator 1 921 0026 4889EE movq %rbp, %rsi 922 0029 4889C7 movq %rax, %rdi 923 002c E8000000 call _ZNSsC1ERKSs 923 00 924 .LVL88: 925 .L72: 75:/usr/include/c++/4.8/bits/stl_construct.h **** #else 926 .loc 12 75 0 927 0031 4883C408 addq $8, %rsp 928 .cfi_def_cfa_offset 24 929 0035 5B popq %rbx 930 .cfi_def_cfa_offset 16 931 .LVL89: 932 0036 5D popq %rbp 933 .cfi_def_cfa_offset 8 934 0037 C3 ret 935 .cfi_endproc 936 .LFE1825: 938 .weak _ZSt10_ConstructISsJRKSsEEvPT_DpOT0_ 939 .set _ZSt10_ConstructISsJRKSsEEvPT_DpOT0_,_ZSt10_ConstructISsIRKSsEEvPT_DpOT0_ 940 .section .text._ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPKSsPSsEET0_T_S6_S5_,"axG",@progbi 941 .weak _ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPKSsPSsEET0_T_S6_S5_ 943 _ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPKSsPSsEET0_T_S6_S5_: 944 .LFB1819: 945 .file 13 "/usr/include/c++/4.8/bits/stl_uninitialized.h" 1:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // Raw memory manipulators -*- C++ -*- 2:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 3:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // Copyright (C) 2001-2013 Free Software Foundation, Inc. 4:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // 5:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // This file is part of the GNU ISO C++ Library. This library is free 6:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // software; you can redistribute it and/or modify it under the 7:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // terms of the GNU General Public License as published by the 8:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // Free Software Foundation; either version 3, or (at your option) 9:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // any later version. 10:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 11:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // This library is distributed in the hope that it will be useful, 12:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of GAS LISTING /tmp/ccrAK1jU.s page 67 13:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // GNU General Public License for more details. 15:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 16:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // Under Section 7 of GPL version 3, you are granted additional 17:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // permissions described in the GCC Runtime Library Exception, version 18:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // 3.1, as published by the Free Software Foundation. 19:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 20:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // You should have received a copy of the GNU General Public License and 21:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // a copy of the GCC Runtime Library Exception along with this program; 22:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // . 24:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 25:/usr/include/c++/4.8/bits/stl_uninitialized.h **** /* 26:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * 27:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * Copyright (c) 1994 28:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * Hewlett-Packard Company 29:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * 30:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * Permission to use, copy, modify, distribute and sell this software 31:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * and its documentation for any purpose is hereby granted without fee, 32:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * provided that the above copyright notice appear in all copies and 33:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * that both that copyright notice and this permission notice appear 34:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * in supporting documentation. Hewlett-Packard Company makes no 35:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * representations about the suitability of this software for any 36:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * purpose. It is provided "as is" without express or implied warranty. 37:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * 38:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * 39:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * Copyright (c) 1996,1997 40:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * Silicon Graphics Computer Systems, Inc. 41:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * 42:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * Permission to use, copy, modify, distribute and sell this software 43:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * and its documentation for any purpose is hereby granted without fee, 44:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * provided that the above copyright notice appear in all copies and 45:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * that both that copyright notice and this permission notice appear 46:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * in supporting documentation. Silicon Graphics makes no 47:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * representations about the suitability of this software for any 48:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * purpose. It is provided "as is" without express or implied warranty. 49:/usr/include/c++/4.8/bits/stl_uninitialized.h **** */ 50:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 51:/usr/include/c++/4.8/bits/stl_uninitialized.h **** /** @file bits/stl_uninitialized.h 52:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * This is an internal header file, included by other library headers. 53:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * Do not attempt to use it directly. @headername{memory} 54:/usr/include/c++/4.8/bits/stl_uninitialized.h **** */ 55:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 56:/usr/include/c++/4.8/bits/stl_uninitialized.h **** #ifndef _STL_UNINITIALIZED_H 57:/usr/include/c++/4.8/bits/stl_uninitialized.h **** #define _STL_UNINITIALIZED_H 1 58:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 59:/usr/include/c++/4.8/bits/stl_uninitialized.h **** namespace std _GLIBCXX_VISIBILITY(default) 60:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 61:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION 62:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 63:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template 64:/usr/include/c++/4.8/bits/stl_uninitialized.h **** struct __uninitialized_copy 65:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 66:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template 67:/usr/include/c++/4.8/bits/stl_uninitialized.h **** static _ForwardIterator 68:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __uninit_copy(_InputIterator __first, _InputIterator __last, 946 .loc 13 68 0 is_stmt 1 GAS LISTING /tmp/ccrAK1jU.s page 68 947 .cfi_startproc 948 .cfi_personality 0x3,__gxx_personality_v0 949 .cfi_lsda 0x3,.LLSDA1819 950 .LVL90: 951 0000 4155 pushq %r13 952 .cfi_def_cfa_offset 16 953 .cfi_offset 13, -16 954 0002 4154 pushq %r12 955 .cfi_def_cfa_offset 24 956 .cfi_offset 12, -24 957 0004 55 pushq %rbp 958 .cfi_def_cfa_offset 32 959 .cfi_offset 6, -32 960 0005 53 pushq %rbx 961 .cfi_def_cfa_offset 40 962 .cfi_offset 3, -40 963 0006 4883EC08 subq $8, %rsp 964 .cfi_def_cfa_offset 48 965 000a 4889FB movq %rdi, %rbx 966 000d 4989F4 movq %rsi, %r12 967 0010 4989D5 movq %rdx, %r13 968 .LVL91: 969 .LBB10: 69:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ForwardIterator __result) 70:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 71:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ForwardIterator __cur = __result; 72:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __try 73:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 74:/usr/include/c++/4.8/bits/stl_uninitialized.h **** for (; __first != __last; ++__first, ++__cur) 970 .loc 13 74 0 971 0013 4839F7 cmpq %rsi, %rdi 972 0016 7425 je .L80 71:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __try 973 .loc 13 71 0 974 0018 4889D5 movq %rdx, %rbp 975 .LVL92: 976 .L77: 75:/usr/include/c++/4.8/bits/stl_uninitialized.h **** std::_Construct(std::__addressof(*__cur), *__first); 977 .loc 13 75 0 978 001b 4889EF movq %rbp, %rdi 979 001e E8000000 call _ZSt11__addressofISsEPT_RS0_ 979 00 980 .LVL93: 981 0023 4889DE movq %rbx, %rsi 982 0026 4889C7 movq %rax, %rdi 983 .LEHB0: 984 0029 E8000000 call _ZSt10_ConstructISsIRKSsEEvPT_DpOT0_ 984 00 985 .LEHE0: 986 .LVL94: 74:/usr/include/c++/4.8/bits/stl_uninitialized.h **** std::_Construct(std::__addressof(*__cur), *__first); 987 .loc 13 74 0 988 002e 4883C308 addq $8, %rbx 989 .LVL95: 990 0032 4883C508 addq $8, %rbp 991 .LVL96: 992 0036 4939DC cmpq %rbx, %r12 GAS LISTING /tmp/ccrAK1jU.s page 69 993 0039 75E0 jne .L77 994 003b EB2D jmp .L83 995 .LVL97: 996 .L80: 71:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __try 997 .loc 13 71 0 998 003d 4889D5 movq %rdx, %rbp 999 0040 EB28 jmp .L83 1000 .LVL98: 1001 .L82: 1002 0042 4889C3 movq %rax, %rbx 1003 .LVL99: 76:/usr/include/c++/4.8/bits/stl_uninitialized.h **** return __cur; 77:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 78:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __catch(...) 1004 .loc 13 78 0 1005 .p2align 4,,5 1006 0045 E8000000 call __cxa_end_catch 1006 00 1007 .LVL100: 1008 004a 4889DF movq %rbx, %rdi 1009 .LEHB1: 1010 004d E8000000 call _Unwind_Resume 1010 00 1011 .LEHE1: 1012 .LVL101: 1013 .L81: 1014 0052 4889C7 movq %rax, %rdi 1015 0055 E8000000 call __cxa_begin_catch 1015 00 1016 .LVL102: 79:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 80:/usr/include/c++/4.8/bits/stl_uninitialized.h **** std::_Destroy(__result, __cur); 1017 .loc 13 80 0 1018 005a 4889EE movq %rbp, %rsi 1019 005d 4C89EF movq %r13, %rdi 1020 0060 E8000000 call _ZSt8_DestroyIPSsEvT_S1_ 1020 00 1021 .LVL103: 1022 .LEHB2: 81:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __throw_exception_again; 1023 .loc 13 81 0 1024 0065 E8000000 call __cxa_rethrow 1024 00 1025 .LEHE2: 1026 .LVL104: 1027 .L83: 1028 .LBE10: 82:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 83:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 1029 .loc 13 83 0 1030 006a 4889E8 movq %rbp, %rax 1031 006d 4883C408 addq $8, %rsp 1032 .cfi_def_cfa_offset 40 1033 0071 5B popq %rbx 1034 .cfi_def_cfa_offset 32 1035 .LVL105: GAS LISTING /tmp/ccrAK1jU.s page 70 1036 0072 5D popq %rbp 1037 .cfi_def_cfa_offset 24 1038 .LVL106: 1039 0073 415C popq %r12 1040 .cfi_def_cfa_offset 16 1041 .LVL107: 1042 0075 415D popq %r13 1043 .cfi_def_cfa_offset 8 1044 .LVL108: 1045 0077 C3 ret 1046 .cfi_endproc 1047 .LFE1819: 1048 .globl __gxx_personality_v0 1049 .section .gcc_except_table._ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPKSsPSsEET0_T_S6_S5_," 1050 .align 4 1051 .LLSDA1819: 1052 0000 FF .byte 0xff 1053 0001 03 .byte 0x3 1054 0002 15 .uleb128 .LLSDATT1819-.LLSDATTD1819 1055 .LLSDATTD1819: 1056 0003 01 .byte 0x1 1057 0004 0C .uleb128 .LLSDACSE1819-.LLSDACSB1819 1058 .LLSDACSB1819: 1059 0005 29 .uleb128 .LEHB0-.LFB1819 1060 0006 05 .uleb128 .LEHE0-.LEHB0 1061 0007 52 .uleb128 .L81-.LFB1819 1062 0008 01 .uleb128 0x1 1063 0009 4D .uleb128 .LEHB1-.LFB1819 1064 000a 05 .uleb128 .LEHE1-.LEHB1 1065 000b 00 .uleb128 0 1066 000c 00 .uleb128 0 1067 000d 65 .uleb128 .LEHB2-.LFB1819 1068 000e 05 .uleb128 .LEHE2-.LEHB2 1069 000f 42 .uleb128 .L82-.LFB1819 1070 0010 00 .uleb128 0 1071 .LLSDACSE1819: 1072 0011 01 .byte 0x1 1073 0012 00 .byte 0 1074 0013 00 .align 4 1075 0014 00000000 .long 0 1076 1077 .LLSDATT1819: 1078 .section .text._ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPKSsPSsEET0_T_S6_S5_,"axG",@progbi 1080 .section .text._ZSt18uninitialized_copyIPKSsPSsET0_T_S4_S3_,"axG",@progbits,_ZSt18uninitialized_co 1081 .weak _ZSt18uninitialized_copyIPKSsPSsET0_T_S4_S3_ 1083 _ZSt18uninitialized_copyIPKSsPSsET0_T_S4_S3_: 1084 .LFB1809: 84:/usr/include/c++/4.8/bits/stl_uninitialized.h **** }; 85:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 86:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template<> 87:/usr/include/c++/4.8/bits/stl_uninitialized.h **** struct __uninitialized_copy 88:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 89:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template 90:/usr/include/c++/4.8/bits/stl_uninitialized.h **** static _ForwardIterator 91:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __uninit_copy(_InputIterator __first, _InputIterator __last, 92:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ForwardIterator __result) 93:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { return std::copy(__first, __last, __result); } GAS LISTING /tmp/ccrAK1jU.s page 71 94:/usr/include/c++/4.8/bits/stl_uninitialized.h **** }; 95:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 96:/usr/include/c++/4.8/bits/stl_uninitialized.h **** /** 97:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * @brief Copies the range [first,last) into result. 98:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * @param __first An input iterator. 99:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * @param __last An input iterator. 100:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * @param __result An output iterator. 101:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * @return __result + (__first - __last) 102:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * 103:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * Like copy(), but does not require an initialized output range. 104:/usr/include/c++/4.8/bits/stl_uninitialized.h **** */ 105:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template 106:/usr/include/c++/4.8/bits/stl_uninitialized.h **** inline _ForwardIterator 107:/usr/include/c++/4.8/bits/stl_uninitialized.h **** uninitialized_copy(_InputIterator __first, _InputIterator __last, 1085 .loc 13 107 0 1086 .cfi_startproc 1087 .LVL109: 1088 0000 4883EC08 subq $8, %rsp 1089 .cfi_def_cfa_offset 16 1090 .LBB11: 108:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ForwardIterator __result) 109:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 110:/usr/include/c++/4.8/bits/stl_uninitialized.h **** typedef typename iterator_traits<_InputIterator>::value_type 111:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ValueType1; 112:/usr/include/c++/4.8/bits/stl_uninitialized.h **** typedef typename iterator_traits<_ForwardIterator>::value_type 113:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ValueType2; 114:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 115:/usr/include/c++/4.8/bits/stl_uninitialized.h **** return std::__uninitialized_copy<(__is_trivial(_ValueType1) 116:/usr/include/c++/4.8/bits/stl_uninitialized.h **** && __is_trivial(_ValueType2))>:: 117:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __uninit_copy(__first, __last, __result); 1091 .loc 13 117 0 1092 0004 E8000000 call _ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPKSsPSsEET0_T_S6_S5_ 1092 00 1093 .LVL110: 1094 .LBE11: 118:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 1095 .loc 13 118 0 1096 0009 4883C408 addq $8, %rsp 1097 .cfi_def_cfa_offset 8 1098 000d C3 ret 1099 .cfi_endproc 1100 .LFE1809: 1102 .section .text._ZSt22__uninitialized_copy_aIPKSsPSsSsET0_T_S4_S3_RSaIT1_E,"axG",@progbits,_ZSt22__ 1103 .weak _ZSt22__uninitialized_copy_aIPKSsPSsSsET0_T_S4_S3_RSaIT1_E 1105 _ZSt22__uninitialized_copy_aIPKSsPSsSsET0_T_S4_S3_RSaIT1_E: 1106 .LFB1791: 119:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 120:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 121:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template 122:/usr/include/c++/4.8/bits/stl_uninitialized.h **** struct __uninitialized_fill 123:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 124:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template 125:/usr/include/c++/4.8/bits/stl_uninitialized.h **** static void 126:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 127:/usr/include/c++/4.8/bits/stl_uninitialized.h **** const _Tp& __x) 128:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 129:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ForwardIterator __cur = __first; GAS LISTING /tmp/ccrAK1jU.s page 72 130:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __try 131:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 132:/usr/include/c++/4.8/bits/stl_uninitialized.h **** for (; __cur != __last; ++__cur) 133:/usr/include/c++/4.8/bits/stl_uninitialized.h **** std::_Construct(std::__addressof(*__cur), __x); 134:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 135:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __catch(...) 136:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 137:/usr/include/c++/4.8/bits/stl_uninitialized.h **** std::_Destroy(__first, __cur); 138:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __throw_exception_again; 139:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 140:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 141:/usr/include/c++/4.8/bits/stl_uninitialized.h **** }; 142:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 143:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template<> 144:/usr/include/c++/4.8/bits/stl_uninitialized.h **** struct __uninitialized_fill 145:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 146:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template 147:/usr/include/c++/4.8/bits/stl_uninitialized.h **** static void 148:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 149:/usr/include/c++/4.8/bits/stl_uninitialized.h **** const _Tp& __x) 150:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { std::fill(__first, __last, __x); } 151:/usr/include/c++/4.8/bits/stl_uninitialized.h **** }; 152:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 153:/usr/include/c++/4.8/bits/stl_uninitialized.h **** /** 154:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * @brief Copies the value x into the range [first,last). 155:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * @param __first An input iterator. 156:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * @param __last An input iterator. 157:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * @param __x The source value. 158:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * @return Nothing. 159:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * 160:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * Like fill(), but does not require an initialized output range. 161:/usr/include/c++/4.8/bits/stl_uninitialized.h **** */ 162:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template 163:/usr/include/c++/4.8/bits/stl_uninitialized.h **** inline void 164:/usr/include/c++/4.8/bits/stl_uninitialized.h **** uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, 165:/usr/include/c++/4.8/bits/stl_uninitialized.h **** const _Tp& __x) 166:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 167:/usr/include/c++/4.8/bits/stl_uninitialized.h **** typedef typename iterator_traits<_ForwardIterator>::value_type 168:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ValueType; 169:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 170:/usr/include/c++/4.8/bits/stl_uninitialized.h **** std::__uninitialized_fill<__is_trivial(_ValueType)>:: 171:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __uninit_fill(__first, __last, __x); 172:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 173:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 174:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 175:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template 176:/usr/include/c++/4.8/bits/stl_uninitialized.h **** struct __uninitialized_fill_n 177:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 178:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template 179:/usr/include/c++/4.8/bits/stl_uninitialized.h **** static void 180:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __uninit_fill_n(_ForwardIterator __first, _Size __n, 181:/usr/include/c++/4.8/bits/stl_uninitialized.h **** const _Tp& __x) 182:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 183:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ForwardIterator __cur = __first; 184:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __try 185:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 186:/usr/include/c++/4.8/bits/stl_uninitialized.h **** for (; __n > 0; --__n, ++__cur) GAS LISTING /tmp/ccrAK1jU.s page 73 187:/usr/include/c++/4.8/bits/stl_uninitialized.h **** std::_Construct(std::__addressof(*__cur), __x); 188:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 189:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __catch(...) 190:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 191:/usr/include/c++/4.8/bits/stl_uninitialized.h **** std::_Destroy(__first, __cur); 192:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __throw_exception_again; 193:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 194:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 195:/usr/include/c++/4.8/bits/stl_uninitialized.h **** }; 196:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 197:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template<> 198:/usr/include/c++/4.8/bits/stl_uninitialized.h **** struct __uninitialized_fill_n 199:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 200:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template 201:/usr/include/c++/4.8/bits/stl_uninitialized.h **** static void 202:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __uninit_fill_n(_ForwardIterator __first, _Size __n, 203:/usr/include/c++/4.8/bits/stl_uninitialized.h **** const _Tp& __x) 204:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { std::fill_n(__first, __n, __x); } 205:/usr/include/c++/4.8/bits/stl_uninitialized.h **** }; 206:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 207:/usr/include/c++/4.8/bits/stl_uninitialized.h **** /** 208:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * @brief Copies the value x into the range [first,first+n). 209:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * @param __first An input iterator. 210:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * @param __n The number of copies to make. 211:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * @param __x The source value. 212:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * @return Nothing. 213:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * 214:/usr/include/c++/4.8/bits/stl_uninitialized.h **** * Like fill_n(), but does not require an initialized output range. 215:/usr/include/c++/4.8/bits/stl_uninitialized.h **** */ 216:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template 217:/usr/include/c++/4.8/bits/stl_uninitialized.h **** inline void 218:/usr/include/c++/4.8/bits/stl_uninitialized.h **** uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) 219:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 220:/usr/include/c++/4.8/bits/stl_uninitialized.h **** typedef typename iterator_traits<_ForwardIterator>::value_type 221:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ValueType; 222:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 223:/usr/include/c++/4.8/bits/stl_uninitialized.h **** std::__uninitialized_fill_n<__is_trivial(_ValueType)>:: 224:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __uninit_fill_n(__first, __n, __x); 225:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 226:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 227:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // Extensions: versions of uninitialized_copy, uninitialized_fill, 228:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // and uninitialized_fill_n that take an allocator parameter. 229:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // We dispatch back to the standard versions when we're given the 230:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // default allocator. For nondefault allocators we do not use 231:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // any of the POD optimizations. 232:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 233:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template 235:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ForwardIterator 236:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 237:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ForwardIterator __result, _Allocator& __alloc) 238:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 239:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ForwardIterator __cur = __result; 240:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __try 241:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 242:/usr/include/c++/4.8/bits/stl_uninitialized.h **** typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 243:/usr/include/c++/4.8/bits/stl_uninitialized.h **** for (; __first != __last; ++__first, ++__cur) GAS LISTING /tmp/ccrAK1jU.s page 74 244:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __traits::construct(__alloc, std::__addressof(*__cur), *__first); 245:/usr/include/c++/4.8/bits/stl_uninitialized.h **** return __cur; 246:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 247:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __catch(...) 248:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 249:/usr/include/c++/4.8/bits/stl_uninitialized.h **** std::_Destroy(__result, __cur, __alloc); 250:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __throw_exception_again; 251:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 252:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 253:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 254:/usr/include/c++/4.8/bits/stl_uninitialized.h **** template 255:/usr/include/c++/4.8/bits/stl_uninitialized.h **** inline _ForwardIterator 256:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 1107 .loc 13 256 0 1108 .cfi_startproc 1109 .LVL111: 1110 0000 4883EC08 subq $8, %rsp 1111 .cfi_def_cfa_offset 16 257:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ForwardIterator __result, allocator<_Tp>&) 258:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { return std::uninitialized_copy(__first, __last, __result); } 1112 .loc 13 258 0 1113 0004 E8000000 call _ZSt18uninitialized_copyIPKSsPSsET0_T_S4_S3_ 1113 00 1114 .LVL112: 1115 0009 4883C408 addq $8, %rsp 1116 .cfi_def_cfa_offset 8 1117 000d C3 ret 1118 .cfi_endproc 1119 .LFE1791: 1121 .section .text._ZNSt6vectorISsSaISsEE19_M_range_initializeIPKSsEEvT_S5_St20forward_iterator_tag,"a 1122 .align 2 1123 .weak _ZNSt6vectorISsSaISsEE19_M_range_initializeIPKSsEEvT_S5_St20forward_iterator_tag 1125 _ZNSt6vectorISsSaISsEE19_M_range_initializeIPKSsEEvT_S5_St20forward_iterator_tag: 1126 .LFB1749: 647:/usr/include/c++/4.8/bits/stl_vector.h **** 648:/usr/include/c++/4.8/bits/stl_vector.h **** /** Returns the size() of the largest possible %vector. */ 649:/usr/include/c++/4.8/bits/stl_vector.h **** size_type 650:/usr/include/c++/4.8/bits/stl_vector.h **** max_size() const _GLIBCXX_NOEXCEPT 651:/usr/include/c++/4.8/bits/stl_vector.h **** { return _Alloc_traits::max_size(_M_get_Tp_allocator()); } 652:/usr/include/c++/4.8/bits/stl_vector.h **** 653:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 654:/usr/include/c++/4.8/bits/stl_vector.h **** /** 655:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Resizes the %vector to the specified number of elements. 656:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __new_size Number of elements the %vector should contain. 657:/usr/include/c++/4.8/bits/stl_vector.h **** * 658:/usr/include/c++/4.8/bits/stl_vector.h **** * This function will %resize the %vector to the specified 659:/usr/include/c++/4.8/bits/stl_vector.h **** * number of elements. If the number is smaller than the 660:/usr/include/c++/4.8/bits/stl_vector.h **** * %vector's current size the %vector is truncated, otherwise 661:/usr/include/c++/4.8/bits/stl_vector.h **** * default constructed elements are appended. 662:/usr/include/c++/4.8/bits/stl_vector.h **** */ 663:/usr/include/c++/4.8/bits/stl_vector.h **** void 664:/usr/include/c++/4.8/bits/stl_vector.h **** resize(size_type __new_size) 665:/usr/include/c++/4.8/bits/stl_vector.h **** { 666:/usr/include/c++/4.8/bits/stl_vector.h **** if (__new_size > size()) 667:/usr/include/c++/4.8/bits/stl_vector.h **** _M_default_append(__new_size - size()); 668:/usr/include/c++/4.8/bits/stl_vector.h **** else if (__new_size < size()) 669:/usr/include/c++/4.8/bits/stl_vector.h **** _M_erase_at_end(this->_M_impl._M_start + __new_size); GAS LISTING /tmp/ccrAK1jU.s page 75 670:/usr/include/c++/4.8/bits/stl_vector.h **** } 671:/usr/include/c++/4.8/bits/stl_vector.h **** 672:/usr/include/c++/4.8/bits/stl_vector.h **** /** 673:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Resizes the %vector to the specified number of elements. 674:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __new_size Number of elements the %vector should contain. 675:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __x Data with which new elements should be populated. 676:/usr/include/c++/4.8/bits/stl_vector.h **** * 677:/usr/include/c++/4.8/bits/stl_vector.h **** * This function will %resize the %vector to the specified 678:/usr/include/c++/4.8/bits/stl_vector.h **** * number of elements. If the number is smaller than the 679:/usr/include/c++/4.8/bits/stl_vector.h **** * %vector's current size the %vector is truncated, otherwise 680:/usr/include/c++/4.8/bits/stl_vector.h **** * the %vector is extended and new elements are populated with 681:/usr/include/c++/4.8/bits/stl_vector.h **** * given data. 682:/usr/include/c++/4.8/bits/stl_vector.h **** */ 683:/usr/include/c++/4.8/bits/stl_vector.h **** void 684:/usr/include/c++/4.8/bits/stl_vector.h **** resize(size_type __new_size, const value_type& __x) 685:/usr/include/c++/4.8/bits/stl_vector.h **** { 686:/usr/include/c++/4.8/bits/stl_vector.h **** if (__new_size > size()) 687:/usr/include/c++/4.8/bits/stl_vector.h **** insert(end(), __new_size - size(), __x); 688:/usr/include/c++/4.8/bits/stl_vector.h **** else if (__new_size < size()) 689:/usr/include/c++/4.8/bits/stl_vector.h **** _M_erase_at_end(this->_M_impl._M_start + __new_size); 690:/usr/include/c++/4.8/bits/stl_vector.h **** } 691:/usr/include/c++/4.8/bits/stl_vector.h **** #else 692:/usr/include/c++/4.8/bits/stl_vector.h **** /** 693:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Resizes the %vector to the specified number of elements. 694:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __new_size Number of elements the %vector should contain. 695:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __x Data with which new elements should be populated. 696:/usr/include/c++/4.8/bits/stl_vector.h **** * 697:/usr/include/c++/4.8/bits/stl_vector.h **** * This function will %resize the %vector to the specified 698:/usr/include/c++/4.8/bits/stl_vector.h **** * number of elements. If the number is smaller than the 699:/usr/include/c++/4.8/bits/stl_vector.h **** * %vector's current size the %vector is truncated, otherwise 700:/usr/include/c++/4.8/bits/stl_vector.h **** * the %vector is extended and new elements are populated with 701:/usr/include/c++/4.8/bits/stl_vector.h **** * given data. 702:/usr/include/c++/4.8/bits/stl_vector.h **** */ 703:/usr/include/c++/4.8/bits/stl_vector.h **** void 704:/usr/include/c++/4.8/bits/stl_vector.h **** resize(size_type __new_size, value_type __x = value_type()) 705:/usr/include/c++/4.8/bits/stl_vector.h **** { 706:/usr/include/c++/4.8/bits/stl_vector.h **** if (__new_size > size()) 707:/usr/include/c++/4.8/bits/stl_vector.h **** insert(end(), __new_size - size(), __x); 708:/usr/include/c++/4.8/bits/stl_vector.h **** else if (__new_size < size()) 709:/usr/include/c++/4.8/bits/stl_vector.h **** _M_erase_at_end(this->_M_impl._M_start + __new_size); 710:/usr/include/c++/4.8/bits/stl_vector.h **** } 711:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 712:/usr/include/c++/4.8/bits/stl_vector.h **** 713:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 714:/usr/include/c++/4.8/bits/stl_vector.h **** /** A non-binding request to reduce capacity() to size(). */ 715:/usr/include/c++/4.8/bits/stl_vector.h **** void 716:/usr/include/c++/4.8/bits/stl_vector.h **** shrink_to_fit() 717:/usr/include/c++/4.8/bits/stl_vector.h **** { _M_shrink_to_fit(); } 718:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 719:/usr/include/c++/4.8/bits/stl_vector.h **** 720:/usr/include/c++/4.8/bits/stl_vector.h **** /** 721:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns the total number of elements that the %vector can 722:/usr/include/c++/4.8/bits/stl_vector.h **** * hold before needing to allocate more memory. 723:/usr/include/c++/4.8/bits/stl_vector.h **** */ 724:/usr/include/c++/4.8/bits/stl_vector.h **** size_type 725:/usr/include/c++/4.8/bits/stl_vector.h **** capacity() const _GLIBCXX_NOEXCEPT 726:/usr/include/c++/4.8/bits/stl_vector.h **** { return size_type(this->_M_impl._M_end_of_storage GAS LISTING /tmp/ccrAK1jU.s page 76 727:/usr/include/c++/4.8/bits/stl_vector.h **** - this->_M_impl._M_start); } 728:/usr/include/c++/4.8/bits/stl_vector.h **** 729:/usr/include/c++/4.8/bits/stl_vector.h **** /** 730:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns true if the %vector is empty. (Thus begin() would 731:/usr/include/c++/4.8/bits/stl_vector.h **** * equal end().) 732:/usr/include/c++/4.8/bits/stl_vector.h **** */ 733:/usr/include/c++/4.8/bits/stl_vector.h **** bool 734:/usr/include/c++/4.8/bits/stl_vector.h **** empty() const _GLIBCXX_NOEXCEPT 735:/usr/include/c++/4.8/bits/stl_vector.h **** { return begin() == end(); } 736:/usr/include/c++/4.8/bits/stl_vector.h **** 737:/usr/include/c++/4.8/bits/stl_vector.h **** /** 738:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Attempt to preallocate enough memory for specified number of 739:/usr/include/c++/4.8/bits/stl_vector.h **** * elements. 740:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __n Number of elements required. 741:/usr/include/c++/4.8/bits/stl_vector.h **** * @throw std::length_error If @a n exceeds @c max_size(). 742:/usr/include/c++/4.8/bits/stl_vector.h **** * 743:/usr/include/c++/4.8/bits/stl_vector.h **** * This function attempts to reserve enough memory for the 744:/usr/include/c++/4.8/bits/stl_vector.h **** * %vector to hold the specified number of elements. If the 745:/usr/include/c++/4.8/bits/stl_vector.h **** * number requested is more than max_size(), length_error is 746:/usr/include/c++/4.8/bits/stl_vector.h **** * thrown. 747:/usr/include/c++/4.8/bits/stl_vector.h **** * 748:/usr/include/c++/4.8/bits/stl_vector.h **** * The advantage of this function is that if optimal code is a 749:/usr/include/c++/4.8/bits/stl_vector.h **** * necessity and the user can determine the number of elements 750:/usr/include/c++/4.8/bits/stl_vector.h **** * that will be required, the user can reserve the memory in 751:/usr/include/c++/4.8/bits/stl_vector.h **** * %advance, and thus prevent a possible reallocation of memory 752:/usr/include/c++/4.8/bits/stl_vector.h **** * and copying of %vector data. 753:/usr/include/c++/4.8/bits/stl_vector.h **** */ 754:/usr/include/c++/4.8/bits/stl_vector.h **** void 755:/usr/include/c++/4.8/bits/stl_vector.h **** reserve(size_type __n); 756:/usr/include/c++/4.8/bits/stl_vector.h **** 757:/usr/include/c++/4.8/bits/stl_vector.h **** // element access 758:/usr/include/c++/4.8/bits/stl_vector.h **** /** 759:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Subscript access to the data contained in the %vector. 760:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __n The index of the element for which data should be 761:/usr/include/c++/4.8/bits/stl_vector.h **** * accessed. 762:/usr/include/c++/4.8/bits/stl_vector.h **** * @return Read/write reference to data. 763:/usr/include/c++/4.8/bits/stl_vector.h **** * 764:/usr/include/c++/4.8/bits/stl_vector.h **** * This operator allows for easy, array-style, data access. 765:/usr/include/c++/4.8/bits/stl_vector.h **** * Note that data access with this operator is unchecked and 766:/usr/include/c++/4.8/bits/stl_vector.h **** * out_of_range lookups are not defined. (For checked lookups 767:/usr/include/c++/4.8/bits/stl_vector.h **** * see at().) 768:/usr/include/c++/4.8/bits/stl_vector.h **** */ 769:/usr/include/c++/4.8/bits/stl_vector.h **** reference 770:/usr/include/c++/4.8/bits/stl_vector.h **** operator[](size_type __n) 771:/usr/include/c++/4.8/bits/stl_vector.h **** { return *(this->_M_impl._M_start + __n); } 772:/usr/include/c++/4.8/bits/stl_vector.h **** 773:/usr/include/c++/4.8/bits/stl_vector.h **** /** 774:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Subscript access to the data contained in the %vector. 775:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __n The index of the element for which data should be 776:/usr/include/c++/4.8/bits/stl_vector.h **** * accessed. 777:/usr/include/c++/4.8/bits/stl_vector.h **** * @return Read-only (constant) reference to data. 778:/usr/include/c++/4.8/bits/stl_vector.h **** * 779:/usr/include/c++/4.8/bits/stl_vector.h **** * This operator allows for easy, array-style, data access. 780:/usr/include/c++/4.8/bits/stl_vector.h **** * Note that data access with this operator is unchecked and 781:/usr/include/c++/4.8/bits/stl_vector.h **** * out_of_range lookups are not defined. (For checked lookups 782:/usr/include/c++/4.8/bits/stl_vector.h **** * see at().) 783:/usr/include/c++/4.8/bits/stl_vector.h **** */ GAS LISTING /tmp/ccrAK1jU.s page 77 784:/usr/include/c++/4.8/bits/stl_vector.h **** const_reference 785:/usr/include/c++/4.8/bits/stl_vector.h **** operator[](size_type __n) const 786:/usr/include/c++/4.8/bits/stl_vector.h **** { return *(this->_M_impl._M_start + __n); } 787:/usr/include/c++/4.8/bits/stl_vector.h **** 788:/usr/include/c++/4.8/bits/stl_vector.h **** protected: 789:/usr/include/c++/4.8/bits/stl_vector.h **** /// Safety check used only from at(). 790:/usr/include/c++/4.8/bits/stl_vector.h **** void 791:/usr/include/c++/4.8/bits/stl_vector.h **** _M_range_check(size_type __n) const 792:/usr/include/c++/4.8/bits/stl_vector.h **** { 793:/usr/include/c++/4.8/bits/stl_vector.h **** if (__n >= this->size()) 794:/usr/include/c++/4.8/bits/stl_vector.h **** __throw_out_of_range(__N("vector::_M_range_check")); 795:/usr/include/c++/4.8/bits/stl_vector.h **** } 796:/usr/include/c++/4.8/bits/stl_vector.h **** 797:/usr/include/c++/4.8/bits/stl_vector.h **** public: 798:/usr/include/c++/4.8/bits/stl_vector.h **** /** 799:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Provides access to the data contained in the %vector. 800:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __n The index of the element for which data should be 801:/usr/include/c++/4.8/bits/stl_vector.h **** * accessed. 802:/usr/include/c++/4.8/bits/stl_vector.h **** * @return Read/write reference to data. 803:/usr/include/c++/4.8/bits/stl_vector.h **** * @throw std::out_of_range If @a __n is an invalid index. 804:/usr/include/c++/4.8/bits/stl_vector.h **** * 805:/usr/include/c++/4.8/bits/stl_vector.h **** * This function provides for safer data access. The parameter 806:/usr/include/c++/4.8/bits/stl_vector.h **** * is first checked that it is in the range of the vector. The 807:/usr/include/c++/4.8/bits/stl_vector.h **** * function throws out_of_range if the check fails. 808:/usr/include/c++/4.8/bits/stl_vector.h **** */ 809:/usr/include/c++/4.8/bits/stl_vector.h **** reference 810:/usr/include/c++/4.8/bits/stl_vector.h **** at(size_type __n) 811:/usr/include/c++/4.8/bits/stl_vector.h **** { 812:/usr/include/c++/4.8/bits/stl_vector.h **** _M_range_check(__n); 813:/usr/include/c++/4.8/bits/stl_vector.h **** return (*this)[__n]; 814:/usr/include/c++/4.8/bits/stl_vector.h **** } 815:/usr/include/c++/4.8/bits/stl_vector.h **** 816:/usr/include/c++/4.8/bits/stl_vector.h **** /** 817:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Provides access to the data contained in the %vector. 818:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __n The index of the element for which data should be 819:/usr/include/c++/4.8/bits/stl_vector.h **** * accessed. 820:/usr/include/c++/4.8/bits/stl_vector.h **** * @return Read-only (constant) reference to data. 821:/usr/include/c++/4.8/bits/stl_vector.h **** * @throw std::out_of_range If @a __n is an invalid index. 822:/usr/include/c++/4.8/bits/stl_vector.h **** * 823:/usr/include/c++/4.8/bits/stl_vector.h **** * This function provides for safer data access. The parameter 824:/usr/include/c++/4.8/bits/stl_vector.h **** * is first checked that it is in the range of the vector. The 825:/usr/include/c++/4.8/bits/stl_vector.h **** * function throws out_of_range if the check fails. 826:/usr/include/c++/4.8/bits/stl_vector.h **** */ 827:/usr/include/c++/4.8/bits/stl_vector.h **** const_reference 828:/usr/include/c++/4.8/bits/stl_vector.h **** at(size_type __n) const 829:/usr/include/c++/4.8/bits/stl_vector.h **** { 830:/usr/include/c++/4.8/bits/stl_vector.h **** _M_range_check(__n); 831:/usr/include/c++/4.8/bits/stl_vector.h **** return (*this)[__n]; 832:/usr/include/c++/4.8/bits/stl_vector.h **** } 833:/usr/include/c++/4.8/bits/stl_vector.h **** 834:/usr/include/c++/4.8/bits/stl_vector.h **** /** 835:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read/write reference to the data at the first 836:/usr/include/c++/4.8/bits/stl_vector.h **** * element of the %vector. 837:/usr/include/c++/4.8/bits/stl_vector.h **** */ 838:/usr/include/c++/4.8/bits/stl_vector.h **** reference 839:/usr/include/c++/4.8/bits/stl_vector.h **** front() 840:/usr/include/c++/4.8/bits/stl_vector.h **** { return *begin(); } GAS LISTING /tmp/ccrAK1jU.s page 78 841:/usr/include/c++/4.8/bits/stl_vector.h **** 842:/usr/include/c++/4.8/bits/stl_vector.h **** /** 843:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read-only (constant) reference to the data at the first 844:/usr/include/c++/4.8/bits/stl_vector.h **** * element of the %vector. 845:/usr/include/c++/4.8/bits/stl_vector.h **** */ 846:/usr/include/c++/4.8/bits/stl_vector.h **** const_reference 847:/usr/include/c++/4.8/bits/stl_vector.h **** front() const 848:/usr/include/c++/4.8/bits/stl_vector.h **** { return *begin(); } 849:/usr/include/c++/4.8/bits/stl_vector.h **** 850:/usr/include/c++/4.8/bits/stl_vector.h **** /** 851:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read/write reference to the data at the last 852:/usr/include/c++/4.8/bits/stl_vector.h **** * element of the %vector. 853:/usr/include/c++/4.8/bits/stl_vector.h **** */ 854:/usr/include/c++/4.8/bits/stl_vector.h **** reference 855:/usr/include/c++/4.8/bits/stl_vector.h **** back() 856:/usr/include/c++/4.8/bits/stl_vector.h **** { return *(end() - 1); } 857:/usr/include/c++/4.8/bits/stl_vector.h **** 858:/usr/include/c++/4.8/bits/stl_vector.h **** /** 859:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a read-only (constant) reference to the data at the 860:/usr/include/c++/4.8/bits/stl_vector.h **** * last element of the %vector. 861:/usr/include/c++/4.8/bits/stl_vector.h **** */ 862:/usr/include/c++/4.8/bits/stl_vector.h **** const_reference 863:/usr/include/c++/4.8/bits/stl_vector.h **** back() const 864:/usr/include/c++/4.8/bits/stl_vector.h **** { return *(end() - 1); } 865:/usr/include/c++/4.8/bits/stl_vector.h **** 866:/usr/include/c++/4.8/bits/stl_vector.h **** // _GLIBCXX_RESOLVE_LIB_DEFECTS 867:/usr/include/c++/4.8/bits/stl_vector.h **** // DR 464. Suggestion for new member functions in standard containers. 868:/usr/include/c++/4.8/bits/stl_vector.h **** // data access 869:/usr/include/c++/4.8/bits/stl_vector.h **** /** 870:/usr/include/c++/4.8/bits/stl_vector.h **** * Returns a pointer such that [data(), data() + size()) is a valid 871:/usr/include/c++/4.8/bits/stl_vector.h **** * range. For a non-empty %vector, data() == &front(). 872:/usr/include/c++/4.8/bits/stl_vector.h **** */ 873:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 874:/usr/include/c++/4.8/bits/stl_vector.h **** _Tp* 875:/usr/include/c++/4.8/bits/stl_vector.h **** #else 876:/usr/include/c++/4.8/bits/stl_vector.h **** pointer 877:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 878:/usr/include/c++/4.8/bits/stl_vector.h **** data() _GLIBCXX_NOEXCEPT 879:/usr/include/c++/4.8/bits/stl_vector.h **** { return std::__addressof(front()); } 880:/usr/include/c++/4.8/bits/stl_vector.h **** 881:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 882:/usr/include/c++/4.8/bits/stl_vector.h **** const _Tp* 883:/usr/include/c++/4.8/bits/stl_vector.h **** #else 884:/usr/include/c++/4.8/bits/stl_vector.h **** const_pointer 885:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 886:/usr/include/c++/4.8/bits/stl_vector.h **** data() const _GLIBCXX_NOEXCEPT 887:/usr/include/c++/4.8/bits/stl_vector.h **** { return std::__addressof(front()); } 888:/usr/include/c++/4.8/bits/stl_vector.h **** 889:/usr/include/c++/4.8/bits/stl_vector.h **** // [23.2.4.3] modifiers 890:/usr/include/c++/4.8/bits/stl_vector.h **** /** 891:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Add data to the end of the %vector. 892:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __x Data to be added. 893:/usr/include/c++/4.8/bits/stl_vector.h **** * 894:/usr/include/c++/4.8/bits/stl_vector.h **** * This is a typical stack operation. The function creates an 895:/usr/include/c++/4.8/bits/stl_vector.h **** * element at the end of the %vector and assigns the given data 896:/usr/include/c++/4.8/bits/stl_vector.h **** * to it. Due to the nature of a %vector this operation can be 897:/usr/include/c++/4.8/bits/stl_vector.h **** * done in constant time if the %vector has preallocated space GAS LISTING /tmp/ccrAK1jU.s page 79 898:/usr/include/c++/4.8/bits/stl_vector.h **** * available. 899:/usr/include/c++/4.8/bits/stl_vector.h **** */ 900:/usr/include/c++/4.8/bits/stl_vector.h **** void 901:/usr/include/c++/4.8/bits/stl_vector.h **** push_back(const value_type& __x) 902:/usr/include/c++/4.8/bits/stl_vector.h **** { 903:/usr/include/c++/4.8/bits/stl_vector.h **** if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 904:/usr/include/c++/4.8/bits/stl_vector.h **** { 905:/usr/include/c++/4.8/bits/stl_vector.h **** _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 906:/usr/include/c++/4.8/bits/stl_vector.h **** __x); 907:/usr/include/c++/4.8/bits/stl_vector.h **** ++this->_M_impl._M_finish; 908:/usr/include/c++/4.8/bits/stl_vector.h **** } 909:/usr/include/c++/4.8/bits/stl_vector.h **** else 910:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 911:/usr/include/c++/4.8/bits/stl_vector.h **** _M_emplace_back_aux(__x); 912:/usr/include/c++/4.8/bits/stl_vector.h **** #else 913:/usr/include/c++/4.8/bits/stl_vector.h **** _M_insert_aux(end(), __x); 914:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 915:/usr/include/c++/4.8/bits/stl_vector.h **** } 916:/usr/include/c++/4.8/bits/stl_vector.h **** 917:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 918:/usr/include/c++/4.8/bits/stl_vector.h **** void 919:/usr/include/c++/4.8/bits/stl_vector.h **** push_back(value_type&& __x) 920:/usr/include/c++/4.8/bits/stl_vector.h **** { emplace_back(std::move(__x)); } 921:/usr/include/c++/4.8/bits/stl_vector.h **** 922:/usr/include/c++/4.8/bits/stl_vector.h **** template 923:/usr/include/c++/4.8/bits/stl_vector.h **** void 924:/usr/include/c++/4.8/bits/stl_vector.h **** emplace_back(_Args&&... __args); 925:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 926:/usr/include/c++/4.8/bits/stl_vector.h **** 927:/usr/include/c++/4.8/bits/stl_vector.h **** /** 928:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Removes last element. 929:/usr/include/c++/4.8/bits/stl_vector.h **** * 930:/usr/include/c++/4.8/bits/stl_vector.h **** * This is a typical stack operation. It shrinks the %vector by one. 931:/usr/include/c++/4.8/bits/stl_vector.h **** * 932:/usr/include/c++/4.8/bits/stl_vector.h **** * Note that no data is returned, and if the last element's 933:/usr/include/c++/4.8/bits/stl_vector.h **** * data is needed, it should be retrieved before pop_back() is 934:/usr/include/c++/4.8/bits/stl_vector.h **** * called. 935:/usr/include/c++/4.8/bits/stl_vector.h **** */ 936:/usr/include/c++/4.8/bits/stl_vector.h **** void 937:/usr/include/c++/4.8/bits/stl_vector.h **** pop_back() 938:/usr/include/c++/4.8/bits/stl_vector.h **** { 939:/usr/include/c++/4.8/bits/stl_vector.h **** --this->_M_impl._M_finish; 940:/usr/include/c++/4.8/bits/stl_vector.h **** _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 941:/usr/include/c++/4.8/bits/stl_vector.h **** } 942:/usr/include/c++/4.8/bits/stl_vector.h **** 943:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 944:/usr/include/c++/4.8/bits/stl_vector.h **** /** 945:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Inserts an object in %vector before specified iterator. 946:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __position An iterator into the %vector. 947:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __args Arguments. 948:/usr/include/c++/4.8/bits/stl_vector.h **** * @return An iterator that points to the inserted data. 949:/usr/include/c++/4.8/bits/stl_vector.h **** * 950:/usr/include/c++/4.8/bits/stl_vector.h **** * This function will insert an object of type T constructed 951:/usr/include/c++/4.8/bits/stl_vector.h **** * with T(std::forward(args)...) before the specified location. 952:/usr/include/c++/4.8/bits/stl_vector.h **** * Note that this kind of operation could be expensive for a %vector 953:/usr/include/c++/4.8/bits/stl_vector.h **** * and if it is frequently used the user should consider using 954:/usr/include/c++/4.8/bits/stl_vector.h **** * std::list. GAS LISTING /tmp/ccrAK1jU.s page 80 955:/usr/include/c++/4.8/bits/stl_vector.h **** */ 956:/usr/include/c++/4.8/bits/stl_vector.h **** template 957:/usr/include/c++/4.8/bits/stl_vector.h **** iterator 958:/usr/include/c++/4.8/bits/stl_vector.h **** emplace(iterator __position, _Args&&... __args); 959:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 960:/usr/include/c++/4.8/bits/stl_vector.h **** 961:/usr/include/c++/4.8/bits/stl_vector.h **** /** 962:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Inserts given value into %vector before specified iterator. 963:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __position An iterator into the %vector. 964:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __x Data to be inserted. 965:/usr/include/c++/4.8/bits/stl_vector.h **** * @return An iterator that points to the inserted data. 966:/usr/include/c++/4.8/bits/stl_vector.h **** * 967:/usr/include/c++/4.8/bits/stl_vector.h **** * This function will insert a copy of the given value before 968:/usr/include/c++/4.8/bits/stl_vector.h **** * the specified location. Note that this kind of operation 969:/usr/include/c++/4.8/bits/stl_vector.h **** * could be expensive for a %vector and if it is frequently 970:/usr/include/c++/4.8/bits/stl_vector.h **** * used the user should consider using std::list. 971:/usr/include/c++/4.8/bits/stl_vector.h **** */ 972:/usr/include/c++/4.8/bits/stl_vector.h **** iterator 973:/usr/include/c++/4.8/bits/stl_vector.h **** insert(iterator __position, const value_type& __x); 974:/usr/include/c++/4.8/bits/stl_vector.h **** 975:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 976:/usr/include/c++/4.8/bits/stl_vector.h **** /** 977:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Inserts given rvalue into %vector before specified iterator. 978:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __position An iterator into the %vector. 979:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __x Data to be inserted. 980:/usr/include/c++/4.8/bits/stl_vector.h **** * @return An iterator that points to the inserted data. 981:/usr/include/c++/4.8/bits/stl_vector.h **** * 982:/usr/include/c++/4.8/bits/stl_vector.h **** * This function will insert a copy of the given rvalue before 983:/usr/include/c++/4.8/bits/stl_vector.h **** * the specified location. Note that this kind of operation 984:/usr/include/c++/4.8/bits/stl_vector.h **** * could be expensive for a %vector and if it is frequently 985:/usr/include/c++/4.8/bits/stl_vector.h **** * used the user should consider using std::list. 986:/usr/include/c++/4.8/bits/stl_vector.h **** */ 987:/usr/include/c++/4.8/bits/stl_vector.h **** iterator 988:/usr/include/c++/4.8/bits/stl_vector.h **** insert(iterator __position, value_type&& __x) 989:/usr/include/c++/4.8/bits/stl_vector.h **** { return emplace(__position, std::move(__x)); } 990:/usr/include/c++/4.8/bits/stl_vector.h **** 991:/usr/include/c++/4.8/bits/stl_vector.h **** /** 992:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Inserts an initializer_list into the %vector. 993:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __position An iterator into the %vector. 994:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __l An initializer_list. 995:/usr/include/c++/4.8/bits/stl_vector.h **** * 996:/usr/include/c++/4.8/bits/stl_vector.h **** * This function will insert copies of the data in the 997:/usr/include/c++/4.8/bits/stl_vector.h **** * initializer_list @a l into the %vector before the location 998:/usr/include/c++/4.8/bits/stl_vector.h **** * specified by @a position. 999:/usr/include/c++/4.8/bits/stl_vector.h **** * 1000:/usr/include/c++/4.8/bits/stl_vector.h **** * Note that this kind of operation could be expensive for a 1001:/usr/include/c++/4.8/bits/stl_vector.h **** * %vector and if it is frequently used the user should 1002:/usr/include/c++/4.8/bits/stl_vector.h **** * consider using std::list. 1003:/usr/include/c++/4.8/bits/stl_vector.h **** */ 1004:/usr/include/c++/4.8/bits/stl_vector.h **** void 1005:/usr/include/c++/4.8/bits/stl_vector.h **** insert(iterator __position, initializer_list __l) 1006:/usr/include/c++/4.8/bits/stl_vector.h **** { this->insert(__position, __l.begin(), __l.end()); } 1007:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 1008:/usr/include/c++/4.8/bits/stl_vector.h **** 1009:/usr/include/c++/4.8/bits/stl_vector.h **** /** 1010:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Inserts a number of copies of given data into the %vector. 1011:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __position An iterator into the %vector. GAS LISTING /tmp/ccrAK1jU.s page 81 1012:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __n Number of elements to be inserted. 1013:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __x Data to be inserted. 1014:/usr/include/c++/4.8/bits/stl_vector.h **** * 1015:/usr/include/c++/4.8/bits/stl_vector.h **** * This function will insert a specified number of copies of 1016:/usr/include/c++/4.8/bits/stl_vector.h **** * the given data before the location specified by @a position. 1017:/usr/include/c++/4.8/bits/stl_vector.h **** * 1018:/usr/include/c++/4.8/bits/stl_vector.h **** * Note that this kind of operation could be expensive for a 1019:/usr/include/c++/4.8/bits/stl_vector.h **** * %vector and if it is frequently used the user should 1020:/usr/include/c++/4.8/bits/stl_vector.h **** * consider using std::list. 1021:/usr/include/c++/4.8/bits/stl_vector.h **** */ 1022:/usr/include/c++/4.8/bits/stl_vector.h **** void 1023:/usr/include/c++/4.8/bits/stl_vector.h **** insert(iterator __position, size_type __n, const value_type& __x) 1024:/usr/include/c++/4.8/bits/stl_vector.h **** { _M_fill_insert(__position, __n, __x); } 1025:/usr/include/c++/4.8/bits/stl_vector.h **** 1026:/usr/include/c++/4.8/bits/stl_vector.h **** /** 1027:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Inserts a range into the %vector. 1028:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __position An iterator into the %vector. 1029:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __first An input iterator. 1030:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __last An input iterator. 1031:/usr/include/c++/4.8/bits/stl_vector.h **** * 1032:/usr/include/c++/4.8/bits/stl_vector.h **** * This function will insert copies of the data in the range 1033:/usr/include/c++/4.8/bits/stl_vector.h **** * [__first,__last) into the %vector before the location specified 1034:/usr/include/c++/4.8/bits/stl_vector.h **** * by @a pos. 1035:/usr/include/c++/4.8/bits/stl_vector.h **** * 1036:/usr/include/c++/4.8/bits/stl_vector.h **** * Note that this kind of operation could be expensive for a 1037:/usr/include/c++/4.8/bits/stl_vector.h **** * %vector and if it is frequently used the user should 1038:/usr/include/c++/4.8/bits/stl_vector.h **** * consider using std::list. 1039:/usr/include/c++/4.8/bits/stl_vector.h **** */ 1040:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 1041:/usr/include/c++/4.8/bits/stl_vector.h **** template> 1043:/usr/include/c++/4.8/bits/stl_vector.h **** void 1044:/usr/include/c++/4.8/bits/stl_vector.h **** insert(iterator __position, _InputIterator __first, 1045:/usr/include/c++/4.8/bits/stl_vector.h **** _InputIterator __last) 1046:/usr/include/c++/4.8/bits/stl_vector.h **** { _M_insert_dispatch(__position, __first, __last, __false_type()); } 1047:/usr/include/c++/4.8/bits/stl_vector.h **** #else 1048:/usr/include/c++/4.8/bits/stl_vector.h **** template 1049:/usr/include/c++/4.8/bits/stl_vector.h **** void 1050:/usr/include/c++/4.8/bits/stl_vector.h **** insert(iterator __position, _InputIterator __first, 1051:/usr/include/c++/4.8/bits/stl_vector.h **** _InputIterator __last) 1052:/usr/include/c++/4.8/bits/stl_vector.h **** { 1053:/usr/include/c++/4.8/bits/stl_vector.h **** // Check whether it's an integral type. If so, it's not an iterator. 1054:/usr/include/c++/4.8/bits/stl_vector.h **** typedef typename std::__is_integer<_InputIterator>::__type _Integral; 1055:/usr/include/c++/4.8/bits/stl_vector.h **** _M_insert_dispatch(__position, __first, __last, _Integral()); 1056:/usr/include/c++/4.8/bits/stl_vector.h **** } 1057:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 1058:/usr/include/c++/4.8/bits/stl_vector.h **** 1059:/usr/include/c++/4.8/bits/stl_vector.h **** /** 1060:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Remove element at given position. 1061:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __position Iterator pointing to element to be erased. 1062:/usr/include/c++/4.8/bits/stl_vector.h **** * @return An iterator pointing to the next element (or end()). 1063:/usr/include/c++/4.8/bits/stl_vector.h **** * 1064:/usr/include/c++/4.8/bits/stl_vector.h **** * This function will erase the element at the given position and thus 1065:/usr/include/c++/4.8/bits/stl_vector.h **** * shorten the %vector by one. 1066:/usr/include/c++/4.8/bits/stl_vector.h **** * 1067:/usr/include/c++/4.8/bits/stl_vector.h **** * Note This operation could be expensive and if it is 1068:/usr/include/c++/4.8/bits/stl_vector.h **** * frequently used the user should consider using std::list. GAS LISTING /tmp/ccrAK1jU.s page 82 1069:/usr/include/c++/4.8/bits/stl_vector.h **** * The user is also cautioned that this function only erases 1070:/usr/include/c++/4.8/bits/stl_vector.h **** * the element, and that if the element is itself a pointer, 1071:/usr/include/c++/4.8/bits/stl_vector.h **** * the pointed-to memory is not touched in any way. Managing 1072:/usr/include/c++/4.8/bits/stl_vector.h **** * the pointer is the user's responsibility. 1073:/usr/include/c++/4.8/bits/stl_vector.h **** */ 1074:/usr/include/c++/4.8/bits/stl_vector.h **** iterator 1075:/usr/include/c++/4.8/bits/stl_vector.h **** erase(iterator __position); 1076:/usr/include/c++/4.8/bits/stl_vector.h **** 1077:/usr/include/c++/4.8/bits/stl_vector.h **** /** 1078:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Remove a range of elements. 1079:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __first Iterator pointing to the first element to be erased. 1080:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __last Iterator pointing to one past the last element to be 1081:/usr/include/c++/4.8/bits/stl_vector.h **** * erased. 1082:/usr/include/c++/4.8/bits/stl_vector.h **** * @return An iterator pointing to the element pointed to by @a __last 1083:/usr/include/c++/4.8/bits/stl_vector.h **** * prior to erasing (or end()). 1084:/usr/include/c++/4.8/bits/stl_vector.h **** * 1085:/usr/include/c++/4.8/bits/stl_vector.h **** * This function will erase the elements in the range 1086:/usr/include/c++/4.8/bits/stl_vector.h **** * [__first,__last) and shorten the %vector accordingly. 1087:/usr/include/c++/4.8/bits/stl_vector.h **** * 1088:/usr/include/c++/4.8/bits/stl_vector.h **** * Note This operation could be expensive and if it is 1089:/usr/include/c++/4.8/bits/stl_vector.h **** * frequently used the user should consider using std::list. 1090:/usr/include/c++/4.8/bits/stl_vector.h **** * The user is also cautioned that this function only erases 1091:/usr/include/c++/4.8/bits/stl_vector.h **** * the elements, and that if the elements themselves are 1092:/usr/include/c++/4.8/bits/stl_vector.h **** * pointers, the pointed-to memory is not touched in any way. 1093:/usr/include/c++/4.8/bits/stl_vector.h **** * Managing the pointer is the user's responsibility. 1094:/usr/include/c++/4.8/bits/stl_vector.h **** */ 1095:/usr/include/c++/4.8/bits/stl_vector.h **** iterator 1096:/usr/include/c++/4.8/bits/stl_vector.h **** erase(iterator __first, iterator __last); 1097:/usr/include/c++/4.8/bits/stl_vector.h **** 1098:/usr/include/c++/4.8/bits/stl_vector.h **** /** 1099:/usr/include/c++/4.8/bits/stl_vector.h **** * @brief Swaps data with another %vector. 1100:/usr/include/c++/4.8/bits/stl_vector.h **** * @param __x A %vector of the same element and allocator types. 1101:/usr/include/c++/4.8/bits/stl_vector.h **** * 1102:/usr/include/c++/4.8/bits/stl_vector.h **** * This exchanges the elements between two vectors in constant time. 1103:/usr/include/c++/4.8/bits/stl_vector.h **** * (Three pointers, so it should be quite fast.) 1104:/usr/include/c++/4.8/bits/stl_vector.h **** * Note that the global std::swap() function is specialized such that 1105:/usr/include/c++/4.8/bits/stl_vector.h **** * std::swap(v1,v2) will feed to this function. 1106:/usr/include/c++/4.8/bits/stl_vector.h **** */ 1107:/usr/include/c++/4.8/bits/stl_vector.h **** void 1108:/usr/include/c++/4.8/bits/stl_vector.h **** swap(vector& __x) 1109:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 1110:/usr/include/c++/4.8/bits/stl_vector.h **** noexcept(_Alloc_traits::_S_nothrow_swap()) 1111:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 1112:/usr/include/c++/4.8/bits/stl_vector.h **** { 1113:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_swap_data(__x._M_impl); 1114:/usr/include/c++/4.8/bits/stl_vector.h **** _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), 1115:/usr/include/c++/4.8/bits/stl_vector.h **** __x._M_get_Tp_allocator()); 1116:/usr/include/c++/4.8/bits/stl_vector.h **** } 1117:/usr/include/c++/4.8/bits/stl_vector.h **** 1118:/usr/include/c++/4.8/bits/stl_vector.h **** /** 1119:/usr/include/c++/4.8/bits/stl_vector.h **** * Erases all the elements. Note that this function only erases the 1120:/usr/include/c++/4.8/bits/stl_vector.h **** * elements, and that if the elements themselves are pointers, the 1121:/usr/include/c++/4.8/bits/stl_vector.h **** * pointed-to memory is not touched in any way. Managing the pointer is 1122:/usr/include/c++/4.8/bits/stl_vector.h **** * the user's responsibility. 1123:/usr/include/c++/4.8/bits/stl_vector.h **** */ 1124:/usr/include/c++/4.8/bits/stl_vector.h **** void 1125:/usr/include/c++/4.8/bits/stl_vector.h **** clear() _GLIBCXX_NOEXCEPT GAS LISTING /tmp/ccrAK1jU.s page 83 1126:/usr/include/c++/4.8/bits/stl_vector.h **** { _M_erase_at_end(this->_M_impl._M_start); } 1127:/usr/include/c++/4.8/bits/stl_vector.h **** 1128:/usr/include/c++/4.8/bits/stl_vector.h **** protected: 1129:/usr/include/c++/4.8/bits/stl_vector.h **** /** 1130:/usr/include/c++/4.8/bits/stl_vector.h **** * Memory expansion handler. Uses the member allocation function to 1131:/usr/include/c++/4.8/bits/stl_vector.h **** * obtain @a n bytes of memory, and then copies [first,last) into it. 1132:/usr/include/c++/4.8/bits/stl_vector.h **** */ 1133:/usr/include/c++/4.8/bits/stl_vector.h **** template 1134:/usr/include/c++/4.8/bits/stl_vector.h **** pointer 1135:/usr/include/c++/4.8/bits/stl_vector.h **** _M_allocate_and_copy(size_type __n, 1136:/usr/include/c++/4.8/bits/stl_vector.h **** _ForwardIterator __first, _ForwardIterator __last) 1137:/usr/include/c++/4.8/bits/stl_vector.h **** { 1138:/usr/include/c++/4.8/bits/stl_vector.h **** pointer __result = this->_M_allocate(__n); 1139:/usr/include/c++/4.8/bits/stl_vector.h **** __try 1140:/usr/include/c++/4.8/bits/stl_vector.h **** { 1141:/usr/include/c++/4.8/bits/stl_vector.h **** std::__uninitialized_copy_a(__first, __last, __result, 1142:/usr/include/c++/4.8/bits/stl_vector.h **** _M_get_Tp_allocator()); 1143:/usr/include/c++/4.8/bits/stl_vector.h **** return __result; 1144:/usr/include/c++/4.8/bits/stl_vector.h **** } 1145:/usr/include/c++/4.8/bits/stl_vector.h **** __catch(...) 1146:/usr/include/c++/4.8/bits/stl_vector.h **** { 1147:/usr/include/c++/4.8/bits/stl_vector.h **** _M_deallocate(__result, __n); 1148:/usr/include/c++/4.8/bits/stl_vector.h **** __throw_exception_again; 1149:/usr/include/c++/4.8/bits/stl_vector.h **** } 1150:/usr/include/c++/4.8/bits/stl_vector.h **** } 1151:/usr/include/c++/4.8/bits/stl_vector.h **** 1152:/usr/include/c++/4.8/bits/stl_vector.h **** 1153:/usr/include/c++/4.8/bits/stl_vector.h **** // Internal constructor functions follow. 1154:/usr/include/c++/4.8/bits/stl_vector.h **** 1155:/usr/include/c++/4.8/bits/stl_vector.h **** // Called by the range constructor to implement [23.1.1]/9 1156:/usr/include/c++/4.8/bits/stl_vector.h **** 1157:/usr/include/c++/4.8/bits/stl_vector.h **** // _GLIBCXX_RESOLVE_LIB_DEFECTS 1158:/usr/include/c++/4.8/bits/stl_vector.h **** // 438. Ambiguity in the "do the right thing" clause 1159:/usr/include/c++/4.8/bits/stl_vector.h **** template 1160:/usr/include/c++/4.8/bits/stl_vector.h **** void 1161:/usr/include/c++/4.8/bits/stl_vector.h **** _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type) 1162:/usr/include/c++/4.8/bits/stl_vector.h **** { 1163:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_start = _M_allocate(static_cast(__n)); 1164:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_end_of_storage = 1165:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_start + static_cast(__n); 1166:/usr/include/c++/4.8/bits/stl_vector.h **** _M_fill_initialize(static_cast(__n), __value); 1167:/usr/include/c++/4.8/bits/stl_vector.h **** } 1168:/usr/include/c++/4.8/bits/stl_vector.h **** 1169:/usr/include/c++/4.8/bits/stl_vector.h **** // Called by the range constructor to implement [23.1.1]/9 1170:/usr/include/c++/4.8/bits/stl_vector.h **** template 1171:/usr/include/c++/4.8/bits/stl_vector.h **** void 1172:/usr/include/c++/4.8/bits/stl_vector.h **** _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 1173:/usr/include/c++/4.8/bits/stl_vector.h **** __false_type) 1174:/usr/include/c++/4.8/bits/stl_vector.h **** { 1175:/usr/include/c++/4.8/bits/stl_vector.h **** typedef typename std::iterator_traits<_InputIterator>:: 1176:/usr/include/c++/4.8/bits/stl_vector.h **** iterator_category _IterCategory; 1177:/usr/include/c++/4.8/bits/stl_vector.h **** _M_range_initialize(__first, __last, _IterCategory()); 1178:/usr/include/c++/4.8/bits/stl_vector.h **** } 1179:/usr/include/c++/4.8/bits/stl_vector.h **** 1180:/usr/include/c++/4.8/bits/stl_vector.h **** // Called by the second initialize_dispatch above 1181:/usr/include/c++/4.8/bits/stl_vector.h **** template 1182:/usr/include/c++/4.8/bits/stl_vector.h **** void GAS LISTING /tmp/ccrAK1jU.s page 84 1183:/usr/include/c++/4.8/bits/stl_vector.h **** _M_range_initialize(_InputIterator __first, 1184:/usr/include/c++/4.8/bits/stl_vector.h **** _InputIterator __last, std::input_iterator_tag) 1185:/usr/include/c++/4.8/bits/stl_vector.h **** { 1186:/usr/include/c++/4.8/bits/stl_vector.h **** for (; __first != __last; ++__first) 1187:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L 1188:/usr/include/c++/4.8/bits/stl_vector.h **** emplace_back(*__first); 1189:/usr/include/c++/4.8/bits/stl_vector.h **** #else 1190:/usr/include/c++/4.8/bits/stl_vector.h **** push_back(*__first); 1191:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 1192:/usr/include/c++/4.8/bits/stl_vector.h **** } 1193:/usr/include/c++/4.8/bits/stl_vector.h **** 1194:/usr/include/c++/4.8/bits/stl_vector.h **** // Called by the second initialize_dispatch above 1195:/usr/include/c++/4.8/bits/stl_vector.h **** template 1196:/usr/include/c++/4.8/bits/stl_vector.h **** void 1197:/usr/include/c++/4.8/bits/stl_vector.h **** _M_range_initialize(_ForwardIterator __first, 1127 .loc 5 1197 0 1128 .cfi_startproc 1129 .LVL113: 1130 0000 4156 pushq %r14 1131 .cfi_def_cfa_offset 16 1132 .cfi_offset 14, -16 1133 0002 4155 pushq %r13 1134 .cfi_def_cfa_offset 24 1135 .cfi_offset 13, -24 1136 0004 4154 pushq %r12 1137 .cfi_def_cfa_offset 32 1138 .cfi_offset 12, -32 1139 0006 55 pushq %rbp 1140 .cfi_def_cfa_offset 40 1141 .cfi_offset 6, -40 1142 0007 53 pushq %rbx 1143 .cfi_def_cfa_offset 48 1144 .cfi_offset 3, -48 1145 0008 4889FB movq %rdi, %rbx 1146 000b 4989F4 movq %rsi, %r12 1147 000e 4989D5 movq %rdx, %r13 1148 .LBB12: 1198:/usr/include/c++/4.8/bits/stl_vector.h **** _ForwardIterator __last, std::forward_iterator_tag) 1199:/usr/include/c++/4.8/bits/stl_vector.h **** { 1200:/usr/include/c++/4.8/bits/stl_vector.h **** const size_type __n = std::distance(__first, __last); 1149 .loc 5 1200 0 1150 0011 4889D6 movq %rdx, %rsi 1151 .LVL114: 1152 0014 4C89E7 movq %r12, %rdi 1153 .LVL115: 1154 0017 E8000000 call _ZSt8distanceIPKSsENSt15iterator_traitsIT_E15difference_typeES3_S3_ 1154 00 1155 .LVL116: 1156 001c 4989C6 movq %rax, %r14 1157 .LVL117: 1201:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_start = this->_M_allocate(__n); 1158 .loc 5 1201 0 1159 001f 4889C6 movq %rax, %rsi 1160 0022 4889DF movq %rbx, %rdi 1161 0025 E8000000 call _ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm 1161 00 1162 .LVL118: GAS LISTING /tmp/ccrAK1jU.s page 85 1163 002a 4889C5 movq %rax, %rbp 1164 002d 488903 movq %rax, (%rbx) 1202:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 1165 .loc 5 1202 0 1166 0030 4A8D04F0 leaq (%rax,%r14,8), %rax 1167 0034 48894310 movq %rax, 16(%rbx) 1203:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_finish = 1204:/usr/include/c++/4.8/bits/stl_vector.h **** std::__uninitialized_copy_a(__first, __last, 1205:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_start, 1206:/usr/include/c++/4.8/bits/stl_vector.h **** _M_get_Tp_allocator()); 1168 .loc 5 1206 0 1169 0038 4889DF movq %rbx, %rdi 1170 003b E8000000 call _ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv 1170 00 1171 .LVL119: 1172 0040 4889C1 movq %rax, %rcx 1173 0043 4889EA movq %rbp, %rdx 1174 0046 4C89EE movq %r13, %rsi 1175 0049 4C89E7 movq %r12, %rdi 1176 004c E8000000 call _ZSt22__uninitialized_copy_aIPKSsPSsSsET0_T_S4_S3_RSaIT1_E 1176 00 1177 .LVL120: 1203:/usr/include/c++/4.8/bits/stl_vector.h **** this->_M_impl._M_finish = 1178 .loc 5 1203 0 1179 0051 48894308 movq %rax, 8(%rbx) 1180 .LBE12: 1207:/usr/include/c++/4.8/bits/stl_vector.h **** } 1181 .loc 5 1207 0 1182 0055 5B popq %rbx 1183 .cfi_def_cfa_offset 40 1184 .LVL121: 1185 0056 5D popq %rbp 1186 .cfi_def_cfa_offset 32 1187 0057 415C popq %r12 1188 .cfi_def_cfa_offset 24 1189 .LVL122: 1190 0059 415D popq %r13 1191 .cfi_def_cfa_offset 16 1192 .LVL123: 1193 005b 415E popq %r14 1194 .cfi_def_cfa_offset 8 1195 .LVL124: 1196 005d C3 ret 1197 .cfi_endproc 1198 .LFE1749: 1200 .section .text._ZNSt6vectorISsSaISsEEC2ESt16initializer_listISsERKS0_,"axG",@progbits,_ZNSt6vector 1201 .align 2 1202 .weak _ZNSt6vectorISsSaISsEEC2ESt16initializer_listISsERKS0_ 1204 _ZNSt6vectorISsSaISsEEC2ESt16initializer_listISsERKS0_: 1205 .LFB1681: 364:/usr/include/c++/4.8/bits/stl_vector.h **** const allocator_type& __a = allocator_type()) 1206 .loc 5 364 0 1207 .cfi_startproc 1208 .cfi_personality 0x3,__gxx_personality_v0 1209 .cfi_lsda 0x3,.LLSDA1681 1210 .LVL125: 1211 0000 55 pushq %rbp GAS LISTING /tmp/ccrAK1jU.s page 86 1212 .cfi_def_cfa_offset 16 1213 .cfi_offset 6, -16 1214 0001 53 pushq %rbx 1215 .cfi_def_cfa_offset 24 1216 .cfi_offset 3, -24 1217 0002 4883EC28 subq $40, %rsp 1218 .cfi_def_cfa_offset 64 1219 0006 4889FB movq %rdi, %rbx 1220 0009 48897424 movq %rsi, 16(%rsp) 1220 10 1221 000e 48895424 movq %rdx, 24(%rsp) 1221 18 1222 .LBB13: 366:/usr/include/c++/4.8/bits/stl_vector.h **** { 1223 .loc 5 366 0 1224 0013 4889CE movq %rcx, %rsi 1225 0016 E8000000 call _ZNSt12_Vector_baseISsSaISsEEC2ERKS0_ 1225 00 1226 .LVL126: 369:/usr/include/c++/4.8/bits/stl_vector.h **** } 1227 .loc 5 369 0 1228 001b 488D7C24 leaq 16(%rsp), %rdi 1228 10 1229 0020 E8000000 call _ZNKSt16initializer_listISsE3endEv 1229 00 1230 .LVL127: 1231 0025 4889C5 movq %rax, %rbp 1232 0028 488D7C24 leaq 16(%rsp), %rdi 1232 10 1233 002d E8000000 call _ZNKSt16initializer_listISsE5beginEv 1233 00 1234 .LVL128: 368:/usr/include/c++/4.8/bits/stl_vector.h **** random_access_iterator_tag()); 1235 .loc 5 368 0 1236 0032 C6042400 movb $0, (%rsp) 1237 0036 4889EA movq %rbp, %rdx 1238 0039 4889C6 movq %rax, %rsi 1239 003c 4889DF movq %rbx, %rdi 1240 .LEHB3: 1241 003f E8000000 call _ZNSt6vectorISsSaISsEE19_M_range_initializeIPKSsEEvT_S5_St20forward_iterator_tag 1241 00 1242 .LEHE3: 1243 .LVL129: 1244 0044 EB13 jmp .L94 1245 .L93: 1246 0046 4889C5 movq %rax, %rbp 366:/usr/include/c++/4.8/bits/stl_vector.h **** { 1247 .loc 5 366 0 1248 0049 4889DF movq %rbx, %rdi 1249 004c E8000000 call _ZNSt12_Vector_baseISsSaISsEED2Ev 1249 00 1250 .LVL130: 1251 0051 4889EF movq %rbp, %rdi 1252 .LEHB4: 1253 0054 E8000000 call _Unwind_Resume 1253 00 1254 .LEHE4: GAS LISTING /tmp/ccrAK1jU.s page 87 1255 .LVL131: 1256 .L94: 1257 .LBE13: 370:/usr/include/c++/4.8/bits/stl_vector.h **** #endif 1258 .loc 5 370 0 1259 0059 4883C428 addq $40, %rsp 1260 .cfi_def_cfa_offset 24 1261 005d 5B popq %rbx 1262 .cfi_def_cfa_offset 16 1263 .LVL132: 1264 005e 5D popq %rbp 1265 .cfi_def_cfa_offset 8 1266 005f C3 ret 1267 .cfi_endproc 1268 .LFE1681: 1269 .section .gcc_except_table._ZNSt6vectorISsSaISsEEC2ESt16initializer_listISsERKS0_,"aG",@progbits,_ 1270 .LLSDA1681: 1271 0000 FF .byte 0xff 1272 0001 FF .byte 0xff 1273 0002 01 .byte 0x1 1274 0003 08 .uleb128 .LLSDACSE1681-.LLSDACSB1681 1275 .LLSDACSB1681: 1276 0004 3F .uleb128 .LEHB3-.LFB1681 1277 0005 05 .uleb128 .LEHE3-.LEHB3 1278 0006 46 .uleb128 .L93-.LFB1681 1279 0007 00 .uleb128 0 1280 0008 54 .uleb128 .LEHB4-.LFB1681 1281 0009 05 .uleb128 .LEHE4-.LEHB4 1282 000a 00 .uleb128 0 1283 000b 00 .uleb128 0 1284 .LLSDACSE1681: 1285 .section .text._ZNSt6vectorISsSaISsEEC2ESt16initializer_listISsERKS0_,"axG",@progbits,_ZNSt6vector 1287 .weak _ZNSt6vectorISsSaISsEEC1ESt16initializer_listISsERKS0_ 1288 .set _ZNSt6vectorISsSaISsEEC1ESt16initializer_listISsERKS0_,_ZNSt6vectorISsSaISsEEC2ESt16initializ 1289 .section .text._ZNK9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEE4baseEv,"axG",@progbits,_ 1290 .align 2 1291 .weak _ZNK9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEE4baseEv 1293 _ZNK9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEE4baseEv: 1294 .LFB1837: 751:/usr/include/c++/4.8/bits/stl_iterator.h **** 752:/usr/include/c++/4.8/bits/stl_iterator.h **** __normal_iterator 753:/usr/include/c++/4.8/bits/stl_iterator.h **** operator++(int) 754:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __normal_iterator(_M_current++); } 755:/usr/include/c++/4.8/bits/stl_iterator.h **** 756:/usr/include/c++/4.8/bits/stl_iterator.h **** // Bidirectional iterator requirements 757:/usr/include/c++/4.8/bits/stl_iterator.h **** __normal_iterator& 758:/usr/include/c++/4.8/bits/stl_iterator.h **** operator--() 759:/usr/include/c++/4.8/bits/stl_iterator.h **** { 760:/usr/include/c++/4.8/bits/stl_iterator.h **** --_M_current; 761:/usr/include/c++/4.8/bits/stl_iterator.h **** return *this; 762:/usr/include/c++/4.8/bits/stl_iterator.h **** } 763:/usr/include/c++/4.8/bits/stl_iterator.h **** 764:/usr/include/c++/4.8/bits/stl_iterator.h **** __normal_iterator 765:/usr/include/c++/4.8/bits/stl_iterator.h **** operator--(int) 766:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __normal_iterator(_M_current--); } 767:/usr/include/c++/4.8/bits/stl_iterator.h **** 768:/usr/include/c++/4.8/bits/stl_iterator.h **** // Random access iterator requirements GAS LISTING /tmp/ccrAK1jU.s page 88 769:/usr/include/c++/4.8/bits/stl_iterator.h **** reference 770:/usr/include/c++/4.8/bits/stl_iterator.h **** operator[](const difference_type& __n) const 771:/usr/include/c++/4.8/bits/stl_iterator.h **** { return _M_current[__n]; } 772:/usr/include/c++/4.8/bits/stl_iterator.h **** 773:/usr/include/c++/4.8/bits/stl_iterator.h **** __normal_iterator& 774:/usr/include/c++/4.8/bits/stl_iterator.h **** operator+=(const difference_type& __n) 775:/usr/include/c++/4.8/bits/stl_iterator.h **** { _M_current += __n; return *this; } 776:/usr/include/c++/4.8/bits/stl_iterator.h **** 777:/usr/include/c++/4.8/bits/stl_iterator.h **** __normal_iterator 778:/usr/include/c++/4.8/bits/stl_iterator.h **** operator+(const difference_type& __n) const 779:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __normal_iterator(_M_current + __n); } 780:/usr/include/c++/4.8/bits/stl_iterator.h **** 781:/usr/include/c++/4.8/bits/stl_iterator.h **** __normal_iterator& 782:/usr/include/c++/4.8/bits/stl_iterator.h **** operator-=(const difference_type& __n) 783:/usr/include/c++/4.8/bits/stl_iterator.h **** { _M_current -= __n; return *this; } 784:/usr/include/c++/4.8/bits/stl_iterator.h **** 785:/usr/include/c++/4.8/bits/stl_iterator.h **** __normal_iterator 786:/usr/include/c++/4.8/bits/stl_iterator.h **** operator-(const difference_type& __n) const 787:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __normal_iterator(_M_current - __n); } 788:/usr/include/c++/4.8/bits/stl_iterator.h **** 789:/usr/include/c++/4.8/bits/stl_iterator.h **** const _Iterator& 790:/usr/include/c++/4.8/bits/stl_iterator.h **** base() const 1295 .loc 6 790 0 1296 .cfi_startproc 1297 .LVL133: 1298 0000 4889F8 movq %rdi, %rax 791:/usr/include/c++/4.8/bits/stl_iterator.h **** { return _M_current; } 1299 .loc 6 791 0 1300 0003 C3 ret 1301 .cfi_endproc 1302 .LFE1837: 1304 .section .text._ZN9__gnu_cxxneIPKSsSt6vectorISsSaISsEEEEbRKNS_17__normal_iteratorIT_T0_EESB_,"axG" 1305 .weak _ZN9__gnu_cxxneIPKSsSt6vectorISsSaISsEEEEbRKNS_17__normal_iteratorIT_T0_EESB_ 1307 _ZN9__gnu_cxxneIPKSsSt6vectorISsSaISsEEEEbRKNS_17__normal_iteratorIT_T0_EESB_: 1308 .LFB1822: 792:/usr/include/c++/4.8/bits/stl_iterator.h **** }; 793:/usr/include/c++/4.8/bits/stl_iterator.h **** 794:/usr/include/c++/4.8/bits/stl_iterator.h **** // Note: In what follows, the left- and right-hand-side iterators are 795:/usr/include/c++/4.8/bits/stl_iterator.h **** // allowed to vary in types (conceptually in cv-qualification) so that 796:/usr/include/c++/4.8/bits/stl_iterator.h **** // comparison between cv-qualified and non-cv-qualified iterators be 797:/usr/include/c++/4.8/bits/stl_iterator.h **** // valid. However, the greedy and unfriendly operators in std::rel_ops 798:/usr/include/c++/4.8/bits/stl_iterator.h **** // will make overload resolution ambiguous (when in scope) if we don't 799:/usr/include/c++/4.8/bits/stl_iterator.h **** // provide overloads whose operands are of the same type. Can someone 800:/usr/include/c++/4.8/bits/stl_iterator.h **** // remind me what generic programming is about? -- Gaby 801:/usr/include/c++/4.8/bits/stl_iterator.h **** 802:/usr/include/c++/4.8/bits/stl_iterator.h **** // Forward iterator requirements 803:/usr/include/c++/4.8/bits/stl_iterator.h **** template 804:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool 805:/usr/include/c++/4.8/bits/stl_iterator.h **** operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, 806:/usr/include/c++/4.8/bits/stl_iterator.h **** const __normal_iterator<_IteratorR, _Container>& __rhs) 807:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __lhs.base() == __rhs.base(); } 808:/usr/include/c++/4.8/bits/stl_iterator.h **** 809:/usr/include/c++/4.8/bits/stl_iterator.h **** template 810:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool 811:/usr/include/c++/4.8/bits/stl_iterator.h **** operator==(const __normal_iterator<_Iterator, _Container>& __lhs, 812:/usr/include/c++/4.8/bits/stl_iterator.h **** const __normal_iterator<_Iterator, _Container>& __rhs) 813:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __lhs.base() == __rhs.base(); } GAS LISTING /tmp/ccrAK1jU.s page 89 814:/usr/include/c++/4.8/bits/stl_iterator.h **** 815:/usr/include/c++/4.8/bits/stl_iterator.h **** template 816:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool 817:/usr/include/c++/4.8/bits/stl_iterator.h **** operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, 818:/usr/include/c++/4.8/bits/stl_iterator.h **** const __normal_iterator<_IteratorR, _Container>& __rhs) 819:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __lhs.base() != __rhs.base(); } 820:/usr/include/c++/4.8/bits/stl_iterator.h **** 821:/usr/include/c++/4.8/bits/stl_iterator.h **** template 822:/usr/include/c++/4.8/bits/stl_iterator.h **** inline bool 823:/usr/include/c++/4.8/bits/stl_iterator.h **** operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, 1309 .loc 6 823 0 1310 .cfi_startproc 1311 .LVL134: 1312 0000 55 pushq %rbp 1313 .cfi_def_cfa_offset 16 1314 .cfi_offset 6, -16 1315 0001 53 pushq %rbx 1316 .cfi_def_cfa_offset 24 1317 .cfi_offset 3, -24 1318 0002 4883EC08 subq $8, %rsp 1319 .cfi_def_cfa_offset 32 1320 0006 4889F5 movq %rsi, %rbp 824:/usr/include/c++/4.8/bits/stl_iterator.h **** const __normal_iterator<_Iterator, _Container>& __rhs) 825:/usr/include/c++/4.8/bits/stl_iterator.h **** { return __lhs.base() != __rhs.base(); } 1321 .loc 6 825 0 1322 0009 E8000000 call _ZNK9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEE4baseEv 1322 00 1323 .LVL135: 1324 000e 4889C3 movq %rax, %rbx 1325 0011 4889EF movq %rbp, %rdi 1326 0014 E8000000 call _ZNK9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEE4baseEv 1326 00 1327 .LVL136: 1328 0019 488B00 movq (%rax), %rax 1329 001c 483903 cmpq %rax, (%rbx) 1330 001f 0F95C0 setne %al 1331 0022 4883C408 addq $8, %rsp 1332 .cfi_def_cfa_offset 24 1333 0026 5B popq %rbx 1334 .cfi_def_cfa_offset 16 1335 0027 5D popq %rbp 1336 .cfi_def_cfa_offset 8 1337 .LVL137: 1338 0028 C3 ret 1339 .cfi_endproc 1340 .LFE1822: 1342 .section .text._ZNSt20__uninitialized_copyILb0EE13__uninit_copyIN9__gnu_cxx17__normal_iteratorIPKS 1343 .weak _ZNSt20__uninitialized_copyILb0EE13__uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSsSt6vecto 1345 _ZNSt20__uninitialized_copyILb0EE13__uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaI 1346 .LFB1815: 68:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ForwardIterator __result) 1347 .loc 13 68 0 1348 .cfi_startproc 1349 .cfi_personality 0x3,__gxx_personality_v0 1350 .cfi_lsda 0x3,.LLSDA1815 1351 .LVL138: 1352 0000 4154 pushq %r12 GAS LISTING /tmp/ccrAK1jU.s page 90 1353 .cfi_def_cfa_offset 16 1354 .cfi_offset 12, -16 1355 0002 55 pushq %rbp 1356 .cfi_def_cfa_offset 24 1357 .cfi_offset 6, -24 1358 0003 53 pushq %rbx 1359 .cfi_def_cfa_offset 32 1360 .cfi_offset 3, -32 1361 0004 4883EC20 subq $32, %rsp 1362 .cfi_def_cfa_offset 64 1363 0008 48897C24 movq %rdi, 16(%rsp) 1363 10 1364 000d 48893424 movq %rsi, (%rsp) 1365 0011 4989D4 movq %rdx, %r12 1366 .LVL139: 1367 .LBB14: 71:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __try 1368 .loc 13 71 0 1369 0014 4889D3 movq %rdx, %rbx 74:/usr/include/c++/4.8/bits/stl_uninitialized.h **** std::_Construct(std::__addressof(*__cur), *__first); 1370 .loc 13 74 0 1371 0017 EB2E jmp .L100 1372 .LVL140: 1373 .L101: 75:/usr/include/c++/4.8/bits/stl_uninitialized.h **** return __cur; 1374 .loc 13 75 0 1375 0019 488D7C24 leaq 16(%rsp), %rdi 1375 10 1376 001e E8000000 call _ZNK9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEdeEv 1376 00 1377 .LVL141: 1378 0023 4889C5 movq %rax, %rbp 1379 0026 4889DF movq %rbx, %rdi 1380 0029 E8000000 call _ZSt11__addressofISsEPT_RS0_ 1380 00 1381 .LVL142: 1382 002e 4889EE movq %rbp, %rsi 1383 0031 4889C7 movq %rax, %rdi 1384 .LEHB5: 1385 0034 E8000000 call _ZSt10_ConstructISsIRKSsEEvPT_DpOT0_ 1385 00 1386 .LEHE5: 1387 .LVL143: 74:/usr/include/c++/4.8/bits/stl_uninitialized.h **** std::_Construct(std::__addressof(*__cur), *__first); 1388 .loc 13 74 0 1389 0039 488D7C24 leaq 16(%rsp), %rdi 1389 10 1390 003e E8000000 call _ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEppEv 1390 00 1391 .LVL144: 1392 0043 4883C308 addq $8, %rbx 1393 .LVL145: 1394 .L100: 74:/usr/include/c++/4.8/bits/stl_uninitialized.h **** std::_Construct(std::__addressof(*__cur), *__first); 1395 .loc 13 74 0 is_stmt 0 discriminator 1 1396 0047 4889E6 movq %rsp, %rsi 1397 004a 488D7C24 leaq 16(%rsp), %rdi GAS LISTING /tmp/ccrAK1jU.s page 91 1397 10 1398 004f E8000000 call _ZN9__gnu_cxxneIPKSsSt6vectorISsSaISsEEEEbRKNS_17__normal_iteratorIT_T0_EESB_ 1398 00 1399 .LVL146: 1400 0054 84C0 testb %al, %al 1401 0056 75C1 jne .L101 1402 0058 EB2B jmp .L106 1403 .L105: 1404 005a 4889C3 movq %rax, %rbx 1405 .LVL147: 78:/usr/include/c++/4.8/bits/stl_uninitialized.h **** { 1406 .loc 13 78 0 is_stmt 1 1407 005d 0F1F00 .p2align 4,,6 1408 0060 E8000000 call __cxa_end_catch 1408 00 1409 .LVL148: 1410 0065 4889DF movq %rbx, %rdi 1411 .LEHB6: 1412 0068 E8000000 call _Unwind_Resume 1412 00 1413 .LEHE6: 1414 .LVL149: 1415 .L104: 1416 006d 4889C7 movq %rax, %rdi 1417 0070 E8000000 call __cxa_begin_catch 1417 00 1418 .LVL150: 80:/usr/include/c++/4.8/bits/stl_uninitialized.h **** __throw_exception_again; 1419 .loc 13 80 0 1420 0075 4889DE movq %rbx, %rsi 1421 0078 4C89E7 movq %r12, %rdi 1422 007b E8000000 call _ZSt8_DestroyIPSsEvT_S1_ 1422 00 1423 .LVL151: 1424 .LEHB7: 81:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 1425 .loc 13 81 0 1426 0080 E8000000 call __cxa_rethrow 1426 00 1427 .LEHE7: 1428 .LVL152: 1429 .L106: 1430 .LBE14: 83:/usr/include/c++/4.8/bits/stl_uninitialized.h **** }; 1431 .loc 13 83 0 1432 0085 4889D8 movq %rbx, %rax 1433 0088 4883C420 addq $32, %rsp 1434 .cfi_def_cfa_offset 32 1435 008c 5B popq %rbx 1436 .cfi_def_cfa_offset 24 1437 .LVL153: 1438 008d 5D popq %rbp 1439 .cfi_def_cfa_offset 16 1440 008e 415C popq %r12 1441 .cfi_def_cfa_offset 8 1442 .LVL154: 1443 0090 C3 ret GAS LISTING /tmp/ccrAK1jU.s page 92 1444 .cfi_endproc 1445 .LFE1815: 1446 .section .gcc_except_table._ZNSt20__uninitialized_copyILb0EE13__uninit_copyIN9__gnu_cxx17__normal_ 1447 .align 4 1448 .LLSDA1815: 1449 0000 FF .byte 0xff 1450 0001 03 .byte 0x3 1451 0002 15 .uleb128 .LLSDATT1815-.LLSDATTD1815 1452 .LLSDATTD1815: 1453 0003 01 .byte 0x1 1454 0004 0D .uleb128 .LLSDACSE1815-.LLSDACSB1815 1455 .LLSDACSB1815: 1456 0005 34 .uleb128 .LEHB5-.LFB1815 1457 0006 05 .uleb128 .LEHE5-.LEHB5 1458 0007 6D .uleb128 .L104-.LFB1815 1459 0008 01 .uleb128 0x1 1460 0009 68 .uleb128 .LEHB6-.LFB1815 1461 000a 05 .uleb128 .LEHE6-.LEHB6 1462 000b 00 .uleb128 0 1463 000c 00 .uleb128 0 1464 000d 8001 .uleb128 .LEHB7-.LFB1815 1465 000f 05 .uleb128 .LEHE7-.LEHB7 1466 0010 5A .uleb128 .L105-.LFB1815 1467 0011 00 .uleb128 0 1468 .LLSDACSE1815: 1469 0012 01 .byte 0x1 1470 0013 00 .byte 0 1471 .align 4 1472 0014 00000000 .long 0 1473 1474 .LLSDATT1815: 1475 .section .text._ZNSt20__uninitialized_copyILb0EE13__uninit_copyIN9__gnu_cxx17__normal_iteratorIPKS 1477 .section .text._ZSt18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPS 1478 .weak _ZSt18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA 1480 _ZSt18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA_S9_: 1481 .LFB1801: 107:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ForwardIterator __result) 1482 .loc 13 107 0 1483 .cfi_startproc 1484 .LVL155: 1485 0000 4883EC08 subq $8, %rsp 1486 .cfi_def_cfa_offset 16 1487 .LBB15: 117:/usr/include/c++/4.8/bits/stl_uninitialized.h **** } 1488 .loc 13 117 0 1489 0004 E8000000 call _ZNSt20__uninitialized_copyILb0EE13__uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSsSt6vector 1489 00 1490 .LVL156: 1491 .LBE15: 118:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 1492 .loc 13 118 0 1493 0009 4883C408 addq $8, %rsp 1494 .cfi_def_cfa_offset 8 1495 000d C3 ret 1496 .cfi_endproc 1497 .LFE1801: 1499 .section .text._ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEE GAS LISTING /tmp/ccrAK1jU.s page 93 1500 .weak _ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsSsET 1502 _ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsSsET0_T_SA_ 1503 .LFB1760: 256:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _ForwardIterator __result, allocator<_Tp>&) 1504 .loc 13 256 0 1505 .cfi_startproc 1506 .LVL157: 1507 0000 4883EC08 subq $8, %rsp 1508 .cfi_def_cfa_offset 16 1509 .loc 13 258 0 1510 0004 E8000000 call _ZSt18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA_ 1510 00 1511 .LVL158: 1512 0009 4883C408 addq $8, %rsp 1513 .cfi_def_cfa_offset 8 1514 000d C3 ret 1515 .cfi_endproc 1516 .LFE1760: 1518 .section .text._ZNSt6vectorISsSaISsEEC2ERKS1_,"axG",@progbits,_ZNSt6vectorISsSaISsEEC5ERKS1_,comda 1519 .align 2 1520 .weak _ZNSt6vectorISsSaISsEEC2ERKS1_ 1522 _ZNSt6vectorISsSaISsEEC2ERKS1_: 1523 .LFB1687: 310:/usr/include/c++/4.8/bits/stl_vector.h **** : _Base(__x.size(), 1524 .loc 5 310 0 1525 .cfi_startproc 1526 .cfi_personality 0x3,__gxx_personality_v0 1527 .cfi_lsda 0x3,.LLSDA1687 1528 .LVL159: 1529 0000 4156 pushq %r14 1530 .cfi_def_cfa_offset 16 1531 .cfi_offset 14, -16 1532 0002 4155 pushq %r13 1533 .cfi_def_cfa_offset 24 1534 .cfi_offset 13, -24 1535 0004 4154 pushq %r12 1536 .cfi_def_cfa_offset 32 1537 .cfi_offset 12, -32 1538 0006 55 pushq %rbp 1539 .cfi_def_cfa_offset 40 1540 .cfi_offset 6, -40 1541 0007 53 pushq %rbx 1542 .cfi_def_cfa_offset 48 1543 .cfi_offset 3, -48 1544 0008 4883EC10 subq $16, %rsp 1545 .cfi_def_cfa_offset 64 1546 000c 4889FB movq %rdi, %rbx 1547 000f 4889F5 movq %rsi, %rbp 1548 .LBB16: 312:/usr/include/c++/4.8/bits/stl_vector.h **** { this->_M_impl._M_finish = 1549 .loc 5 312 0 1550 0012 4889F7 movq %rsi, %rdi 1551 .LVL160: 1552 0015 E8000000 call _ZNKSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv 1552 00 1553 .LVL161: 1554 001a 4889C6 movq %rax, %rsi GAS LISTING /tmp/ccrAK1jU.s page 94 1555 001d 488D7C24 leaq 15(%rsp), %rdi 1555 0F 1556 0022 E8000000 call _ZN9__gnu_cxx14__alloc_traitsISaISsEE17_S_select_on_copyERKS1_ 1556 00 1557 .LVL162: 1558 0027 4889EF movq %rbp, %rdi 1559 002a E8000000 call _ZNKSt6vectorISsSaISsEE4sizeEv 1559 00 1560 .LVL163: 1561 002f 488D5424 leaq 15(%rsp), %rdx 1561 0F 1562 0034 4889C6 movq %rax, %rsi 1563 0037 4889DF movq %rbx, %rdi 1564 .LEHB8: 1565 003a E8000000 call _ZNSt12_Vector_baseISsSaISsEEC2EmRKS0_ 1565 00 1566 .LEHE8: 1567 .LVL164: 316:/usr/include/c++/4.8/bits/stl_vector.h **** } 1568 .loc 5 316 0 1569 003f 4889DF movq %rbx, %rdi 1570 0042 E8000000 call _ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv 1570 00 1571 .LVL165: 1572 0047 4989C6 movq %rax, %r14 1573 004a 4C8B2B movq (%rbx), %r13 1574 004d 4889EF movq %rbp, %rdi 1575 0050 E8000000 call _ZNKSt6vectorISsSaISsEE3endEv 1575 00 1576 .LVL166: 1577 0055 4989C4 movq %rax, %r12 1578 0058 4889EF movq %rbp, %rdi 1579 005b E8000000 call _ZNKSt6vectorISsSaISsEE5beginEv 1579 00 1580 .LVL167: 1581 0060 4C89F1 movq %r14, %rcx 1582 0063 4C89EA movq %r13, %rdx 1583 0066 4C89E6 movq %r12, %rsi 1584 0069 4889C7 movq %rax, %rdi 1585 .LEHB9: 1586 006c E8000000 call _ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsSsET0 1586 00 1587 .LEHE9: 1588 .LVL168: 313:/usr/include/c++/4.8/bits/stl_vector.h **** std::__uninitialized_copy_a(__x.begin(), __x.end(), 1589 .loc 5 313 0 1590 0071 48894308 movq %rax, 8(%rbx) 1591 0075 EB13 jmp .L115 1592 .L114: 1593 0077 4889C5 movq %rax, %rbp 1594 .LVL169: 312:/usr/include/c++/4.8/bits/stl_vector.h **** { this->_M_impl._M_finish = 1595 .loc 5 312 0 1596 007a 4889DF movq %rbx, %rdi 1597 007d E8000000 call _ZNSt12_Vector_baseISsSaISsEED2Ev 1597 00 1598 .LVL170: GAS LISTING /tmp/ccrAK1jU.s page 95 1599 0082 4889EF movq %rbp, %rdi 1600 .LEHB10: 1601 0085 E8000000 call _Unwind_Resume 1601 00 1602 .LEHE10: 1603 .LVL171: 1604 .L115: 1605 .LBE16: 317:/usr/include/c++/4.8/bits/stl_vector.h **** 1606 .loc 5 317 0 1607 008a 4883C410 addq $16, %rsp 1608 .cfi_def_cfa_offset 48 1609 008e 5B popq %rbx 1610 .cfi_def_cfa_offset 40 1611 .LVL172: 1612 008f 5D popq %rbp 1613 .cfi_def_cfa_offset 32 1614 .LVL173: 1615 0090 415C popq %r12 1616 .cfi_def_cfa_offset 24 1617 0092 415D popq %r13 1618 .cfi_def_cfa_offset 16 1619 0094 415E popq %r14 1620 .cfi_def_cfa_offset 8 1621 0096 C3 ret 1622 .cfi_endproc 1623 .LFE1687: 1624 .section .gcc_except_table._ZNSt6vectorISsSaISsEEC2ERKS1_,"aG",@progbits,_ZNSt6vectorISsSaISsEEC5E 1625 .LLSDA1687: 1626 0000 FF .byte 0xff 1627 0001 FF .byte 0xff 1628 0002 01 .byte 0x1 1629 0003 0D .uleb128 .LLSDACSE1687-.LLSDACSB1687 1630 .LLSDACSB1687: 1631 0004 3A .uleb128 .LEHB8-.LFB1687 1632 0005 05 .uleb128 .LEHE8-.LEHB8 1633 0006 00 .uleb128 0 1634 0007 00 .uleb128 0 1635 0008 6C .uleb128 .LEHB9-.LFB1687 1636 0009 05 .uleb128 .LEHE9-.LEHB9 1637 000a 77 .uleb128 .L114-.LFB1687 1638 000b 00 .uleb128 0 1639 000c 8501 .uleb128 .LEHB10-.LFB1687 1640 000e 05 .uleb128 .LEHE10-.LEHB10 1641 000f 00 .uleb128 0 1642 0010 00 .uleb128 0 1643 .LLSDACSE1687: 1644 .section .text._ZNSt6vectorISsSaISsEEC2ERKS1_,"axG",@progbits,_ZNSt6vectorISsSaISsEEC5ERKS1_,comda 1646 .weak _ZNSt6vectorISsSaISsEEC1ERKS1_ 1647 .set _ZNSt6vectorISsSaISsEEC1ERKS1_,_ZNSt6vectorISsSaISsEEC2ERKS1_ 1648 .section .rodata.str1.1,"aMS",@progbits,1 1649 .LC0: 1650 0000 666F6F00 .string "foo" 1651 .LC1: 1652 0004 7800 .string "x" 1653 .LC2: 1654 0006 7900 .string "y" GAS LISTING /tmp/ccrAK1jU.s page 96 1655 .LC3: 1656 0008 7A00 .string "z" 1657 .LC4: 1658 000a 20616E64 .string " and " 1658 2000 1659 .text 1660 .globl _Z8manglingiPPKc 1662 _Z8manglingiPPKc: 1663 .LFB1609: 45:mangling.cpp **** Something::Inside i; 1664 .loc 1 45 0 1665 .cfi_startproc 1666 .cfi_personality 0x3,__gxx_personality_v0 1667 .cfi_lsda 0x3,.LLSDA1609 1668 .LVL174: 1669 0034 55 pushq %rbp 1670 .cfi_def_cfa_offset 16 1671 .cfi_offset 6, -16 1672 0035 53 pushq %rbx 1673 .cfi_def_cfa_offset 24 1674 .cfi_offset 3, -24 1675 0036 4883EC78 subq $120, %rsp 1676 .cfi_def_cfa_offset 144 1677 .LBB17: 47:mangling.cpp **** 1678 .loc 1 47 0 1679 003a C7050000 movl $11, _ZN9Something6Inside13anotherStaticE(%rip) 1679 00000B00 1679 0000 50:mangling.cpp **** d.deepMethod("foo"); 1680 .loc 1 50 0 1681 0044 BE170000 movl $23, %esi 1681 00 1682 .LVL175: 1683 0049 488D7C24 leaq 16(%rsp), %rdi 1683 10 1684 .LVL176: 1685 004e E8000000 call _ZN9Something6Inside6Deeper10deepMethodEi 1685 00 1686 .LVL177: 51:mangling.cpp **** std::vector vs = {"x", "y", "z"}; 1687 .loc 1 51 0 1688 0053 488D5424 leaq 48(%rsp), %rdx 1688 30 1689 0058 BE000000 movl $.LC0, %esi 1689 00 1690 005d 488D7C24 leaq 80(%rsp), %rdi 1690 50 1691 .LEHB11: 1692 0062 E8000000 call _ZNSsC1EPKcRKSaIcE 1692 00 1693 .LVL178: 1694 0067 488D7C24 leaq 80(%rsp), %rdi 1694 50 1695 006c E8000000 call _ZNSsD1Ev 1695 00 1696 .LVL179: GAS LISTING /tmp/ccrAK1jU.s page 97 52:mangling.cpp **** d.deepMethod(vs); 1697 .loc 1 52 0 1698 0071 488D5424 leaq 13(%rsp), %rdx 1698 0D 1699 0076 BE000000 movl $.LC1, %esi 1699 00 1700 007b 488D7C24 leaq 80(%rsp), %rdi 1700 50 1701 0080 E8000000 call _ZNSsC1EPKcRKSaIcE 1701 00 1702 .LVL180: 1703 0085 488D7C24 leaq 88(%rsp), %rdi 1703 58 1704 008a 488D5424 leaq 14(%rsp), %rdx 1704 0E 1705 008f BE000000 movl $.LC2, %esi 1705 00 1706 0094 E8000000 call _ZNSsC1EPKcRKSaIcE 1706 00 1707 .LVL181: 1708 0099 488D7C24 leaq 96(%rsp), %rdi 1708 60 1709 009e 488D5424 leaq 15(%rsp), %rdx 1709 0F 1710 00a3 BE000000 movl $.LC3, %esi 1710 00 1711 00a8 E8000000 call _ZNSsC1EPKcRKSaIcE 1711 00 1712 .LEHE11: 1713 .LVL182: 1714 00ad 488D4C24 leaq 32(%rsp), %rcx 1714 20 1715 00b2 488D7424 leaq 80(%rsp), %rsi 1715 50 1716 00b7 BA030000 movl $3, %edx 1716 00 1717 00bc 488D7C24 leaq 48(%rsp), %rdi 1717 30 1718 .LEHB12: 1719 00c1 E8000000 call _ZNSt6vectorISsSaISsEEC1ESt16initializer_listISsERKS0_ 1719 00 1720 .LEHE12: 1721 .LVL183: 1722 00c6 EB29 jmp .L123 1723 .L121: 1724 00c8 4889C3 movq %rax, %rbx 1725 00cb 488D7C24 leaq 96(%rsp), %rdi 1725 60 1726 00d0 E8000000 call _ZNSsD1Ev 1726 00 1727 .LVL184: 1728 00d5 488D7C24 leaq 88(%rsp), %rdi 1728 58 1729 00da E8000000 call _ZNSsD1Ev 1729 00 1730 .LVL185: 1731 00df 488D7C24 leaq 80(%rsp), %rdi GAS LISTING /tmp/ccrAK1jU.s page 98 1731 50 1732 00e4 E8000000 call _ZNSsD1Ev 1732 00 1733 .LVL186: 1734 00e9 4889DF movq %rbx, %rdi 1735 .LEHB13: 1736 00ec E8000000 call _Unwind_Resume 1736 00 1737 .LEHE13: 1738 .LVL187: 1739 .L123: 1740 00f1 488D7C24 leaq 96(%rsp), %rdi 1740 60 1741 00f6 E8000000 call _ZNSsD1Ev 1741 00 1742 .LVL188: 1743 00fb 488D7C24 leaq 88(%rsp), %rdi 1743 58 1744 0100 E8000000 call _ZNSsD1Ev 1744 00 1745 .LVL189: 1746 0105 488D7C24 leaq 80(%rsp), %rdi 1746 50 1747 010a E8000000 call _ZNSsD1Ev 1747 00 1748 .LVL190: 53:mangling.cpp **** int v = d.deepMethod(); 1749 .loc 1 53 0 1750 010f 488D7424 leaq 48(%rsp), %rsi 1750 30 1751 0114 488D7C24 leaq 80(%rsp), %rdi 1751 50 1752 .LEHB14: 1753 0119 E8000000 call _ZNSt6vectorISsSaISsEEC1ERKS1_ 1753 00 1754 .LVL191: 53:mangling.cpp **** int v = d.deepMethod(); 1755 .loc 1 53 0 is_stmt 0 discriminator 1 1756 011e 488D7C24 leaq 80(%rsp), %rdi 1756 50 1757 0123 E8000000 call _ZNSt6vectorISsSaISsEED1Ev 1757 00 1758 .LVL192: 54:mangling.cpp **** 1759 .loc 1 54 0 is_stmt 1 discriminator 1 1760 0128 488D7C24 leaq 16(%rsp), %rdi 1760 10 1761 012d E8000000 call _ZN9Something6Inside6Deeper10deepMethodEv 1761 00 1762 .LVL193: 1763 0132 89C3 movl %eax, %ebx 1764 .LVL194: 56:mangling.cpp **** cout << Outside::someStatic << " and " << o.member << " and " << v; 1765 .loc 1 56 0 discriminator 1 1766 0134 BE250000 movl $37, %esi 1766 00 1767 0139 488D7C24 leaq 32(%rsp), %rdi GAS LISTING /tmp/ccrAK1jU.s page 99 1767 20 1768 013e E8000000 call _ZN7OutsideC1Ei 1768 00 1769 .LVL195: 57:mangling.cpp **** 1770 .loc 1 57 0 discriminator 1 1771 0143 8B6C2420 movl 32(%rsp), %ebp 1772 0147 BE0C0000 movl $12, %esi 1772 00 1773 014c BF000000 movl $_ZSt4cout, %edi 1773 00 1774 0151 E8000000 call _ZNSolsEi 1774 00 1775 .LVL196: 1776 0156 BE000000 movl $.LC4, %esi 1776 00 1777 015b 4889C7 movq %rax, %rdi 1778 015e E8000000 call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc 1778 00 1779 .LVL197: 1780 0163 89EE movl %ebp, %esi 1781 0165 4889C7 movq %rax, %rdi 1782 0168 E8000000 call _ZNSolsEi 1782 00 1783 .LVL198: 1784 016d BE000000 movl $.LC4, %esi 1784 00 1785 0172 4889C7 movq %rax, %rdi 1786 0175 E8000000 call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc 1786 00 1787 .LVL199: 1788 017a 89DE movl %ebx, %esi 1789 017c 4889C7 movq %rax, %rdi 1790 017f E8000000 call _ZNSolsEi 1790 00 1791 .LEHE14: 1792 .LVL200: 1793 0184 EB15 jmp .L125 1794 .LVL201: 1795 .L122: 1796 0186 4889C3 movq %rax, %rbx 59:mangling.cpp **** } 1797 .loc 1 59 0 1798 0189 488D7C24 leaq 48(%rsp), %rdi 1798 30 1799 018e E8000000 call _ZNSt6vectorISsSaISsEED1Ev 1799 00 1800 .LVL202: 1801 0193 4889DF movq %rbx, %rdi 1802 .LEHB15: 1803 0196 E8000000 call _Unwind_Resume 1803 00 1804 .LEHE15: 1805 .LVL203: 1806 .L125: 1807 019b 488D7C24 leaq 48(%rsp), %rdi 1807 30 GAS LISTING /tmp/ccrAK1jU.s page 100 1808 01a0 E8000000 call _ZNSt6vectorISsSaISsEED1Ev 1808 00 1809 .LVL204: 1810 .LBE17: 1811 .loc 1 60 0 1812 01a5 B8000000 movl $0, %eax 1812 00 1813 01aa 4883C478 addq $120, %rsp 1814 .cfi_def_cfa_offset 24 1815 01ae 5B popq %rbx 1816 .cfi_def_cfa_offset 16 1817 .LVL205: 1818 01af 5D popq %rbp 1819 .cfi_def_cfa_offset 8 1820 01b0 C3 ret 1821 .cfi_endproc 1822 .LFE1609: 1823 .section .gcc_except_table,"a",@progbits 1824 .LLSDA1609: 1825 0000 FF .byte 0xff 1826 0001 FF .byte 0xff 1827 0002 01 .byte 0x1 1828 0003 1A .uleb128 .LLSDACSE1609-.LLSDACSB1609 1829 .LLSDACSB1609: 1830 0004 2E .uleb128 .LEHB11-.LFB1609 1831 0005 4B .uleb128 .LEHE11-.LEHB11 1832 0006 00 .uleb128 0 1833 0007 00 .uleb128 0 1834 0008 8D01 .uleb128 .LEHB12-.LFB1609 1835 000a 05 .uleb128 .LEHE12-.LEHB12 1836 000b 9401 .uleb128 .L121-.LFB1609 1837 000d 00 .uleb128 0 1838 000e B801 .uleb128 .LEHB13-.LFB1609 1839 0010 05 .uleb128 .LEHE13-.LEHB13 1840 0011 00 .uleb128 0 1841 0012 00 .uleb128 0 1842 0013 E501 .uleb128 .LEHB14-.LFB1609 1843 0015 6B .uleb128 .LEHE14-.LEHB14 1844 0016 D202 .uleb128 .L122-.LFB1609 1845 0018 00 .uleb128 0 1846 0019 E202 .uleb128 .LEHB15-.LFB1609 1847 001b 05 .uleb128 .LEHE15-.LEHB15 1848 001c 00 .uleb128 0 1849 001d 00 .uleb128 0 1850 .LLSDACSE1609: 1851 .text 1854 _GLOBAL__sub_I__ZN9Something6Inside13anotherStaticE: 1855 .LFB1847: 1856 .loc 1 60 0 1857 .cfi_startproc 1858 01b1 4883EC08 subq $8, %rsp 1859 .cfi_def_cfa_offset 16 1860 .loc 1 60 0 1861 01b5 BEFFFF00 movl $65535, %esi 1861 00 1862 01ba BF010000 movl $1, %edi 1862 00 GAS LISTING /tmp/ccrAK1jU.s page 101 1863 01bf E83CFEFF call _Z41__static_initialization_and_destruction_0ii 1863 FF 1864 .LVL206: 1865 01c4 4883C408 addq $8, %rsp 1866 .cfi_def_cfa_offset 8 1867 01c8 C3 ret 1868 .cfi_endproc 1869 .LFE1847: 1871 .section .init_array,"aw" 1872 .align 8 1873 0000 00000000 .quad _GLOBAL__sub_I__ZN9Something6Inside13anotherStaticE 1873 00000000 1874 .globl _ZN9Something6Inside13anotherStaticE 1875 .data 1876 .align 4 1879 _ZN9Something6Inside13anotherStaticE: 1880 0000 89000000 .long 137 1881 .local _ZStL8__ioinit 1882 .comm _ZStL8__ioinit,1,1 1883 .text 1884 .Letext0: 1885 .file 14 "/usr/include/libio.h" 1886 .file 15 "/usr/include/stdio.h" 1887 .file 16 "" 1888 .file 17 "/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h" 1889 .file 18 "/usr/include/wchar.h" 1890 .file 19 "/usr/include/c++/4.8/cwchar" 1891 .file 20 "/usr/include/c++/4.8/bits/exception_ptr.h" 1892 .file 21 "/usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h" 1893 .file 22 "/usr/include/c++/4.8/type_traits" 1894 .file 23 "/usr/include/c++/4.8/bits/stl_pair.h" 1895 .file 24 "/usr/include/c++/4.8/bits/stl_iterator_base_types.h" 1896 .file 25 "/usr/include/c++/4.8/bits/char_traits.h" 1897 .file 26 "/usr/include/c++/4.8/cstdint" 1898 .file 27 "/usr/include/c++/4.8/clocale" 1899 .file 28 "/usr/include/c++/4.8/bits/allocator.h" 1900 .file 29 "/usr/include/c++/4.8/cstdlib" 1901 .file 30 "/usr/include/c++/4.8/cstdio" 1902 .file 31 "/usr/include/c++/4.8/bits/basic_string.h" 1903 .file 32 "/usr/include/c++/4.8/bits/basic_string.tcc" 1904 .file 33 "/usr/include/c++/4.8/bits/stringfwd.h" 1905 .file 34 "/usr/include/c++/4.8/bits/ios_base.h" 1906 .file 35 "/usr/include/c++/4.8/cwctype" 1907 .file 36 "/usr/include/c++/4.8/bits/ostream.tcc" 1908 .file 37 "/usr/include/c++/4.8/bits/vector.tcc" 1909 .file 38 "/usr/include/c++/4.8/bits/ptr_traits.h" 1910 .file 39 "/usr/include/c++/4.8/iosfwd" 1911 .file 40 "/usr/include/c++/4.8/ostream" 1912 .file 41 "/usr/include/x86_64-linux-gnu/bits/wchar2.h" 1913 .file 42 "/usr/include/c++/4.8/bits/functexcept.h" 1914 .file 43 "/usr/include/time.h" 1915 .file 44 "/usr/include/c++/4.8/ext/numeric_traits.h" 1916 .file 45 "/usr/include/c++/4.8/debug/debug.h" 1917 .file 46 "/usr/include/stdint.h" 1918 .file 47 "/usr/include/locale.h" 1919 .file 48 "/usr/include/x86_64-linux-gnu/bits/types.h" 1920 .file 49 "/usr/include/x86_64-linux-gnu/c++/4.8/bits/atomic_word.h" GAS LISTING /tmp/ccrAK1jU.s page 102 1921 .file 50 "/usr/include/stdlib.h" 1922 .file 51 "/usr/include/x86_64-linux-gnu/bits/stdlib.h" 1923 .file 52 "/usr/include/_G_config.h" 1924 .file 53 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 1925 .file 54 "/usr/include/wctype.h" GAS LISTING /tmp/ccrAK1jU.s page 103 DEFINED SYMBOLS *ABS*:0000000000000000 mangling.cpp /tmp/ccrAK1jU.s:5 .text:0000000000000000 _Z41__static_initialization_and_destruction_0ii .bss:0000000000000000 _ZStL8__ioinit /tmp/ccrAK1jU.s:41 .text._ZnwmPv:0000000000000000 _ZnwmPv /tmp/ccrAK1jU.s:57 .text._ZN9Something6Inside6Deeper10deepMethodEv:0000000000000000 _ZN9Something6Inside6Deeper10deepMethodEv /tmp/ccrAK1jU.s:73 .text._ZN9Something6Inside6Deeper10deepMethodEi:0000000000000000 _ZN9Something6Inside6Deeper10deepMethodEi /tmp/ccrAK1jU.s:90 .text._ZN7OutsideC2Ei:0000000000000000 _ZN7OutsideC2Ei /tmp/ccrAK1jU.s:90 .text._ZN7OutsideC2Ei:0000000000000000 _ZN7OutsideC1Ei /tmp/ccrAK1jU.s:109 .text._ZNKSt16initializer_listISsE5beginEv:0000000000000000 _ZNKSt16initializer_listISsE5beginEv /tmp/ccrAK1jU.s:125 .text._ZNKSt16initializer_listISsE4sizeEv:0000000000000000 _ZNKSt16initializer_listISsE4sizeEv /tmp/ccrAK1jU.s:140 .text._ZNKSt16initializer_listISsE3endEv:0000000000000000 _ZNKSt16initializer_listISsE3endEv /tmp/ccrAK1jU.s:177 .text._ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv:0000000000000000 _ZNSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv /tmp/ccrAK1jU.s:193 .text._ZNKSt6vectorISsSaISsEE4sizeEv:0000000000000000 _ZNKSt6vectorISsSaISsEE4sizeEv /tmp/ccrAK1jU.s:210 .text._ZNKSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv:0000000000000000 _ZNKSt12_Vector_baseISsSaISsEE19_M_get_Tp_allocatorEv /tmp/ccrAK1jU.s:225 .text._ZNSt12_Vector_baseISsSaISsEE12_Vector_implC2ERKS0_:0000000000000000 _ZNSt12_Vector_baseISsSaISsEE12_Vector_implC2ERKS0_ /tmp/ccrAK1jU.s:225 .text._ZNSt12_Vector_baseISsSaISsEE12_Vector_implC2ERKS0_:0000000000000000 _ZNSt12_Vector_baseISsSaISsEE12_Vector_implC1ERKS0_ /tmp/ccrAK1jU.s:246 .text._ZNSt12_Vector_baseISsSaISsEEC2ERKS0_:0000000000000000 _ZNSt12_Vector_baseISsSaISsEEC2ERKS0_ /tmp/ccrAK1jU.s:246 .text._ZNSt12_Vector_baseISsSaISsEEC2ERKS0_:0000000000000000 _ZNSt12_Vector_baseISsSaISsEEC1ERKS0_ /tmp/ccrAK1jU.s:270 .text._ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEC2ERKS2_:0000000000000000 _ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEC2ERKS2_ /tmp/ccrAK1jU.s:270 .text._ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEC2ERKS2_:0000000000000000 _ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEC1ERKS2_ /tmp/ccrAK1jU.s:291 .text._ZNKSt6vectorISsSaISsEE3endEv:0000000000000000 _ZNKSt6vectorISsSaISsEE3endEv /tmp/ccrAK1jU.s:317 .text._ZNKSt6vectorISsSaISsEE5beginEv:0000000000000000 _ZNKSt6vectorISsSaISsEE5beginEv /tmp/ccrAK1jU.s:343 .text._ZN9__gnu_cxx13new_allocatorISsE10deallocateEPSsm:0000000000000000 _ZN9__gnu_cxx13new_allocatorISsE10deallocateEPSsm /tmp/ccrAK1jU.s:366 .text._ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm:0000000000000000 _ZNSt12_Vector_baseISsSaISsEE13_M_deallocateEPSsm /tmp/ccrAK1jU.s:392 .text._ZNSt12_Vector_baseISsSaISsEED2Ev:0000000000000000 _ZNSt12_Vector_baseISsSaISsEED2Ev /tmp/ccrAK1jU.s:392 .text._ZNSt12_Vector_baseISsSaISsEED2Ev:0000000000000000 _ZNSt12_Vector_baseISsSaISsEED1Ev /tmp/ccrAK1jU.s:421 .text._ZSt10__distanceIPKSsENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_iterator_tag:0000000000000000 _ZSt10__distanceIPKSsENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_iterator_tag /tmp/ccrAK1jU.s:439 .text._ZSt8distanceIPKSsENSt15iterator_traitsIT_E15difference_typeES3_S3_:0000000000000000 _ZSt8distanceIPKSsENSt15iterator_traitsIT_E15difference_typeES3_S3_ /tmp/ccrAK1jU.s:460 .text._ZNSt16allocator_traitsISaISsEE9_S_selectIKS0_EENSt9enable_ifIXntsrNS1_15__select_helperIT_EE5valueES6_E4typeERS6_:0000000000000000 _ZNSt16allocator_traitsISaISsEE9_S_selectIKS0_EENSt9enable_ifIXntsrNS1_15__select_helperIT_EE5valueES6_E4typeERS6_ /tmp/ccrAK1jU.s:475 .text._ZNSt16allocator_traitsISaISsEE37select_on_container_copy_constructionERKS0_:0000000000000000 _ZNSt16allocator_traitsISaISsEE37select_on_container_copy_constructionERKS0_ /tmp/ccrAK1jU.s:498 .text._ZN9__gnu_cxx14__alloc_traitsISaISsEE17_S_select_on_copyERKS1_:0000000000000000 _ZN9__gnu_cxx14__alloc_traitsISaISsEE17_S_select_on_copyERKS1_ /tmp/ccrAK1jU.s:523 .text._ZNK9__gnu_cxx13new_allocatorISsE8max_sizeEv:0000000000000000 _ZNK9__gnu_cxx13new_allocatorISsE8max_sizeEv /tmp/ccrAK1jU.s:538 .text._ZN9__gnu_cxx13new_allocatorISsE8allocateEmPKv:0000000000000000 _ZN9__gnu_cxx13new_allocatorISsE8allocateEmPKv /tmp/ccrAK1jU.s:572 .text._ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm:0000000000000000 _ZNSt12_Vector_baseISsSaISsEE11_M_allocateEm /tmp/ccrAK1jU.s:600 .text._ZNSt12_Vector_baseISsSaISsEE17_M_create_storageEm:0000000000000000 _ZNSt12_Vector_baseISsSaISsEE17_M_create_storageEm /tmp/ccrAK1jU.s:641 .text._ZNSt12_Vector_baseISsSaISsEEC2EmRKS0_:0000000000000000 _ZNSt12_Vector_baseISsSaISsEEC2EmRKS0_ /tmp/ccrAK1jU.s:641 .text._ZNSt12_Vector_baseISsSaISsEEC2EmRKS0_:0000000000000000 _ZNSt12_Vector_baseISsSaISsEEC1EmRKS0_ /tmp/ccrAK1jU.s:685 .text._ZSt11__addressofISsEPT_RS0_:0000000000000000 _ZSt11__addressofISsEPT_RS0_ /tmp/ccrAK1jU.s:700 .text._ZSt8_DestroyISsEvPT_:0000000000000000 _ZSt8_DestroyISsEvPT_ /tmp/ccrAK1jU.s:720 .text._ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_:0000000000000000 _ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_ /tmp/ccrAK1jU.s:769 .text._ZSt8_DestroyIPSsEvT_S1_:0000000000000000 _ZSt8_DestroyIPSsEvT_S1_ /tmp/ccrAK1jU.s:791 .text._ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E:0000000000000000 _ZSt8_DestroyIPSsSsEvT_S1_RSaIT0_E /tmp/ccrAK1jU.s:812 .text._ZNSt6vectorISsSaISsEED2Ev:0000000000000000 _ZNSt6vectorISsSaISsEED2Ev /tmp/ccrAK1jU.s:812 .text._ZNSt6vectorISsSaISsEED2Ev:0000000000000000 _ZNSt6vectorISsSaISsEED1Ev /tmp/ccrAK1jU.s:849 .text._ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEppEv:0000000000000000 _ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEppEv /tmp/ccrAK1jU.s:866 .text._ZNK9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEdeEv:0000000000000000 _ZNK9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEdeEv /tmp/ccrAK1jU.s:880 .text._ZSt7forwardIRKSsEOT_RNSt16remove_referenceIS2_E4typeE:0000000000000000 _ZSt7forwardIRKSsEOT_RNSt16remove_referenceIS2_E4typeE /tmp/ccrAK1jU.s:894 .text._ZSt10_ConstructISsIRKSsEEvPT_DpOT0_:0000000000000000 _ZSt10_ConstructISsIRKSsEEvPT_DpOT0_ /tmp/ccrAK1jU.s:894 .text._ZSt10_ConstructISsIRKSsEEvPT_DpOT0_:0000000000000000 _ZSt10_ConstructISsJRKSsEEvPT_DpOT0_ /tmp/ccrAK1jU.s:943 .text._ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPKSsPSsEET0_T_S6_S5_:0000000000000000 _ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPKSsPSsEET0_T_S6_S5_ /tmp/ccrAK1jU.s:1083 .text._ZSt18uninitialized_copyIPKSsPSsET0_T_S4_S3_:0000000000000000 _ZSt18uninitialized_copyIPKSsPSsET0_T_S4_S3_ /tmp/ccrAK1jU.s:1105 .text._ZSt22__uninitialized_copy_aIPKSsPSsSsET0_T_S4_S3_RSaIT1_E:0000000000000000 _ZSt22__uninitialized_copy_aIPKSsPSsSsET0_T_S4_S3_RSaIT1_E /tmp/ccrAK1jU.s:1125 .text._ZNSt6vectorISsSaISsEE19_M_range_initializeIPKSsEEvT_S5_St20forward_iterator_tag:0000000000000000 _ZNSt6vectorISsSaISsEE19_M_range_initializeIPKSsEEvT_S5_St20forward_iterator_tag /tmp/ccrAK1jU.s:1204 .text._ZNSt6vectorISsSaISsEEC2ESt16initializer_listISsERKS0_:0000000000000000 _ZNSt6vectorISsSaISsEEC2ESt16initializer_listISsERKS0_ /tmp/ccrAK1jU.s:1204 .text._ZNSt6vectorISsSaISsEEC2ESt16initializer_listISsERKS0_:0000000000000000 _ZNSt6vectorISsSaISsEEC1ESt16initializer_listISsERKS0_ /tmp/ccrAK1jU.s:1293 .text._ZNK9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEE4baseEv:0000000000000000 _ZNK9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEE4baseEv GAS LISTING /tmp/ccrAK1jU.s page 104 /tmp/ccrAK1jU.s:1307 .text._ZN9__gnu_cxxneIPKSsSt6vectorISsSaISsEEEEbRKNS_17__normal_iteratorIT_T0_EESB_:0000000000000000 _ZN9__gnu_cxxneIPKSsSt6vectorISsSaISsEEEEbRKNS_17__normal_iteratorIT_T0_EESB_ /tmp/ccrAK1jU.s:1345 .text._ZNSt20__uninitialized_copyILb0EE13__uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsEET0_T_SC_SB_:0000000000000000 _ZNSt20__uninitialized_copyILb0EE13__uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsEET0_T_SC_SB_ /tmp/ccrAK1jU.s:1480 .text._ZSt18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA_S9_:0000000000000000 _ZSt18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA_S9_ /tmp/ccrAK1jU.s:1502 .text._ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsSsET0_T_SA_S9_RSaIT1_E:0000000000000000 _ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsSsET0_T_SA_S9_RSaIT1_E /tmp/ccrAK1jU.s:1522 .text._ZNSt6vectorISsSaISsEEC2ERKS1_:0000000000000000 _ZNSt6vectorISsSaISsEEC2ERKS1_ /tmp/ccrAK1jU.s:1522 .text._ZNSt6vectorISsSaISsEEC2ERKS1_:0000000000000000 _ZNSt6vectorISsSaISsEEC1ERKS1_ /tmp/ccrAK1jU.s:1662 .text:0000000000000034 _Z8manglingiPPKc /tmp/ccrAK1jU.s:1879 .data:0000000000000000 _ZN9Something6Inside13anotherStaticE /tmp/ccrAK1jU.s:1854 .text:00000000000001b1 _GLOBAL__sub_I__ZN9Something6Inside13anotherStaticE .group:0000000000000000 _ZN7OutsideC5Ei .group:0000000000000000 _ZNSt12_Vector_baseISsSaISsEE12_Vector_implC5ERKS0_ .group:0000000000000000 _ZNSt12_Vector_baseISsSaISsEEC5ERKS0_ .group:0000000000000000 _ZN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEC5ERKS2_ .group:0000000000000000 _ZNSt12_Vector_baseISsSaISsEED5Ev .group:0000000000000000 _ZNSt12_Vector_baseISsSaISsEEC5EmRKS0_ .group:0000000000000000 _ZNSt6vectorISsSaISsEED5Ev .group:0000000000000000 _ZNSt6vectorISsSaISsEEC5ESt16initializer_listISsERKS0_ .group:0000000000000000 _ZNSt6vectorISsSaISsEEC5ERKS1_ UNDEFINED SYMBOLS _ZNSt8ios_base4InitC1Ev __dso_handle _ZNSt8ios_base4InitD1Ev __cxa_atexit _ZdlPv _ZSt17__throw_bad_allocv _Znwm _ZNSsD1Ev _ZNSsC1ERKSs __gxx_personality_v0 __cxa_end_catch _Unwind_Resume __cxa_begin_catch __cxa_rethrow _ZNSsC1EPKcRKSaIcE _ZSt4cout _ZNSolsEi _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc