目录
一、程序(文本)——>机器语言(二进制)过程:
二、过程
三、附加功能
预处理:头文件展开、去注释、宏替换、条件编译
编译:把C变成汇编语言
汇编:把汇编变成二进制
链接:把你写的代码和C标准库中的代码合起来
};templateinline booloperator==(const istreambuf_iterator<_CharT, _Traits>& __a,const istreambuf_iterator<_CharT, _Traits>& __b){ return __a.equal(__b); }templateinline booloperator!=(const istreambuf_iterator<_CharT, _Traits>& __a,const istreambuf_iterator<_CharT, _Traits>& __b){ return !__a.equal(__b); }templateclass ostreambuf_iterator: public iterator{public:typedef _CharT char_type;typedef _Traits traits_type;typedef basic_streambuf<_CharT, _Traits> streambuf_type;typedef basic_ostream<_CharT, _Traits> ostream_type;templatefriend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,ostreambuf_iterator<_CharT2> >::__typecopy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,ostreambuf_iterator<_CharT2>);private:streambuf_type* _M_sbuf;bool _M_failed;public:ostreambuf_iterator(ostream_type& __s) throw(): _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { }ostreambuf_iterator(streambuf_type* __s) throw(): _M_sbuf(__s), _M_failed(!_M_sbuf) { }ostreambuf_iterator&operator=(_CharT __c){if (!_M_failed &&_Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof()))_M_failed = true;return *this;}ostreambuf_iterator&operator*(){ return *this; }ostreambuf_iterator&operator++(int){ return *this; }ostreambuf_iterator&operator++(){ return *this; }boolfailed() const throw(){ return _M_failed; }ostreambuf_iterator&_M_put(const _CharT* __ws, streamsize __len){if (__builtin_expect(!_M_failed, true)&& __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len,false))_M_failed = true;return *this;}};templatetypename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,ostreambuf_iterator<_CharT> >::__typecopy(istreambuf_iterator<_CharT> __first,istreambuf_iterator<_CharT> __last,ostreambuf_iterator<_CharT> __result){if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed){bool __ineof;__copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof);if (!__ineof)__result._M_failed = true;}return __result;}templatetypename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,ostreambuf_iterator<_CharT> >::__type__copy_move_a2(_CharT* __first, _CharT* __last,ostreambuf_iterator<_CharT> __result){const streamsize __num = __last - __first;if (__num > 0)__result._M_put(__first, __num);return __result;}templatetypename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,ostreambuf_iterator<_CharT> >::__type__copy_move_a2(const _CharT* __first, const _CharT* __last,ostreambuf_iterator<_CharT> __result){const streamsize __num = __last - __first;if (__num > 0)__result._M_put(__first, __num);return __result;}templatetypename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,_CharT*>::__type__copy_move_a2(istreambuf_iterator<_CharT> __first,istreambuf_iterator<_CharT> __last, _CharT* __result){typedef istreambuf_iterator<_CharT> __is_iterator_type;typedef typename __is_iterator_type::traits_type traits_type;typedef typename __is_iterator_type::streambuf_type streambuf_type;typedef typename traits_type::int_type int_type;if (__first._M_sbuf && !__last._M_sbuf){streambuf_type* __sb = __first._M_sbuf;int_type __c = __sb->sgetc();while (!traits_type::eq_int_type(__c, traits_type::eof())){const streamsize __n = __sb->egptr() - __sb->gptr();if (__n > 1){traits_type::copy(__result, __sb->gptr(), __n);__sb->__safe_gbump(__n);__result += __n;__c = __sb->underflow();}else{*__result++ = traits_type::to_char_type(__c);__c = __sb->snextc();}}}return __result;}templatetypename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,istreambuf_iterator<_CharT> >::__typefind(istreambuf_iterator<_CharT> __first,istreambuf_iterator<_CharT> __last, const _CharT& __val){typedef istreambuf_iterator<_CharT> __is_iterator_type;typedef typename __is_iterator_type::traits_type traits_type;typedef typename __is_iterator_type::streambuf_type streambuf_type;typedef typename traits_type::int_type int_type;if (__first._M_sbuf && !__last._M_sbuf){const int_type __ival = traits_type::to_int_type(__val);streambuf_type* __sb = __first._M_sbuf;int_type __c = __sb->sgetc();while (!traits_type::eq_int_type(__c, traits_type::eof())&& !traits_type::eq_int_type(__c, __ival)){streamsize __n = __sb->egptr() - __sb->gptr();if (__n > 1){const _CharT* __p = traits_type::find(__sb->gptr(),__n, __val);if (__p)__n = __p - __sb->gptr();__sb->__safe_gbump(__n);__c = __sb->sgetc();}else__c = __sb->snextc();}if (!traits_type::eq_int_type(__c, traits_type::eof()))__first._M_c = __c;else__first._M_sbuf = 0;}return __first;}}
# 49 "/usr/include/c++/4.8.2/bits/locale_facets.h" 2 3namespace std __attribute__ ((__visibility__ ("default")))
{# 64 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3templatevoid__convert_to_v(const char*, _Tp&, ios_base::iostate&,const __c_locale&) throw();template<>void__convert_to_v(const char*, float&, ios_base::iostate&,const __c_locale&) throw();template<>void__convert_to_v(const char*, double&, ios_base::iostate&,const __c_locale&) throw();template<>void__convert_to_v(const char*, long double&, ios_base::iostate&,const __c_locale&) throw();templatestruct __pad{static void_S_pad(ios_base& __io, _CharT __fill, _CharT* __news,const _CharT* __olds, streamsize __newlen, streamsize __oldlen);};template_CharT*__add_grouping(_CharT* __s, _CharT __sep,const char* __gbeg, size_t __gsize,const _CharT* __first, const _CharT* __last);templateinlineostreambuf_iterator<_CharT>__write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len){__s._M_put(__ws, __len);return __s;}templateinline_OutIter__write(_OutIter __s, const _CharT* __ws, int __len){for (int __j = 0; __j < __len; __j++, ++__s)*__s = __ws[__j];return __s;}
# 142 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3templateclass __ctype_abstract_base : public locale::facet, public ctype_base{public:typedef _CharT char_type;
# 161 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3boolis(mask __m, char_type __c) const{ return this->do_is(__m, __c); }
# 178 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3const char_type*is(const char_type *__lo, const char_type *__hi, mask *__vec) const{ return this->do_is(__lo, __hi, __vec); }
# 194 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3const char_type*scan_is(mask __m, const char_type* __lo, const char_type* __hi) const{ return this->do_scan_is(__m, __lo, __hi); }
# 210 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3const char_type*scan_not(mask __m, const char_type* __lo, const char_type* __hi) const{ return this->do_scan_not(__m, __lo, __hi); }
# 224 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3char_typetoupper(char_type __c) const{ return this->do_toupper(__c); }
# 239 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3const char_type*toupper(char_type *__lo, const char_type* __hi) const{ return this->do_toupper(__lo, __hi); }
# 253 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3char_typetolower(char_type __c) const{ return this->do_tolower(__c); }
# 268 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3const char_type*tolower(char_type* __lo, const char_type* __hi) const{ return this->do_tolower(__lo, __hi); }
# 285 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3char_typewiden(char __c) const{ return this->do_widen(__c); }
# 304 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3const char*widen(const char* __lo, const char* __hi, char_type* __to) const{ return this->do_widen(__lo, __hi, __to); }
# 323 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3charnarrow(char_type __c, char __dfault) const{ return this->do_narrow(__c, __dfault); }
# 345 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3const char_type*narrow(const char_type* __lo, const char_type* __hi,char __dfault, char* __to) const{ return this->do_narrow(__lo, __hi, __dfault, __to); }protected:explicit__ctype_abstract_base(size_t __refs = 0): facet(__refs) { }virtual~__ctype_abstract_base() { }
# 370 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual booldo_is(mask __m, char_type __c) const = 0;
# 389 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char_type*do_is(const char_type* __lo, const char_type* __hi,mask* __vec) const = 0;
# 408 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char_type*do_scan_is(mask __m, const char_type* __lo,const char_type* __hi) const = 0;
# 427 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char_type*do_scan_not(mask __m, const char_type* __lo,const char_type* __hi) const = 0;
# 445 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual char_typedo_toupper(char_type __c) const = 0;
# 462 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char_type*do_toupper(char_type* __lo, const char_type* __hi) const = 0;
# 478 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual char_typedo_tolower(char_type __c) const = 0;
# 495 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char_type*do_tolower(char_type* __lo, const char_type* __hi) const = 0;
# 514 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual char_typedo_widen(char __c) const = 0;
# 535 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char*do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0;
# 556 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual chardo_narrow(char_type __c, char __dfault) const = 0;
# 581 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char_type*do_narrow(const char_type* __lo, const char_type* __hi,char __dfault, char* __to) const = 0;};
# 604 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3templateclass ctype : public __ctype_abstract_base<_CharT>{public:typedef _CharT char_type;typedef typename __ctype_abstract_base<_CharT>::mask mask;static locale::id id;explicitctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { }protected:virtual~ctype();virtual booldo_is(mask __m, char_type __c) const;virtual const char_type*do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const;virtual const char_type*do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const;virtual const char_type*do_scan_not(mask __m, const char_type* __lo,const char_type* __hi) const;virtual char_typedo_toupper(char_type __c) const;virtual const char_type*do_toupper(char_type* __lo, const char_type* __hi) const;virtual char_typedo_tolower(char_type __c) const;virtual const char_type*do_tolower(char_type* __lo, const char_type* __hi) const;virtual char_typedo_widen(char __c) const;virtual const char*do_widen(const char* __lo, const char* __hi, char_type* __dest) const;virtual chardo_narrow(char_type, char __dfault) const;virtual const char_type*do_narrow(const char_type* __lo, const char_type* __hi,char __dfault, char* __to) const;};templatelocale::id ctype<_CharT>::id;
# 673 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3template<>class ctype : public locale::facet, public ctype_base{public:typedef char char_type;protected:__c_locale _M_c_locale_ctype;bool _M_del;__to_type _M_toupper;__to_type _M_tolower;const mask* _M_table;mutable char _M_widen_ok;mutable char _M_widen[1 + static_cast(-1)];mutable char _M_narrow[1 + static_cast(-1)];mutable char _M_narrow_ok;public:static locale::id id;static const size_t table_size = 1 + static_cast(-1);
# 710 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3explicitctype(const mask* __table = 0, bool __del = false, size_t __refs = 0);
# 723 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3explicitctype(__c_locale __cloc, const mask* __table = 0, bool __del = false,size_t __refs = 0);
# 736 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3inline boolis(mask __m, char __c) const;
# 751 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3inline const char*is(const char* __lo, const char* __hi, mask* __vec) const;
# 765 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3inline const char*scan_is(mask __m, const char* __lo, const char* __hi) const;
# 779 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3inline const char*scan_not(mask __m, const char* __lo, const char* __hi) const;
# 794 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3char_typetoupper(char_type __c) const{ return this->do_toupper(__c); }
# 811 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3const char_type*toupper(char_type *__lo, const char_type* __hi) const{ return this->do_toupper(__lo, __hi); }
# 827 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3char_typetolower(char_type __c) const{ return this->do_tolower(__c); }
# 844 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3const char_type*tolower(char_type* __lo, const char_type* __hi) const{ return this->do_tolower(__lo, __hi); }
# 864 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3char_typewiden(char __c) const{if (_M_widen_ok)return _M_widen[static_cast(__c)];this->_M_widen_init();return this->do_widen(__c);}
# 891 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3const char*widen(const char* __lo, const char* __hi, char_type* __to) const{if (_M_widen_ok == 1){__builtin_memcpy(__to, __lo, __hi - __lo);return __hi;}if (!_M_widen_ok)_M_widen_init();return this->do_widen(__lo, __hi, __to);}
# 922 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3charnarrow(char_type __c, char __dfault) const{if (_M_narrow[static_cast(__c)])return _M_narrow[static_cast(__c)];const char __t = do_narrow(__c, __dfault);if (__t != __dfault)_M_narrow[static_cast(__c)] = __t;return __t;}
# 955 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3const char_type*narrow(const char_type* __lo, const char_type* __hi,char __dfault, char* __to) const{if (__builtin_expect(_M_narrow_ok == 1, true)){__builtin_memcpy(__to, __lo, __hi - __lo);return __hi;}if (!_M_narrow_ok)_M_narrow_init();return this->do_narrow(__lo, __hi, __dfault, __to);}const mask*table() const throw(){ return _M_table; }static const mask*classic_table() throw();protected:virtual~ctype();
# 1004 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual char_typedo_toupper(char_type __c) const;
# 1021 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char_type*do_toupper(char_type* __lo, const char_type* __hi) const;
# 1037 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual char_typedo_tolower(char_type __c) const;
# 1054 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char_type*do_tolower(char_type* __lo, const char_type* __hi) const;
# 1074 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual char_typedo_widen(char __c) const{ return __c; }
# 1097 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char*do_widen(const char* __lo, const char* __hi, char_type* __to) const{__builtin_memcpy(__to, __lo, __hi - __lo);return __hi;}
# 1123 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual chardo_narrow(char_type __c, char __dfault) const{ return __c; }
# 1149 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char_type*do_narrow(const char_type* __lo, const char_type* __hi,char __dfault, char* __to) const{__builtin_memcpy(__to, __lo, __hi - __lo);return __hi;}private:void _M_narrow_init() const;void _M_widen_init() const;};
# 1174 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3template<>class ctype : public __ctype_abstract_base{public:typedef wchar_t char_type;typedef wctype_t __wmask_type;protected:__c_locale _M_c_locale_ctype;bool _M_narrow_ok;char _M_narrow[128];wint_t _M_widen[1 + static_cast(-1)];mask _M_bit[16];__wmask_type _M_wmask[16];public:static locale::id id;
# 1207 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3explicitctype(size_t __refs = 0);
# 1218 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3explicitctype(__c_locale __cloc, size_t __refs = 0);protected:__wmask_type_M_convert_to_wmask(const mask __m) const throw();virtual~ctype();
# 1242 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual booldo_is(mask __m, char_type __c) const;
# 1261 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char_type*do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const;
# 1279 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char_type*do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const;
# 1297 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char_type*do_scan_not(mask __m, const char_type* __lo,const char_type* __hi) const;
# 1314 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual char_typedo_toupper(char_type __c) const;
# 1331 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char_type*do_toupper(char_type* __lo, const char_type* __hi) const;
# 1347 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual char_typedo_tolower(char_type __c) const;
# 1364 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char_type*do_tolower(char_type* __lo, const char_type* __hi) const;
# 1384 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual char_typedo_widen(char __c) const;
# 1406 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char*do_widen(const char* __lo, const char* __hi, char_type* __to) const;
# 1429 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual chardo_narrow(char_type __c, char __dfault) const;
# 1455 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual const char_type*do_narrow(const char_type* __lo, const char_type* __hi,char __dfault, char* __to) const;void_M_initialize_ctype() throw();};templateclass ctype_byname : public ctype<_CharT>{public:typedef typename ctype<_CharT>::mask mask;explicitctype_byname(const char* __s, size_t __refs = 0);protected:virtual~ctype_byname() { };};template<>class ctype_byname : public ctype{public:explicitctype_byname(const char* __s, size_t __refs = 0);protected:virtual~ctype_byname();};template<>class ctype_byname : public ctype{public:explicitctype_byname(const char* __s, size_t __refs = 0);protected:virtual~ctype_byname();};}# 1 "/usr/include/c++/4.8.2/x86_64-redhat-linux/bits/ctype_inline.h" 1 3
# 37 "/usr/include/c++/4.8.2/x86_64-redhat-linux/bits/ctype_inline.h" 3
namespace std __attribute__ ((__visibility__ ("default")))
{boolctype::is(mask __m, char __c) const{ return _M_table[static_cast(__c)] & __m; }const char*ctype::is(const char* __low, const char* __high, mask* __vec) const{while (__low < __high)*__vec++ = _M_table[static_cast(*__low++)];return __high;}const char*ctype::scan_is(mask __m, const char* __low, const char* __high) const{while (__low < __high&& !(_M_table[static_cast(*__low)] & __m))++__low;return __low;}const char*ctype::scan_not(mask __m, const char* __low, const char* __high) const{while (__low < __high&& (_M_table[static_cast(*__low)] & __m) != 0)++__low;return __low;}}
# 1512 "/usr/include/c++/4.8.2/bits/locale_facets.h" 2 3namespace std __attribute__ ((__visibility__ ("default")))
{class __num_base{public:enum{_S_ominus,_S_oplus,_S_ox,_S_oX,_S_odigits,_S_odigits_end = _S_odigits + 16,_S_oudigits = _S_odigits_end,_S_oudigits_end = _S_oudigits + 16,_S_oe = _S_odigits + 14,_S_oE = _S_oudigits + 14,_S_oend = _S_oudigits_end};static const char* _S_atoms_out;static const char* _S_atoms_in;enum{_S_iminus,_S_iplus,_S_ix,_S_iX,_S_izero,_S_ie = _S_izero + 14,_S_iE = _S_izero + 20,_S_iend = 26};static void_S_format_float(const ios_base& __io, char* __fptr, char __mod) throw();};templatestruct __numpunct_cache : public locale::facet{const char* _M_grouping;size_t _M_grouping_size;bool _M_use_grouping;const _CharT* _M_truename;size_t _M_truename_size;const _CharT* _M_falsename;size_t _M_falsename_size;_CharT _M_decimal_point;_CharT _M_thousands_sep;_CharT _M_atoms_out[__num_base::_S_oend];_CharT _M_atoms_in[__num_base::_S_iend];bool _M_allocated;__numpunct_cache(size_t __refs = 0): facet(__refs), _M_grouping(0), _M_grouping_size(0),_M_use_grouping(false),_M_truename(0), _M_truename_size(0), _M_falsename(0),_M_falsename_size(0), _M_decimal_point(_CharT()),_M_thousands_sep(_CharT()), _M_allocated(false){ }~__numpunct_cache();void_M_cache(const locale& __loc);private:__numpunct_cache&operator=(const __numpunct_cache&);explicit__numpunct_cache(const __numpunct_cache&);};template__numpunct_cache<_CharT>::~__numpunct_cache(){if (_M_allocated){delete [] _M_grouping;delete [] _M_truename;delete [] _M_falsename;}}
# 1640 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3templateclass numpunct : public locale::facet{public:typedef _CharT char_type;typedef basic_string<_CharT> string_type;typedef __numpunct_cache<_CharT> __cache_type;protected:__cache_type* _M_data;public:static locale::id id;explicitnumpunct(size_t __refs = 0): facet(__refs), _M_data(0){ _M_initialize_numpunct(); }
# 1678 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3explicitnumpunct(__cache_type* __cache, size_t __refs = 0): facet(__refs), _M_data(__cache){ _M_initialize_numpunct(); }
# 1692 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3explicitnumpunct(__c_locale __cloc, size_t __refs = 0): facet(__refs), _M_data(0){ _M_initialize_numpunct(__cloc); }
# 1706 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3char_typedecimal_point() const{ return this->do_decimal_point(); }
# 1719 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3char_typethousands_sep() const{ return this->do_thousands_sep(); }
# 1750 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3stringgrouping() const{ return this->do_grouping(); }
# 1763 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3string_typetruename() const{ return this->do_truename(); }
# 1776 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3string_typefalsename() const{ return this->do_falsename(); }protected:virtual~numpunct();
# 1793 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual char_typedo_decimal_point() const{ return _M_data->_M_decimal_point; }
# 1805 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual char_typedo_thousands_sep() const{ return _M_data->_M_thousands_sep; }
# 1818 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual stringdo_grouping() const{ return _M_data->_M_grouping; }
# 1831 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual string_typedo_truename() const{ return _M_data->_M_truename; }
# 1844 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual string_typedo_falsename() const{ return _M_data->_M_falsename; }void_M_initialize_numpunct(__c_locale __cloc = 0);};templatelocale::id numpunct<_CharT>::id;template<>numpunct::~numpunct();template<>voidnumpunct::_M_initialize_numpunct(__c_locale __cloc);template<>numpunct::~numpunct();template<>voidnumpunct::_M_initialize_numpunct(__c_locale __cloc);templateclass numpunct_byname : public numpunct<_CharT>{public:typedef _CharT char_type;typedef basic_string<_CharT> string_type;explicitnumpunct_byname(const char* __s, size_t __refs = 0): numpunct<_CharT>(__refs){if (__builtin_strcmp(__s, "C") != 0&& __builtin_strcmp(__s, "POSIX") != 0){__c_locale __tmp;this->_S_create_c_locale(__tmp, __s);this->_M_initialize_numpunct(__tmp);this->_S_destroy_c_locale(__tmp);}}protected:virtual~numpunct_byname() { }};# 1914 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3templateclass num_get : public locale::facet{public:typedef _CharT char_type;typedef _InIter iter_type;static locale::id id;
# 1935 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3explicitnum_get(size_t __refs = 0) : facet(__refs) { }
# 1961 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3iter_typeget(iter_type __in, iter_type __end, ios_base& __io,ios_base::iostate& __err, bool& __v) const{ return this->do_get(__in, __end, __io, __err, __v); }
# 1998 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3iter_typeget(iter_type __in, iter_type __end, ios_base& __io,ios_base::iostate& __err, long& __v) const{ return this->do_get(__in, __end, __io, __err, __v); }iter_typeget(iter_type __in, iter_type __end, ios_base& __io,ios_base::iostate& __err, unsigned short& __v) const{ return this->do_get(__in, __end, __io, __err, __v); }iter_typeget(iter_type __in, iter_type __end, ios_base& __io,ios_base::iostate& __err, unsigned int& __v) const{ return this->do_get(__in, __end, __io, __err, __v); }iter_typeget(iter_type __in, iter_type __end, ios_base& __io,ios_base::iostate& __err, unsigned long& __v) const{ return this->do_get(__in, __end, __io, __err, __v); }iter_typeget(iter_type __in, iter_type __end, ios_base& __io,ios_base::iostate& __err, long long& __v) const{ return this->do_get(__in, __end, __io, __err, __v); }iter_typeget(iter_type __in, iter_type __end, ios_base& __io,ios_base::iostate& __err, unsigned long long& __v) const{ return this->do_get(__in, __end, __io, __err, __v); }
# 2058 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3iter_typeget(iter_type __in, iter_type __end, ios_base& __io,ios_base::iostate& __err, float& __v) const{ return this->do_get(__in, __end, __io, __err, __v); }iter_typeget(iter_type __in, iter_type __end, ios_base& __io,ios_base::iostate& __err, double& __v) const{ return this->do_get(__in, __end, __io, __err, __v); }iter_typeget(iter_type __in, iter_type __end, ios_base& __io,ios_base::iostate& __err, long double& __v) const{ return this->do_get(__in, __end, __io, __err, __v); }
# 2101 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3iter_typeget(iter_type __in, iter_type __end, ios_base& __io,ios_base::iostate& __err, void*& __v) const{ return this->do_get(__in, __end, __io, __err, __v); }protected:virtual ~num_get() { }iter_type_M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&,string&) const;templateiter_type_M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&,_ValueT&) const;templatetypename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type_M_find(const _CharT2*, size_t __len, _CharT2 __c) const{int __ret = -1;if (__len <= 10){if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len))__ret = __c - _CharT2('0');}else{if (__c >= _CharT2('0') && __c <= _CharT2('9'))__ret = __c - _CharT2('0');else if (__c >= _CharT2('a') && __c <= _CharT2('f'))__ret = 10 + (__c - _CharT2('a'));else if (__c >= _CharT2('A') && __c <= _CharT2('F'))__ret = 10 + (__c - _CharT2('A'));}return __ret;}templatetypename __gnu_cxx::__enable_if::__value,int>::__type_M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const{int __ret = -1;const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c);if (__q){__ret = __q - __zero;if (__ret > 15)__ret -= 6;}return __ret;}
# 2172 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual iter_typedo_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const;virtual iter_typedo_get(iter_type __beg, iter_type __end, ios_base& __io,ios_base::iostate& __err, long& __v) const{ return _M_extract_int(__beg, __end, __io, __err, __v); }virtual iter_typedo_get(iter_type __beg, iter_type __end, ios_base& __io,ios_base::iostate& __err, unsigned short& __v) const{ return _M_extract_int(__beg, __end, __io, __err, __v); }virtual iter_typedo_get(iter_type __beg, iter_type __end, ios_base& __io,ios_base::iostate& __err, unsigned int& __v) const{ return _M_extract_int(__beg, __end, __io, __err, __v); }virtual iter_typedo_get(iter_type __beg, iter_type __end, ios_base& __io,ios_base::iostate& __err, unsigned long& __v) const{ return _M_extract_int(__beg, __end, __io, __err, __v); }virtual iter_typedo_get(iter_type __beg, iter_type __end, ios_base& __io,ios_base::iostate& __err, long long& __v) const{ return _M_extract_int(__beg, __end, __io, __err, __v); }virtual iter_typedo_get(iter_type __beg, iter_type __end, ios_base& __io,ios_base::iostate& __err, unsigned long long& __v) const{ return _M_extract_int(__beg, __end, __io, __err, __v); }virtual iter_typedo_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const;virtual iter_typedo_get(iter_type, iter_type, ios_base&, ios_base::iostate&,double&) const;virtual iter_typedo_get(iter_type, iter_type, ios_base&, ios_base::iostate&,long double&) const;virtual iter_typedo_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const;
# 2235 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3};templatelocale::id num_get<_CharT, _InIter>::id;
# 2253 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3templateclass num_put : public locale::facet{public:typedef _CharT char_type;typedef _OutIter iter_type;static locale::id id;
# 2274 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3explicitnum_put(size_t __refs = 0) : facet(__refs) { }
# 2292 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3iter_typeput(iter_type __s, ios_base& __io, char_type __fill, bool __v) const{ return this->do_put(__s, __io, __fill, __v); }
# 2334 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3iter_typeput(iter_type __s, ios_base& __io, char_type __fill, long __v) const{ return this->do_put(__s, __io, __fill, __v); }iter_typeput(iter_type __s, ios_base& __io, char_type __fill,unsigned long __v) const{ return this->do_put(__s, __io, __fill, __v); }iter_typeput(iter_type __s, ios_base& __io, char_type __fill, long long __v) const{ return this->do_put(__s, __io, __fill, __v); }iter_typeput(iter_type __s, ios_base& __io, char_type __fill,unsigned long long __v) const{ return this->do_put(__s, __io, __fill, __v); }
# 2397 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3iter_typeput(iter_type __s, ios_base& __io, char_type __fill, double __v) const{ return this->do_put(__s, __io, __fill, __v); }iter_typeput(iter_type __s, ios_base& __io, char_type __fill,long double __v) const{ return this->do_put(__s, __io, __fill, __v); }
# 2422 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3iter_typeput(iter_type __s, ios_base& __io, char_type __fill,const void* __v) const{ return this->do_put(__s, __io, __fill, __v); }protected:templateiter_type_M_insert_float(iter_type, ios_base& __io, char_type __fill,char __mod, _ValueT __v) const;void_M_group_float(const char* __grouping, size_t __grouping_size,char_type __sep, const char_type* __p, char_type* __new,char_type* __cs, int& __len) const;templateiter_type_M_insert_int(iter_type, ios_base& __io, char_type __fill,_ValueT __v) const;void_M_group_int(const char* __grouping, size_t __grouping_size,char_type __sep, ios_base& __io, char_type* __new,char_type* __cs, int& __len) const;void_M_pad(char_type __fill, streamsize __w, ios_base& __io,char_type* __new, const char_type* __cs, int& __len) const;virtual~num_put() { };
# 2470 "/usr/include/c++/4.8.2/bits/locale_facets.h" 3virtual iter_typedo_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const;virtual iter_typedo_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const{ return _M_insert_int(__s, __io, __fill, __v); }virtual iter_typedo_put(iter_type __s, ios_base& __io, char_type __fill,unsigned long __v) const{ return _M_insert_int(__s, __io, __fill, __v); }virtual iter_typedo_put(iter_type __s, ios_base& __io, char_type __fill,long long __v) const{ return _M_insert_int(__s, __io, __fill, __v); }virtual iter_typedo_put(iter_type __s, ios_base& __io, char_type __fill,unsigned long long __v) const{ return _M_insert_int(__s, __io, __fill, __v); }virtual iter_typedo_put(iter_type, ios_base&, char_type, double) const;virtual iter_typedo_put(iter_type, ios_base&, char_type, long double) const;virtual iter_typedo_put(iter_type, ios_base&, char_type, const void*) const;};template locale::id num_put<_CharT, _OutIter>::id;templateinline boolisspace(_CharT __c, const locale& __loc){ return use_facet >(__loc).is(ctype_base::space, __c); }templateinline boolisprint(_CharT __c, const locale& __loc){ return use_facet >(__loc).is(ctype_base::print, __c); }templateinline booliscntrl(_CharT __c, const locale& __loc){ return use_facet >(__loc).is(ctype_base::cntrl, __c); }templateinline boolisupper(_CharT __c, const locale& __loc){ return use_facet >(__loc).is(ctype_base::upper, __c); }templateinline boolislower(_CharT __c, const locale& __loc){ return use_facet >(__loc).is(ctype_base::lower, __c); }templateinline boolisalpha(_CharT __c, const locale& __loc){ return use_facet >(__loc).is(ctype_base::alpha, __c); }templateinline boolisdigit(_CharT __c, const locale& __loc){ return use_facet >(__loc).is(ctype_base::digit, __c); }templateinline boolispunct(_CharT __c, const locale& __loc){ return use_facet >(__loc).is(ctype_base::punct, __c); }templateinline boolisxdigit(_CharT __c, const locale& __loc){ return use_facet >(__loc).is(ctype_base::xdigit, __c); }templateinline boolisalnum(_CharT __c, const locale& __loc){ return use_facet >(__loc).is(ctype_base::alnum, __c); }templateinline boolisgraph(_CharT __c, const locale& __loc){ return use_facet >(__loc).is(ctype_base::graph, __c); }templateinline _CharTtoupper(_CharT __c, const locale& __loc){ return use_facet >(__loc).toupper(__c); }templateinline _CharTtolower(_CharT __c, const locale& __loc){ return use_facet >(__loc).tolower(__c); }}# 1 "/usr/include/c++/4.8.2/bits/locale_facets.tcc" 1 3
# 33 "/usr/include/c++/4.8.2/bits/locale_facets.tcc" 3# 34 "/usr/include/c++/4.8.2/bits/locale_facets.tcc" 3namespace std __attribute__ ((__visibility__ ("default")))
{templatestruct __use_cache{const _Facet*operator() (const locale& __loc) const;};templatestruct __use_cache<__numpunct_cache<_CharT> >{const __numpunct_cache<_CharT>*operator() (const locale& __loc) const{const size_t __i = numpunct<_CharT>::id._M_id();const locale::facet** __caches = __loc._M_impl->_M_caches;if (!__caches[__i]){__numpunct_cache<_CharT>* __tmp = 0;try{__tmp = new __numpunct_cache<_CharT>;__tmp->_M_cache(__loc);}catch(...){delete __tmp;throw;}__loc._M_impl->_M_install_cache(__tmp, __i);}return static_cast*>(__caches[__i]);}};templatevoid__numpunct_cache<_CharT>::_M_cache(const locale& __loc){_M_allocated = true;const numpunct<_CharT>& __np = use_facet >(__loc);char* __grouping = 0;_CharT* __truename = 0;_CharT* __falsename = 0;try{_M_grouping_size = __np.grouping().size();__grouping = new char[_M_grouping_size];__np.grouping().copy(__grouping, _M_grouping_size);_M_grouping = __grouping;_M_use_grouping = (_M_grouping_size&& static_cast(_M_grouping[0]) > 0&& (_M_grouping[0]!= __gnu_cxx::__numeric_traits::__max));_M_truename_size = __np.truename().size();__truename = new _CharT[_M_truename_size];__np.truename().copy(__truename, _M_truename_size);_M_truename = __truename;_M_falsename_size = __np.falsename().size();__falsename = new _CharT[_M_falsename_size];__np.falsename().copy(__falsename, _M_falsename_size);_M_falsename = __falsename;_M_decimal_point = __np.decimal_point();_M_thousands_sep = __np.thousands_sep();const ctype<_CharT>& __ct = use_facet >(__loc);__ct.widen(__num_base::_S_atoms_out,__num_base::_S_atoms_out+ __num_base::_S_oend, _M_atoms_out);__ct.widen(__num_base::_S_atoms_in,__num_base::_S_atoms_in+ __num_base::_S_iend, _M_atoms_in);}catch(...){delete [] __grouping;delete [] __truename;delete [] __falsename;throw;}}
# 136 "/usr/include/c++/4.8.2/bits/locale_facets.tcc" 3__attribute__ ((__pure__)) bool__verify_grouping(const char* __grouping, size_t __grouping_size,const string& __grouping_tmp) throw ();template_InIternum_get<_CharT, _InIter>::_M_extract_float(_InIter __beg, _InIter __end, ios_base& __io,ios_base::iostate& __err, string& __xtrc) const{typedef char_traits<_CharT> __traits_type;typedef __numpunct_cache<_CharT> __cache_type;__use_cache<__cache_type> __uc;const locale& __loc = __io._M_getloc();const __cache_type* __lc = __uc(__loc);const _CharT* __lit = __lc->_M_atoms_in;char_type __c = char_type();bool __testeof = __beg == __end;if (!__testeof){__c = *__beg;const bool __plus = __c == __lit[__num_base::_S_iplus];if ((__plus || __c == __lit[__num_base::_S_iminus])&& !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)&& !(__c == __lc->_M_decimal_point)){__xtrc += __plus ? '+' : '-';if (++__beg != __end)__c = *__beg;else__testeof = true;}}bool __found_mantissa = false;int __sep_pos = 0;while (!__testeof){if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)|| __c == __lc->_M_decimal_point)break;else if (__c == __lit[__num_base::_S_izero]){if (!__found_mantissa){__xtrc += '0';__found_mantissa = true;}++__sep_pos;if (++__beg != __end)__c = *__beg;else__testeof = true;}elsebreak;}bool __found_dec = false;bool __found_sci = false;string __found_grouping;if (__lc->_M_use_grouping)__found_grouping.reserve(32);const char_type* __lit_zero = __lit + __num_base::_S_izero;if (!__lc->_M_allocated)while (!__testeof){const int __digit = _M_find(__lit_zero, 10, __c);if (__digit != -1){__xtrc += '0' + __digit;__found_mantissa = true;}else if (__c == __lc->_M_decimal_point&& !__found_dec && !__found_sci){__xtrc += '.';__found_dec = true;}else if ((__c == __lit[__num_base::_S_ie]|| __c == __lit[__num_base::_S_iE])&& !__found_sci && __found_mantissa){__xtrc += 'e';__found_sci = true;if (++__beg != __end){__c = *__beg;const bool __plus = __c == __lit[__num_base::_S_iplus];if (__plus || __c == __lit[__num_base::_S_iminus])__xtrc += __plus ? '+' : '-';elsecontinue;}else{__testeof = true;break;}}elsebreak;if (++__beg != __end)__c = *__beg;else__testeof = true;}elsewhile (!__testeof){if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep){if (!__found_dec && !__found_sci){if (__sep_pos){__found_grouping += static_cast(__sep_pos);__sep_pos = 0;}else{__xtrc.clear();break;}}elsebreak;}else if (__c == __lc->_M_decimal_point){if (!__found_dec && !__found_sci){if (__found_grouping.size())__found_grouping += static_cast(__sep_pos);__xtrc += '.';__found_dec = true;}elsebreak;}else{const char_type* __q =__traits_type::find(__lit_zero, 10, __c);if (__q){__xtrc += '0' + (__q - __lit_zero);__found_mantissa = true;++__sep_pos;}else if ((__c == __lit[__num_base::_S_ie]|| __c == __lit[__num_base::_S_iE])&& !__found_sci && __found_mantissa){if (__found_grouping.size() && !__found_dec)__found_grouping += static_cast(__sep_pos);__xtrc += 'e';__found_sci = true;if (++__beg != __end){__c = *__beg;const bool __plus = __c == __lit[__num_base::_S_iplus];if ((__plus || __c == __lit[__num_base::_S_iminus])&& !(__lc->_M_use_grouping&& __c == __lc->_M_thousands_sep)&& !(__c == __lc->_M_decimal_point))__xtrc += __plus ? '+' : '-';elsecontinue;}else{__testeof = true;break;}}elsebreak;}if (++__beg != __end)__c = *__beg;else__testeof = true;}if (__found_grouping.size()){if (!__found_dec && !__found_sci)__found_grouping += static_cast(__sep_pos);if (!std::__verify_grouping(__lc->_M_grouping,__lc->_M_grouping_size,__found_grouping))__err = ios_base::failbit;}return __beg;}templatetemplate_InIternum_get<_CharT, _InIter>::_M_extract_int(_InIter __beg, _InIter __end, ios_base& __io,ios_base::iostate& __err, _ValueT& __v) const{typedef char_traits<_CharT> __traits_type;using __gnu_cxx::__add_unsigned;typedef typename __add_unsigned<_ValueT>::__type __unsigned_type;typedef __numpunct_cache<_CharT> __cache_type;__use_cache<__cache_type> __uc;const locale& __loc = __io._M_getloc();const __cache_type* __lc = __uc(__loc);const _CharT* __lit = __lc->_M_atoms_in;char_type __c = char_type();const ios_base::fmtflags __basefield = __io.flags()& ios_base::basefield;const bool __oct = __basefield == ios_base::oct;int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10);bool __testeof = __beg == __end;bool __negative = false;if (!__testeof){__c = *__beg;__negative = __c == __lit[__num_base::_S_iminus];if ((__negative || __c == __lit[__num_base::_S_iplus])&& !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)&& !(__c == __lc->_M_decimal_point)){if (++__beg != __end)__c = *__beg;else__testeof = true;}}bool __found_zero = false;int __sep_pos = 0;while (!__testeof){if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)|| __c == __lc->_M_decimal_point)break;else if (__c == __lit[__num_base::_S_izero]&& (!__found_zero || __base == 10)){__found_zero = true;++__sep_pos;if (__basefield == 0)__base = 8;if (__base == 8)__sep_pos = 0;}else if (__found_zero&& (__c == __lit[__num_base::_S_ix]|| __c == __lit[__num_base::_S_iX])){if (__basefield == 0)__base = 16;if (__base == 16){__found_zero = false;__sep_pos = 0;}elsebreak;}elsebreak;if (++__beg != __end){__c = *__beg;if (!__found_zero)break;}else__testeof = true;}const size_t __len = (__base == 16 ? __num_base::_S_iend- __num_base::_S_izero : __base);string __found_grouping;if (__lc->_M_use_grouping)__found_grouping.reserve(32);bool __testfail = false;bool __testoverflow = false;const __unsigned_type __max =(__negative && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)? -__gnu_cxx::__numeric_traits<_ValueT>::__min: __gnu_cxx::__numeric_traits<_ValueT>::__max;const __unsigned_type __smax = __max / __base;__unsigned_type __result = 0;int __digit = 0;const char_type* __lit_zero = __lit + __num_base::_S_izero;if (!__lc->_M_allocated)while (!__testeof){__digit = _M_find(__lit_zero, __len, __c);if (__digit == -1)break;if (__result > __smax)__testoverflow = true;else{__result *= __base;__testoverflow |= __result > __max - __digit;__result += __digit;++__sep_pos;}if (++__beg != __end)__c = *__beg;else__testeof = true;}elsewhile (!__testeof){if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep){if (__sep_pos){__found_grouping += static_cast(__sep_pos);__sep_pos = 0;}else{__testfail = true;break;}}else if (__c == __lc->_M_decimal_point)break;else{const char_type* __q =__traits_type::find(__lit_zero, __len, __c);if (!__q)break;__digit = __q - __lit_zero;if (__digit > 15)__digit -= 6;if (__result > __smax)__testoverflow = true;else{__result *= __base;__testoverflow |= __result > __max - __digit;__result += __digit;++__sep_pos;}}if (++__beg != __end)__c = *__beg;else__testeof = true;}if (__found_grouping.size()){__found_grouping += static_cast(__sep_pos);if (!std::__verify_grouping(__lc->_M_grouping,__lc->_M_grouping_size,__found_grouping))__err = ios_base::failbit;}if ((!__sep_pos && !__found_zero && !__found_grouping.size())|| __testfail){__v = 0;__err = ios_base::failbit;}else if (__testoverflow){if (__negative&& __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)__v = __gnu_cxx::__numeric_traits<_ValueT>::__min;else__v = __gnu_cxx::__numeric_traits<_ValueT>::__max;__err = ios_base::failbit;}else__v = __negative ? -__result : __result;if (__testeof)__err |= ios_base::eofbit;return __beg;}template_InIternum_get<_CharT, _InIter>::do_get(iter_type __beg, iter_type __end, ios_base& __io,ios_base::iostate& __err, bool& __v) const{if (!(__io.flags() & ios_base::boolalpha)){long __l = -1;__beg = _M_extract_int(__beg, __end, __io, __err, __l);if (__l == 0 || __l == 1)__v = bool(__l);else{__v = true;__err = ios_base::failbit;if (__beg == __end)__err |= ios_base::eofbit;}}else{typedef __numpunct_cache<_CharT> __cache_type;__use_cache<__cache_type> __uc;const locale& __loc = __io._M_getloc();const __cache_type* __lc = __uc(__loc);bool __testf = true;bool __testt = true;bool __donef = __lc->_M_falsename_size == 0;bool __donet = __lc->_M_truename_size == 0;bool __testeof = false;size_t __n = 0;while (!__donef || !__donet){if (__beg == __end){__testeof = true;break;}const char_type __c = *__beg;if (!__donef)__testf = __c == __lc->_M_falsename[__n];if (!__testf && __donet)break;if (!__donet)__testt = __c == __lc->_M_truename[__n];if (!__testt && __donef)break;if (!__testt && !__testf)break;++__n;++__beg;__donef = !__testf || __n >= __lc->_M_falsename_size;__donet = !__testt || __n >= __lc->_M_truename_size;}if (__testf && __n == __lc->_M_falsename_size && __n){__v = false;if (__testt && __n == __lc->_M_truename_size)__err = ios_base::failbit;else__err = __testeof ? ios_base::eofbit : ios_base::goodbit;}else if (__testt && __n == __lc->_M_truename_size && __n){__v = true;__err = __testeof ? ios_base::eofbit : ios_base::goodbit;}else{__v = false;__err = ios_base::failbit;if (__testeof)__err |= ios_base::eofbit;}}return __beg;}template_InIternum_get<_CharT, _InIter>::do_get(iter_type __beg, iter_type __end, ios_base& __io,ios_base::iostate& __err, float& __v) const{string __xtrc;__xtrc.reserve(32);__beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());if (__beg == __end)__err |= ios_base::eofbit;return __beg;}template_InIternum_get<_CharT, _InIter>::do_get(iter_type __beg, iter_type __end, ios_base& __io,ios_base::iostate& __err, double& __v) const{string __xtrc;__xtrc.reserve(32);__beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());if (__beg == __end)__err |= ios_base::eofbit;return __beg;}
# 730 "/usr/include/c++/4.8.2/bits/locale_facets.tcc" 3template_InIternum_get<_CharT, _InIter>::do_get(iter_type __beg, iter_type __end, ios_base& __io,ios_base::iostate& __err, long double& __v) const{string __xtrc;__xtrc.reserve(32);__beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());if (__beg == __end)__err |= ios_base::eofbit;return __beg;}template_InIternum_get<_CharT, _InIter>::do_get(iter_type __beg, iter_type __end, ios_base& __io,ios_base::iostate& __err, void*& __v) const{typedef ios_base::fmtflags fmtflags;const fmtflags __fmt = __io.flags();__io.flags((__fmt & ~ios_base::basefield) | ios_base::hex);typedef __gnu_cxx::__conditional_type<(sizeof(void*)<= sizeof(unsigned long)),unsigned long, unsigned long long>::__type _UIntPtrType;_UIntPtrType __ul;__beg = _M_extract_int(__beg, __end, __io, __err, __ul);__io.flags(__fmt);__v = reinterpret_cast(__ul);return __beg;}templatevoidnum_put<_CharT, _OutIter>::_M_pad(_CharT __fill, streamsize __w, ios_base& __io,_CharT* __new, const _CharT* __cs, int& __len) const{__pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new,__cs, __w, __len);__len = static_cast(__w);}templateint__int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit,ios_base::fmtflags __flags, bool __dec){_CharT* __buf = __bufend;if (__builtin_expect(__dec, true)){do{*--__buf = __lit[(__v % 10) + __num_base::_S_odigits];__v /= 10;}while (__v != 0);}else if ((__flags & ios_base::basefield) == ios_base::oct){do{*--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits];__v >>= 3;}while (__v != 0);}else{const bool __uppercase = __flags & ios_base::uppercase;const int __case_offset = __uppercase ? __num_base::_S_oudigits: __num_base::_S_odigits;do{*--__buf = __lit[(__v & 0xf) + __case_offset];__v >>= 4;}while (__v != 0);}return __bufend - __buf;}templatevoidnum_put<_CharT, _OutIter>::_M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep,ios_base&, _CharT* __new, _CharT* __cs, int& __len) const{_CharT* __p = std::__add_grouping(__new, __sep, __grouping,__grouping_size, __cs, __cs + __len);__len = __p - __new;}templatetemplate_OutIternum_put<_CharT, _OutIter>::_M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill,_ValueT __v) const{using __gnu_cxx::__add_unsigned;typedef typename __add_unsigned<_ValueT>::__type __unsigned_type;typedef __numpunct_cache<_CharT> __cache_type;__use_cache<__cache_type> __uc;const locale& __loc = __io._M_getloc();const __cache_type* __lc = __uc(__loc);const _CharT* __lit = __lc->_M_atoms_out;const ios_base::fmtflags __flags = __io.flags();const int __ilen = 5 * sizeof(_ValueT);_CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)* __ilen));const ios_base::fmtflags __basefield = __flags & ios_base::basefield;const bool __dec = (__basefield != ios_base::oct&& __basefield != ios_base::hex);const __unsigned_type __u = ((__v > 0 || !__dec)? __unsigned_type(__v): -__unsigned_type(__v));int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec);__cs += __ilen - __len;if (__lc->_M_use_grouping){_CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)* (__len + 1)* 2));_M_group_int(__lc->_M_grouping, __lc->_M_grouping_size,__lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len);__cs = __cs2 + 2;}if (__builtin_expect(__dec, true)){if (__v >= 0){if (bool(__flags & ios_base::showpos)&& __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)*--__cs = __lit[__num_base::_S_oplus], ++__len;}else*--__cs = __lit[__num_base::_S_ominus], ++__len;}else if (bool(__flags & ios_base::showbase) && __v){if (__basefield == ios_base::oct)*--__cs = __lit[__num_base::_S_odigits], ++__len;else{const bool __uppercase = __flags & ios_base::uppercase;*--__cs = __lit[__num_base::_S_ox + __uppercase];*--__cs = __lit[__num_base::_S_odigits];__len += 2;}}const streamsize __w = __io.width();if (__w > static_cast(__len)){_CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)* __w));_M_pad(__fill, __w, __io, __cs3, __cs, __len);__cs = __cs3;}__io.width(0);return std::__write(__s, __cs, __len);}templatevoidnum_put<_CharT, _OutIter>::_M_group_float(const char* __grouping, size_t __grouping_size,_CharT __sep, const _CharT* __p, _CharT* __new,_CharT* __cs, int& __len) const{const int __declen = __p ? __p - __cs : __len;_CharT* __p2 = std::__add_grouping(__new, __sep, __grouping,__grouping_size,__cs, __cs + __declen);int __newlen = __p2 - __new;if (__p){char_traits<_CharT>::copy(__p2, __p, __len - __declen);__newlen += __len - __declen;}__len = __newlen;}
# 966 "/usr/include/c++/4.8.2/bits/locale_facets.tcc" 3templatetemplate_OutIternum_put<_CharT, _OutIter>::_M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod,_ValueT __v) const{typedef __numpunct_cache<_CharT> __cache_type;__use_cache<__cache_type> __uc;const locale& __loc = __io._M_getloc();const __cache_type* __lc = __uc(__loc);const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision();const int __max_digits =__gnu_cxx::__numeric_traits<_ValueT>::__digits10;int __len;char __fbuf[16];__num_base::_S_format_float(__io, __fbuf, __mod);int __cs_size = __max_digits * 3;char* __cs = static_cast(__builtin_alloca(__cs_size));__len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size,__fbuf, __prec, __v);if (__len >= __cs_size){__cs_size = __len + 1;__cs = static_cast(__builtin_alloca(__cs_size));__len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size,__fbuf, __prec, __v);}
# 1027 "/usr/include/c++/4.8.2/bits/locale_facets.tcc" 3const ctype<_CharT>& __ctype = use_facet >(__loc);_CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)* __len));__ctype.widen(__cs, __cs + __len, __ws);_CharT* __wp = 0;const char* __p = char_traits::find(__cs, __len, '.');if (__p){__wp = __ws + (__p - __cs);*__wp = __lc->_M_decimal_point;}if (__lc->_M_use_grouping&& (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9'&& __cs[1] >= '0' && __cs[2] >= '0'))){_CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)* __len * 2));streamsize __off = 0;if (__cs[0] == '-' || __cs[0] == '+'){__off = 1;__ws2[0] = __ws[0];__len -= 1;}_M_group_float(__lc->_M_grouping, __lc->_M_grouping_size,__lc->_M_thousands_sep, __wp, __ws2 + __off,__ws + __off, __len);__len += __off;__ws = __ws2;}const streamsize __w = __io.width();if (__w > static_cast(__len)){_CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)* __w));_M_pad(__fill, __w, __io, __ws3, __ws, __len);__ws = __ws3;}__io.width(0);return std::__write(__s, __ws, __len);}template_OutIternum_put<_CharT, _OutIter>::do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const{const ios_base::fmtflags __flags = __io.flags();if ((__flags & ios_base::boolalpha) == 0){const long __l = __v;__s = _M_insert_int(__s, __io, __fill, __l);}else{typedef __numpunct_cache<_CharT> __cache_type;__use_cache<__cache_type> __uc;const locale& __loc = __io._M_getloc();const __cache_type* __lc = __uc(__loc);const _CharT* __name = __v ? __lc->_M_truename: __lc->_M_falsename;int __len = __v ? __lc->_M_truename_size: __lc->_M_falsename_size;const streamsize __w = __io.width();if (__w > static_cast(__len)){const streamsize __plen = __w - __len;_CharT* __ps= static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)* __plen));char_traits<_CharT>::assign(__ps, __plen, __fill);__io.width(0);if ((__flags & ios_base::adjustfield) == ios_base::left){__s = std::__write(__s, __name, __len);__s = std::__write(__s, __ps, __plen);}else{__s = std::__write(__s, __ps, __plen);__s = std::__write(__s, __name, __len);}return __s;}__io.width(0);__s = std::__write(__s, __name, __len);}return __s;}template_OutIternum_put<_CharT, _OutIter>::do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const{ return _M_insert_float(__s, __io, __fill, char(), __v); }
# 1152 "/usr/include/c++/4.8.2/bits/locale_facets.tcc" 3template_OutIternum_put<_CharT, _OutIter>::do_put(iter_type __s, ios_base& __io, char_type __fill,long double __v) const{ return _M_insert_float(__s, __io, __fill, 'L', __v); }template_OutIternum_put<_CharT, _OutIter>::do_put(iter_type __s, ios_base& __io, char_type __fill,const void* __v) const{const ios_base::fmtflags __flags = __io.flags();const ios_base::fmtflags __fmt = ~(ios_base::basefield| ios_base::uppercase);__io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase));typedef __gnu_cxx::__conditional_type<(sizeof(const void*)<= sizeof(unsigned long)),unsigned long, unsigned long long>::__type _UIntPtrType;__s = _M_insert_int(__s, __io, __fill,reinterpret_cast<_UIntPtrType>(__v));__io.flags(__flags);return __s;}# 1189 "/usr/include/c++/4.8.2/bits/locale_facets.tcc" 3templatevoid__pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill,_CharT* __news, const _CharT* __olds,streamsize __newlen, streamsize __oldlen){const size_t __plen = static_cast(__newlen - __oldlen);const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield;if (__adjust == ios_base::left){_Traits::copy(__news, __olds, __oldlen);_Traits::assign(__news + __oldlen, __plen, __fill);return;}size_t __mod = 0;if (__adjust == ios_base::internal){const locale& __loc = __io._M_getloc();const ctype<_CharT>& __ctype = use_facet >(__loc);if (__ctype.widen('-') == __olds[0]|| __ctype.widen('+') == __olds[0]){__news[0] = __olds[0];__mod = 1;++__news;}else if (__ctype.widen('0') == __olds[0]&& __oldlen > 1&& (__ctype.widen('x') == __olds[1]|| __ctype.widen('X') == __olds[1])){__news[0] = __olds[0];__news[1] = __olds[1];__mod = 2;__news += 2;}}_Traits::assign(__news, __plen, __fill);_Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod);}template_CharT*__add_grouping(_CharT* __s, _CharT __sep,const char* __gbeg, size_t __gsize,const _CharT* __first, const _CharT* __last){size_t __idx = 0;size_t __ctr = 0;while (__last - __first > __gbeg[__idx]&& static_cast(__gbeg[__idx]) > 0&& __gbeg[__idx] != __gnu_cxx::__numeric_traits::__max){__last -= __gbeg[__idx];__idx < __gsize - 1 ? ++__idx : ++__ctr;}while (__first != __last)*__s++ = *__first++;while (__ctr--){*__s++ = __sep;for (char __i = __gbeg[__idx]; __i > 0; --__i)*__s++ = *__first++;}while (__idx--){*__s++ = __sep;for (char __i = __gbeg[__idx]; __i > 0; --__i)*__s++ = *__first++;}return __s;}extern template class numpunct;extern template class numpunct_byname;extern template class num_get;extern template class num_put;extern template class ctype_byname;extern templateconst ctype&use_facet >(const locale&);extern templateconst numpunct&use_facet >(const locale&);extern templateconst num_put&use_facet >(const locale&);extern templateconst num_get&use_facet >(const locale&);extern templateboolhas_facet >(const locale&);extern templateboolhas_facet >(const locale&);extern templateboolhas_facet >(const locale&);extern templateboolhas_facet >(const locale&);extern template class numpunct;extern template class numpunct_byname;extern template class num_get;extern template class num_put;extern template class ctype_byname;extern templateconst ctype&use_facet >(const locale&);extern templateconst numpunct&use_facet >(const locale&);extern templateconst num_put&use_facet >(const locale&);extern templateconst num_get&use_facet >(const locale&);extern templateboolhas_facet >(const locale&);extern templateboolhas_facet >(const locale&);extern templateboolhas_facet >(const locale&);extern templateboolhas_facet >(const locale&);}
# 2609 "/usr/include/c++/4.8.2/bits/locale_facets.h" 2 3
# 38 "/usr/include/c++/4.8.2/bits/basic_ios.h" 2 3namespace std __attribute__ ((__visibility__ ("default")))
{templateinline const _Facet&__check_facet(const _Facet* __f){if (!__f)__throw_bad_cast();return *__f;}
# 65 "/usr/include/c++/4.8.2/bits/basic_ios.h" 3templateclass basic_ios : public ios_base{public:typedef _CharT char_type;typedef typename _Traits::int_type int_type;typedef typename _Traits::pos_type pos_type;typedef typename _Traits::off_type off_type;typedef _Traits traits_type;typedef ctype<_CharT> __ctype_type;typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> >__num_put_type;typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> >__num_get_type;protected:basic_ostream<_CharT, _Traits>* _M_tie;mutable char_type _M_fill;mutable bool _M_fill_init;basic_streambuf<_CharT, _Traits>* _M_streambuf;const __ctype_type* _M_ctype;const __num_put_type* _M_num_put;const __num_get_type* _M_num_get;public:operator void*() const{ return this->fail() ? 0 : const_cast(this); }booloperator!() const{ return this->fail(); }
# 130 "/usr/include/c++/4.8.2/bits/basic_ios.h" 3iostaterdstate() const{ return _M_streambuf_state; }
# 141 "/usr/include/c++/4.8.2/bits/basic_ios.h" 3voidclear(iostate __state = goodbit);voidsetstate(iostate __state){ this->clear(this->rdstate() | __state); }void_M_setstate(iostate __state){_M_streambuf_state |= __state;if (this->exceptions() & __state)throw;}boolgood() const{ return this->rdstate() == 0; }booleof() const{ return (this->rdstate() & eofbit) != 0; }
# 194 "/usr/include/c++/4.8.2/bits/basic_ios.h" 3boolfail() const{ return (this->rdstate() & (badbit | failbit)) != 0; }boolbad() const{ return (this->rdstate() & badbit) != 0; }
# 215 "/usr/include/c++/4.8.2/bits/basic_ios.h" 3iostateexceptions() const{ return _M_exception; }
# 250 "/usr/include/c++/4.8.2/bits/basic_ios.h" 3voidexceptions(iostate __except){_M_exception = __except;this->clear(_M_streambuf_state);}explicitbasic_ios(basic_streambuf<_CharT, _Traits>* __sb): ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0),_M_ctype(0), _M_num_put(0), _M_num_get(0){ this->init(__sb); }virtual~basic_ios() { }
# 288 "/usr/include/c++/4.8.2/bits/basic_ios.h" 3basic_ostream<_CharT, _Traits>*tie() const{ return _M_tie; }
# 300 "/usr/include/c++/4.8.2/bits/basic_ios.h" 3basic_ostream<_CharT, _Traits>*tie(basic_ostream<_CharT, _Traits>* __tiestr){basic_ostream<_CharT, _Traits>* __old = _M_tie;_M_tie = __tiestr;return __old;}basic_streambuf<_CharT, _Traits>*rdbuf() const{ return _M_streambuf; }
# 340 "/usr/include/c++/4.8.2/bits/basic_ios.h" 3basic_streambuf<_CharT, _Traits>*rdbuf(basic_streambuf<_CharT, _Traits>* __sb);
# 354 "/usr/include/c++/4.8.2/bits/basic_ios.h" 3basic_ios©fmt(const basic_ios& __rhs);char_typefill() const{if (!_M_fill_init){_M_fill = this->widen(' ');_M_fill_init = true;}return _M_fill;}
# 383 "/usr/include/c++/4.8.2/bits/basic_ios.h" 3char_typefill(char_type __ch){char_type __old = this->fill();_M_fill = __ch;return __old;}
# 403 "/usr/include/c++/4.8.2/bits/basic_ios.h" 3localeimbue(const locale& __loc);
# 423 "/usr/include/c++/4.8.2/bits/basic_ios.h" 3charnarrow(char_type __c, char __dfault) const{ return __check_facet(_M_ctype).narrow(__c, __dfault); }
# 442 "/usr/include/c++/4.8.2/bits/basic_ios.h" 3char_typewiden(char __c) const{ return __check_facet(_M_ctype).widen(__c); }protected:basic_ios(): ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false),_M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0){ }voidinit(basic_streambuf<_CharT, _Traits>* __sb);void_M_cache_locale(const locale& __loc);};}# 1 "/usr/include/c++/4.8.2/bits/basic_ios.tcc" 1 3
# 33 "/usr/include/c++/4.8.2/bits/basic_ios.tcc" 3# 34 "/usr/include/c++/4.8.2/bits/basic_ios.tcc" 3namespace std __attribute__ ((__visibility__ ("default")))
{templatevoidbasic_ios<_CharT, _Traits>::clear(iostate __state){if (this->rdbuf())_M_streambuf_state = __state;else_M_streambuf_state = __state | badbit;if (this->exceptions() & this->rdstate())__throw_ios_failure(("basic_ios::clear"));}templatebasic_streambuf<_CharT, _Traits>*basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb){basic_streambuf<_CharT, _Traits>* __old = _M_streambuf;_M_streambuf = __sb;this->clear();return __old;}templatebasic_ios<_CharT, _Traits>&basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs){if (this != &__rhs){_Words* __words = (__rhs._M_word_size <= _S_local_word_size) ?_M_local_word : new _Words[__rhs._M_word_size];_Callback_list* __cb = __rhs._M_callbacks;if (__cb)__cb->_M_add_reference();_M_call_callbacks(erase_event);if (_M_word != _M_local_word){delete [] _M_word;_M_word = 0;}_M_dispose_callbacks();_M_callbacks = __cb;for (int __i = 0; __i < __rhs._M_word_size; ++__i)__words[__i] = __rhs._M_word[__i];_M_word = __words;_M_word_size = __rhs._M_word_size;this->flags(__rhs.flags());this->width(__rhs.width());this->precision(__rhs.precision());this->tie(__rhs.tie());this->fill(__rhs.fill());_M_ios_locale = __rhs.getloc();_M_cache_locale(_M_ios_locale);_M_call_callbacks(copyfmt_event);this->exceptions(__rhs.exceptions());}return *this;}templatelocalebasic_ios<_CharT, _Traits>::imbue(const locale& __loc){locale __old(this->getloc());ios_base::imbue(__loc);_M_cache_locale(__loc);if (this->rdbuf() != 0)this->rdbuf()->pubimbue(__loc);return __old;}templatevoidbasic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb){ios_base::_M_init();_M_cache_locale(_M_ios_locale);
# 146 "/usr/include/c++/4.8.2/bits/basic_ios.tcc" 3_M_fill = _CharT();_M_fill_init = false;_M_tie = 0;_M_exception = goodbit;_M_streambuf = __sb;_M_streambuf_state = __sb ? goodbit : badbit;}templatevoidbasic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc){if (__builtin_expect(has_facet<__ctype_type>(__loc), true))_M_ctype = &use_facet<__ctype_type>(__loc);else_M_ctype = 0;if (__builtin_expect(has_facet<__num_put_type>(__loc), true))_M_num_put = &use_facet<__num_put_type>(__loc);else_M_num_put = 0;if (__builtin_expect(has_facet<__num_get_type>(__loc), true))_M_num_get = &use_facet<__num_get_type>(__loc);else_M_num_get = 0;}extern template class basic_ios;extern template class basic_ios;}
# 476 "/usr/include/c++/4.8.2/bits/basic_ios.h" 2 3
# 45 "/usr/include/c++/4.8.2/ios" 2 3
# 39 "/usr/include/c++/4.8.2/ostream" 2 3namespace std __attribute__ ((__visibility__ ("default")))
{# 57 "/usr/include/c++/4.8.2/ostream" 3templateclass basic_ostream : virtual public basic_ios<_CharT, _Traits>{public:typedef _CharT char_type;typedef typename _Traits::int_type int_type;typedef typename _Traits::pos_type pos_type;typedef typename _Traits::off_type off_type;typedef _Traits traits_type;typedef basic_streambuf<_CharT, _Traits> __streambuf_type;typedef basic_ios<_CharT, _Traits> __ios_type;typedef basic_ostream<_CharT, _Traits> __ostream_type;typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> >__num_put_type;typedef ctype<_CharT> __ctype_type;
# 83 "/usr/include/c++/4.8.2/ostream" 3explicitbasic_ostream(__streambuf_type* __sb){ this->init(__sb); }virtual~basic_ostream() { }class sentry;friend class sentry;
# 107 "/usr/include/c++/4.8.2/ostream" 3__ostream_type&operator<<(__ostream_type& (*__pf)(__ostream_type&)){return __pf(*this);}__ostream_type&operator<<(__ios_type& (*__pf)(__ios_type&)){__pf(*this);return *this;}__ostream_type&operator<<(ios_base& (*__pf) (ios_base&)){__pf(*this);return *this;}
# 165 "/usr/include/c++/4.8.2/ostream" 3__ostream_type&operator<<(long __n){ return _M_insert(__n); }__ostream_type&operator<<(unsigned long __n){ return _M_insert(__n); }__ostream_type&operator<<(bool __n){ return _M_insert(__n); }__ostream_type&operator<<(short __n);__ostream_type&operator<<(unsigned short __n){return _M_insert(static_cast(__n));}__ostream_type&operator<<(int __n);__ostream_type&operator<<(unsigned int __n){return _M_insert(static_cast(__n));}__ostream_type&operator<<(long long __n){ return _M_insert(__n); }__ostream_type&operator<<(unsigned long long __n){ return _M_insert(__n); }
# 219 "/usr/include/c++/4.8.2/ostream" 3__ostream_type&operator<<(double __f){ return _M_insert(__f); }__ostream_type&operator<<(float __f){return _M_insert(static_cast(__f));}__ostream_type&operator<<(long double __f){ return _M_insert(__f); }
# 244 "/usr/include/c++/4.8.2/ostream" 3__ostream_type&operator<<(const void* __p){ return _M_insert(__p); }
# 269 "/usr/include/c++/4.8.2/ostream" 3__ostream_type&operator<<(__streambuf_type* __sb);
# 302 "/usr/include/c++/4.8.2/ostream" 3__ostream_type&put(char_type __c);void_M_write(const char_type* __s, streamsize __n){const streamsize __put = this->rdbuf()->sputn(__s, __n);if (__put != __n)this->setstate(ios_base::badbit);}
# 334 "/usr/include/c++/4.8.2/ostream" 3__ostream_type&write(const char_type* __s, streamsize __n);
# 347 "/usr/include/c++/4.8.2/ostream" 3__ostream_type&flush();
# 357 "/usr/include/c++/4.8.2/ostream" 3pos_typetellp();
# 368 "/usr/include/c++/4.8.2/ostream" 3__ostream_type&seekp(pos_type);
# 380 "/usr/include/c++/4.8.2/ostream" 3__ostream_type&seekp(off_type, ios_base::seekdir);protected:basic_ostream(){ this->init(0); }template__ostream_type&_M_insert(_ValueT __v);};
# 399 "/usr/include/c++/4.8.2/ostream" 3template class basic_ostream<_CharT, _Traits>::sentry{bool _M_ok;basic_ostream<_CharT, _Traits>& _M_os;public:
# 418 "/usr/include/c++/4.8.2/ostream" 3explicitsentry(basic_ostream<_CharT, _Traits>& __os);
# 428 "/usr/include/c++/4.8.2/ostream" 3~sentry(){if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception()){if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1)_M_os.setstate(ios_base::badbit);}}
# 449 "/usr/include/c++/4.8.2/ostream" 3operator bool() const{ return _M_ok; }};
# 469 "/usr/include/c++/4.8.2/ostream" 3templateinline basic_ostream<_CharT, _Traits>&operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c){ return __ostream_insert(__out, &__c, 1); }templateinline basic_ostream<_CharT, _Traits>&operator<<(basic_ostream<_CharT, _Traits>& __out, char __c){ return (__out << __out.widen(__c)); }template inline basic_ostream&operator<<(basic_ostream& __out, char __c){ return __ostream_insert(__out, &__c, 1); }templateinline basic_ostream&operator<<(basic_ostream& __out, signed char __c){ return (__out << static_cast(__c)); }templateinline basic_ostream&operator<<(basic_ostream& __out, unsigned char __c){ return (__out << static_cast(__c)); }
# 511 "/usr/include/c++/4.8.2/ostream" 3templateinline basic_ostream<_CharT, _Traits>&operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s){if (!__s)__out.setstate(ios_base::badbit);else__ostream_insert(__out, __s,static_cast(_Traits::length(__s)));return __out;}templatebasic_ostream<_CharT, _Traits> &operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s);templateinline basic_ostream&operator<<(basic_ostream& __out, const char* __s){if (!__s)__out.setstate(ios_base::badbit);else__ostream_insert(__out, __s,static_cast(_Traits::length(__s)));return __out;}templateinline basic_ostream&operator<<(basic_ostream& __out, const signed char* __s){ return (__out << reinterpret_cast(__s)); }templateinline basic_ostream &operator<<(basic_ostream& __out, const unsigned char* __s){ return (__out << reinterpret_cast(__s)); }
# 562 "/usr/include/c++/4.8.2/ostream" 3templateinline basic_ostream<_CharT, _Traits>&endl(basic_ostream<_CharT, _Traits>& __os){ return flush(__os.put(__os.widen('\n'))); }
# 574 "/usr/include/c++/4.8.2/ostream" 3templateinline basic_ostream<_CharT, _Traits>&ends(basic_ostream<_CharT, _Traits>& __os){ return __os.put(_CharT()); }templateinline basic_ostream<_CharT, _Traits>&flush(basic_ostream<_CharT, _Traits>& __os){ return __os.flush(); }
# 609 "/usr/include/c++/4.8.2/ostream" 3}# 1 "/usr/include/c++/4.8.2/bits/ostream.tcc" 1 3
# 37 "/usr/include/c++/4.8.2/bits/ostream.tcc" 3# 38 "/usr/include/c++/4.8.2/bits/ostream.tcc" 3namespace std __attribute__ ((__visibility__ ("default")))
{templatebasic_ostream<_CharT, _Traits>::sentry::sentry(basic_ostream<_CharT, _Traits>& __os): _M_ok(false), _M_os(__os){if (__os.tie() && __os.good())__os.tie()->flush();if (__os.good())_M_ok = true;else__os.setstate(ios_base::failbit);}templatetemplatebasic_ostream<_CharT, _Traits>&basic_ostream<_CharT, _Traits>::_M_insert(_ValueT __v){sentry __cerb(*this);if (__cerb){ios_base::iostate __err = ios_base::goodbit;try{const __num_put_type& __np = __check_facet(this->_M_num_put);if (__np.put(*this, *this, this->fill(), __v).failed())__err |= ios_base::badbit;}catch(__cxxabiv1::__forced_unwind&){this->_M_setstate(ios_base::badbit);throw;}catch(...){ this->_M_setstate(ios_base::badbit); }if (__err)this->setstate(__err);}return *this;}templatebasic_ostream<_CharT, _Traits>&basic_ostream<_CharT, _Traits>::operator<<(short __n){const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield;if (__fmt == ios_base::oct || __fmt == ios_base::hex)return _M_insert(static_cast(static_cast(__n)));elsereturn _M_insert(static_cast(__n));}templatebasic_ostream<_CharT, _Traits>&basic_ostream<_CharT, _Traits>::operator<<(int __n){const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield;if (__fmt == ios_base::oct || __fmt == ios_base::hex)return _M_insert(static_cast(static_cast(__n)));elsereturn _M_insert(static_cast(__n));}templatebasic_ostream<_CharT, _Traits>&basic_ostream<_CharT, _Traits>::operator<<(__streambuf_type* __sbin){ios_base::iostate __err = ios_base::goodbit;sentry __cerb(*this);if (__cerb && __sbin){try{if (!__copy_streambufs(__sbin, this->rdbuf()))__err |= ios_base::failbit;}catch(__cxxabiv1::__forced_unwind&){this->_M_setstate(ios_base::badbit);throw;}catch(...){ this->_M_setstate(ios_base::failbit); }}else if (!__sbin)__err |= ios_base::badbit;if (__err)this->setstate(__err);return *this;}templatebasic_ostream<_CharT, _Traits>&basic_ostream<_CharT, _Traits>::put(char_type __c){sentry __cerb(*this);if (__cerb){ios_base::iostate __err = ios_base::goodbit;try{const int_type __put = this->rdbuf()->sputc(__c);if (traits_type::eq_int_type(__put, traits_type::eof()))__err |= ios_base::badbit;}catch(__cxxabiv1::__forced_unwind&){this->_M_setstate(ios_base::badbit);throw;}catch(...){ this->_M_setstate(ios_base::badbit); }if (__err)this->setstate(__err);}return *this;}templatebasic_ostream<_CharT, _Traits>&basic_ostream<_CharT, _Traits>::write(const _CharT* __s, streamsize __n){sentry __cerb(*this);if (__cerb){try{ _M_write(__s, __n); }catch(__cxxabiv1::__forced_unwind&){this->_M_setstate(ios_base::badbit);throw;}catch(...){ this->_M_setstate(ios_base::badbit); }}return *this;}templatebasic_ostream<_CharT, _Traits>&basic_ostream<_CharT, _Traits>::flush(){ios_base::iostate __err = ios_base::goodbit;try{if (this->rdbuf() && this->rdbuf()->pubsync() == -1)__err |= ios_base::badbit;}catch(__cxxabiv1::__forced_unwind&){this->_M_setstate(ios_base::badbit);throw;}catch(...){ this->_M_setstate(ios_base::badbit); }if (__err)this->setstate(__err);return *this;}templatetypename basic_ostream<_CharT, _Traits>::pos_typebasic_ostream<_CharT, _Traits>::tellp(){pos_type __ret = pos_type(-1);try{if (!this->fail())__ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out);}catch(__cxxabiv1::__forced_unwind&){this->_M_setstate(ios_base::badbit);throw;}catch(...){ this->_M_setstate(ios_base::badbit); }return __ret;}templatebasic_ostream<_CharT, _Traits>&basic_ostream<_CharT, _Traits>::seekp(pos_type __pos){ios_base::iostate __err = ios_base::goodbit;try{if (!this->fail()){const pos_type __p = this->rdbuf()->pubseekpos(__pos,ios_base::out);if (__p == pos_type(off_type(-1)))__err |= ios_base::failbit;}}catch(__cxxabiv1::__forced_unwind&){this->_M_setstate(ios_base::badbit);throw;}catch(...){ this->_M_setstate(ios_base::badbit); }if (__err)this->setstate(__err);return *this;}templatebasic_ostream<_CharT, _Traits>&basic_ostream<_CharT, _Traits>::seekp(off_type __off, ios_base::seekdir __dir){ios_base::iostate __err = ios_base::goodbit;try{if (!this->fail()){const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir,ios_base::out);if (__p == pos_type(off_type(-1)))__err |= ios_base::failbit;}}catch(__cxxabiv1::__forced_unwind&){this->_M_setstate(ios_base::badbit);throw;}catch(...){ this->_M_setstate(ios_base::badbit); }if (__err)this->setstate(__err);return *this;}templatebasic_ostream<_CharT, _Traits>&operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s){if (!__s)__out.setstate(ios_base::badbit);else{const size_t __clen = char_traits::length(__s);try{struct __ptr_guard{_CharT *__p;__ptr_guard (_CharT *__ip): __p(__ip) { }~__ptr_guard() { delete[] __p; }_CharT* __get() { return __p; }} __pg (new _CharT[__clen]);_CharT *__ws = __pg.__get();for (size_t __i = 0; __i < __clen; ++__i)__ws[__i] = __out.widen(__s[__i]);__ostream_insert(__out, __ws, __clen);}catch(__cxxabiv1::__forced_unwind&){__out._M_setstate(ios_base::badbit);throw;}catch(...){ __out._M_setstate(ios_base::badbit); }}return __out;}extern template class basic_ostream;extern template ostream& endl(ostream&);extern template ostream& ends(ostream&);extern template ostream& flush(ostream&);extern template ostream& operator<<(ostream&, char);extern template ostream& operator<<(ostream&, unsigned char);extern template ostream& operator<<(ostream&, signed char);extern template ostream& operator<<(ostream&, const char*);extern template ostream& operator<<(ostream&, const unsigned char*);extern template ostream& operator<<(ostream&, const signed char*);extern template ostream& ostream::_M_insert(long);extern template ostream& ostream::_M_insert(unsigned long);extern template ostream& ostream::_M_insert(bool);extern template ostream& ostream::_M_insert(long long);extern template ostream& ostream::_M_insert(unsigned long long);extern template ostream& ostream::_M_insert(double);extern template ostream& ostream::_M_insert(long double);extern template ostream& ostream::_M_insert(const void*);extern template class basic_ostream;extern template wostream& endl(wostream&);extern template wostream& ends(wostream&);extern template wostream& flush(wostream&);extern template wostream& operator<<(wostream&, wchar_t);extern template wostream& operator<<(wostream&, char);extern template wostream& operator<<(wostream&, const wchar_t*);extern template wostream& operator<<(wostream&, const char*);extern template wostream& wostream::_M_insert(long);extern template wostream& wostream::_M_insert(unsigned long);extern template wostream& wostream::_M_insert(bool);extern template wostream& wostream::_M_insert(long long);extern template wostream& wostream::_M_insert(unsigned long long);extern template wostream& wostream::_M_insert(double);extern template wostream& wostream::_M_insert(long double);extern template wostream& wostream::_M_insert(const void*);}
# 613 "/usr/include/c++/4.8.2/ostream" 2 3
# 40 "/usr/include/c++/4.8.2/iostream" 2 3
# 1 "/usr/include/c++/4.8.2/istream" 1 3
# 36 "/usr/include/c++/4.8.2/istream" 3# 37 "/usr/include/c++/4.8.2/istream" 3namespace std __attribute__ ((__visibility__ ("default")))
{# 57 "/usr/include/c++/4.8.2/istream" 3templateclass basic_istream : virtual public basic_ios<_CharT, _Traits>{public:typedef _CharT char_type;typedef typename _Traits::int_type int_type;typedef typename _Traits::pos_type pos_type;typedef typename _Traits::off_type off_type;typedef _Traits traits_type;typedef basic_streambuf<_CharT, _Traits> __streambuf_type;typedef basic_ios<_CharT, _Traits> __ios_type;typedef basic_istream<_CharT, _Traits> __istream_type;typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> >__num_get_type;typedef ctype<_CharT> __ctype_type;protected:streamsize _M_gcount;public:explicitbasic_istream(__streambuf_type* __sb): _M_gcount(streamsize(0)){ this->init(__sb); }virtual~basic_istream(){ _M_gcount = streamsize(0); }class sentry;friend class sentry;
# 119 "/usr/include/c++/4.8.2/istream" 3__istream_type&operator>>(__istream_type& (*__pf)(__istream_type&)){ return __pf(*this); }__istream_type&operator>>(__ios_type& (*__pf)(__ios_type&)){__pf(*this);return *this;}__istream_type&operator>>(ios_base& (*__pf)(ios_base&)){__pf(*this);return *this;}
# 167 "/usr/include/c++/4.8.2/istream" 3__istream_type&operator>>(bool& __n){ return _M_extract(__n); }__istream_type&operator>>(short& __n);__istream_type&operator>>(unsigned short& __n){ return _M_extract(__n); }__istream_type&operator>>(int& __n);__istream_type&operator>>(unsigned int& __n){ return _M_extract(__n); }__istream_type&operator>>(long& __n){ return _M_extract(__n); }__istream_type&operator>>(unsigned long& __n){ return _M_extract(__n); }__istream_type&operator>>(long long& __n){ return _M_extract(__n); }__istream_type&operator>>(unsigned long long& __n){ return _M_extract(__n); }
# 213 "/usr/include/c++/4.8.2/istream" 3__istream_type&operator>>(float& __f){ return _M_extract(__f); }__istream_type&operator>>(double& __f){ return _M_extract(__f); }__istream_type&operator>>(long double& __f){ return _M_extract(__f); }
# 234 "/usr/include/c++/4.8.2/istream" 3__istream_type&operator>>(void*& __p){ return _M_extract(__p); }
# 258 "/usr/include/c++/4.8.2/istream" 3__istream_type&operator>>(__streambuf_type* __sb);
# 268 "/usr/include/c++/4.8.2/istream" 3streamsizegcount() const{ return _M_gcount; }
# 301 "/usr/include/c++/4.8.2/istream" 3int_typeget();
# 315 "/usr/include/c++/4.8.2/istream" 3__istream_type&get(char_type& __c);
# 342 "/usr/include/c++/4.8.2/istream" 3__istream_type&get(char_type* __s, streamsize __n, char_type __delim);
# 353 "/usr/include/c++/4.8.2/istream" 3__istream_type&get(char_type* __s, streamsize __n){ return this->get(__s, __n, this->widen('\n')); }
# 376 "/usr/include/c++/4.8.2/istream" 3__istream_type&get(__streambuf_type& __sb, char_type __delim);
# 386 "/usr/include/c++/4.8.2/istream" 3__istream_type&get(__streambuf_type& __sb){ return this->get(__sb, this->widen('\n')); }
# 415 "/usr/include/c++/4.8.2/istream" 3__istream_type&getline(char_type* __s, streamsize __n, char_type __delim);
# 426 "/usr/include/c++/4.8.2/istream" 3__istream_type&getline(char_type* __s, streamsize __n){ return this->getline(__s, __n, this->widen('\n')); }
# 450 "/usr/include/c++/4.8.2/istream" 3__istream_type&ignore(streamsize __n, int_type __delim);__istream_type&ignore(streamsize __n);__istream_type&ignore();
# 467 "/usr/include/c++/4.8.2/istream" 3int_typepeek();
# 485 "/usr/include/c++/4.8.2/istream" 3__istream_type&read(char_type* __s, streamsize __n);
# 504 "/usr/include/c++/4.8.2/istream" 3streamsizereadsome(char_type* __s, streamsize __n);
# 521 "/usr/include/c++/4.8.2/istream" 3__istream_type&putback(char_type __c);
# 537 "/usr/include/c++/4.8.2/istream" 3__istream_type&unget();
# 555 "/usr/include/c++/4.8.2/istream" 3intsync();
# 570 "/usr/include/c++/4.8.2/istream" 3pos_typetellg();
# 585 "/usr/include/c++/4.8.2/istream" 3__istream_type&seekg(pos_type);
# 601 "/usr/include/c++/4.8.2/istream" 3__istream_type&seekg(off_type, ios_base::seekdir);protected:basic_istream(): _M_gcount(streamsize(0)){ this->init(0); }template__istream_type&_M_extract(_ValueT& __v);};template<>basic_istream&basic_istream