diff --git a/CMakeLists.txt b/CMakeLists.txt index 55fffcc9..9d2f58be 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,7 @@ cmake_minimum_required(VERSION 3.15...3.15) # Warning. This must be consistent with src/nomad_version.hpp set(NOMAD_VERSION_MAJOR 4) set(NOMAD_VERSION_MINOR 5) -set(NOMAD_VERSION_PATCH 0) +set(NOMAD_VERSION_PATCH 1) set(NOMAD_VERSION ${NOMAD_VERSION_MAJOR}.${NOMAD_VERSION_MINOR}.${NOMAD_VERSION_PATCH}) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index e5110471..32a298ba 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -15,3 +15,4 @@ Jan Provaznik Tangi Migot Edward Hallé-Hannan Samuel Mendoza + diff --git a/examples/advanced/library/PyNomad/simpleExample_WithSurrogateAndVNS.py b/examples/advanced/library/PyNomad/simpleExample_WithSurrogateAndVNS.py new file mode 100644 index 00000000..ebb36b70 --- /dev/null +++ b/examples/advanced/library/PyNomad/simpleExample_WithSurrogateAndVNS.py @@ -0,0 +1,39 @@ +import PyNomad +import sys + +# This example of blackbox function is for a single process +# The blackbox output must be put in the EvalPoint passed as argument +def bb(x): + try: + dim = x.size() + f = x.get_coord(4) + g1 = sum([(x.get_coord(i)-1)**2 for i in range(dim)])-25 + g2 = 25-sum([(x.get_coord(i)+1)**2 for i in range(dim)]) + rawBBO = str(f) + " " + str(g1) + " " + str(g2) + x.setBBO(rawBBO.encode("UTF-8")) + except: + print("Unexpected eval error", sys.exc_info()[0]) + return 0 + return 1 # 1: success 0: failed evaluation + +def surrogate(x): + try: + dim = x.size() + f = x.get_coord(4) + g1 = (x.get_coord(0)-1)**2 + (x.get_coord(1)-1)**2-15 + g2 = 15-(x.get_coord(0)+1)**2+(x.get_coord(1)+1)**2 + rawBBO = str(f) + " " + str(g1) + " " + str(g2) + x.setBBO(rawBBO.encode("UTF-8")) + except: + print("Unexpected eval error", sys.exc_info()[0]) + return 0 + return 1 # 1: success 0: failed evaluation + +X0 = [0, 0, 0, 0, 0] +params = ["DIMENSION 5","BB_OUTPUT_TYPE OBJ EB EB", "MAX_BB_EVAL 100", "EVAL_QUEUE_SORT SURROGATE", "X0 * 0" , "LOWER_BOUND * -6" , "DISPLAY_DEGREE 2", "DISPLAY_ALL_EVAL false", "DISPLAY_STATS BBE OBJ CONS_H", "VNS_MADS_SEARCH_WITH_SURROGATE true"] + +result = PyNomad.optimize(bb, X0, [] , [], params, surrogate) + +fmt = ["{} = {}".format(n,v) for (n,v) in result.items()] +output = "\n".join(fmt) +print("\nNOMAD results \n" + output + " \n") diff --git a/examples/basic/batch/surrogate_sort/param_VNSMadsSurrogateSearch.txt b/examples/basic/batch/surrogate_sort/param_VNSMadsSurrogateSearch.txt new file mode 100644 index 00000000..77153adf --- /dev/null +++ b/examples/basic/batch/surrogate_sort/param_VNSMadsSurrogateSearch.txt @@ -0,0 +1,39 @@ +# PROBLEM PARAMETERS +#################### + +# Number of variables +DIMENSION 2 + +# Black box +BB_OUTPUT_TYPE OBJ +BB_EXE ss_bb.exe + +# Surrogate +SURROGATE_EXE ss_sgte.exe +EVAL_SURROGATE_COST 3 + +# Starting point +X0 ( 5.0 5.0 ) + +# Bounds are useful to avoid extreme values +LOWER_BOUND * -20.0 +UPPER_BOUND * 20.0 + + +# ALGORITHM PARAMETERS +###################### +# The algorithm terminates after that number surrogate evaluations +MAX_BB_EVAL 400 + +VNS_MADS_SEARCH_WITH_SURROGATE yes +QUAD_MODEL_SEARCH yes +NM_SEARCH no + +# Use surrogate executable to sort points before evaluating them with the blackbox +EVAL_QUEUE_SORT SURROGATE + +# Display parameters +#################### +DISPLAY_ALL_EVAL true +DISPLAY_STATS SURROGATE_EVAL BBE ( SOL ) OBJ + diff --git a/ext/sgtelib/src/Kernel.cpp b/ext/sgtelib/src/Kernel.cpp index da80d94c..001e16d2 100644 --- a/ext/sgtelib/src/Kernel.cpp +++ b/ext/sgtelib/src/Kernel.cpp @@ -245,7 +245,7 @@ double SGTELIB::kernel ( const SGTELIB::kernel_t kt , case SGTELIB::KERNEL_D4: // Bi-quadratic { - double ksr = fabs(ks*r)*16.0/15.0; + double ksr = std::fabs(ks*r)*16.0/15.0; if (ksr<=1){ double d = (1-ksr*ksr); return d*d; @@ -255,7 +255,7 @@ double SGTELIB::kernel ( const SGTELIB::kernel_t kt , case SGTELIB::KERNEL_D5: // Tri-cubic { - double ksr = fabs(ks*r)*162.0/140.0; + double ksr = std::fabs(ks*r)*162.0/140.0; if (ksr<=1.0){ double d = (1-ksr*ksr*ksr); return d*d*d; @@ -268,7 +268,7 @@ double SGTELIB::kernel ( const SGTELIB::kernel_t kt , case SGTELIB::KERNEL_D7: // Epanechnikov { - double ksr = fabs(ks*r); + double ksr = std::fabs(ks*r); if (ksr<=3/4) return (1-(16/9)*ksr*ksr); } return 0.0; diff --git a/ext/sgtelib/src/Matrix.cpp b/ext/sgtelib/src/Matrix.cpp index 40cf7afe..a979dd4f 100644 --- a/ext/sgtelib/src/Matrix.cpp +++ b/ext/sgtelib/src/Matrix.cpp @@ -1202,7 +1202,7 @@ SGTELIB::Matrix SGTELIB::Matrix::hadamard_sqrt ( const SGTELIB::Matrix & A ) { int i,j; for ( i = 0 ; i < nb_rows ; ++i ) { for ( j = 0 ; j < nb_cols ; ++j ){ - C._X[i][j] = sqrt(fabs(A._X[i][j])); + C._X[i][j] = sqrt(std::fabs(A._X[i][j])); } } return C; @@ -1242,7 +1242,7 @@ void SGTELIB::Matrix::hadamard_sqrt ( void ) { int i,j; for ( i = 0 ; i < _nbRows ; ++i ) { for ( j = 0 ; j < _nbCols ; ++j ){ - _X[i][j] = sqrt(fabs(_X[i][j])); + _X[i][j] = sqrt(std::fabs(_X[i][j])); } } }// @@ -1793,11 +1793,11 @@ SGTELIB::Matrix SGTELIB::Matrix::col_norm ( const norm_t nt ) const { double v = 0; switch (nt){ case SGTELIB::NORM_0: - for (i=0;i<_nbRows;++i) v += double(fabs(_X[i][j])EPSILON)? 1:0 ; + v += (std::fabs(_X[i][j])>EPSILON)? 1:0 ; } } return v; @@ -2225,7 +2225,7 @@ SGTELIB::Matrix SGTELIB::Matrix::SVD_pseudo_inverse ( const double tol_rank ) co // Inverse diag terms of W. for (int i=0 ; i<_nbCols ; i++) { - if (fabs(W.get(i,i)) > tol_rank) + if (std::fabs(W.get(i,i)) > tol_rank) { W.set(i,i,1/W.get(i,i)); } @@ -2408,14 +2408,14 @@ bool SGTELIB::Matrix::SVD_decomposition ( std::string & error_msg , g = s = scale = 0.0; if ( i < nbRows ) { for ( k = i ; k < nbRows ; ++k ) - scale += fabs ( U[k][i] ); + scale += std::fabs ( U[k][i] ); if ( scale != 0.0 ) { for ( k = i ; k < nbRows ; ++k ) { U[k][i] /= scale; s += U[k][i] * U[k][i]; } f = U[i][i]; - g = ( f >= 0.0 ) ? -fabs(sqrt(s)) : fabs(sqrt(s)); + g = ( f >= 0.0 ) ? -std::fabs(sqrt(s)) : std::fabs(sqrt(s)); h = f * g - s; U[i][i] = f - g; for ( j = l ; j < nbCols ; ++j ) { @@ -2433,14 +2433,14 @@ bool SGTELIB::Matrix::SVD_decomposition ( std::string & error_msg , g = s = scale = 0.0; if ( i < nbRows && i != nm1 ) { for ( k = l ; k < nbCols ; ++k ) - scale += fabs ( U[i][k] ); + scale += std::fabs ( U[i][k] ); if ( scale != 0.0 ) { for ( k = l ; k < nbCols ; ++k ) { U[i][k] /= scale; s += U[i][k] * U[i][k]; } f = U[i][l]; - g = ( f >= 0.0 ) ? -fabs(sqrt(s)) : fabs(sqrt(s)); + g = ( f >= 0.0 ) ? -std::fabs(sqrt(s)) : std::fabs(sqrt(s)); h = f * g - s; U[i][l] = f - g; for ( k = l ; k < nbCols ; ++k ) @@ -2455,7 +2455,7 @@ bool SGTELIB::Matrix::SVD_decomposition ( std::string & error_msg , U[i][k] *= scale; } } - tmp = fabs ( W[i] ) + fabs ( rv1[i] ); + tmp = std::fabs ( W[i] ) + std::fabs ( rv1[i] ); norm = ( norm > tmp ) ? norm : tmp; } @@ -2510,11 +2510,11 @@ bool SGTELIB::Matrix::SVD_decomposition ( std::string & error_msg , flag = true; for ( l = k ; l >= 0 ; l-- ) { nm = l - 1; - if ( nm < 0 || fabs ( rv1[l]) + norm == norm ) { + if ( nm < 0 || std::fabs ( rv1[l]) + norm == norm ) { flag = false; break; } - if ( fabs ( W[nm] ) + norm == norm ) + if ( std::fabs ( W[nm] ) + norm == norm ) break; } if ( flag ) { @@ -2523,12 +2523,12 @@ bool SGTELIB::Matrix::SVD_decomposition ( std::string & error_msg , for ( i = l ; i <= k ; i++ ) { f = s * rv1[i]; rv1[i] = c * rv1[i]; - if ( fabs(f) + norm == norm ) + if ( std::fabs(f) + norm == norm ) break; g = W[i]; - absf = fabs(f); - absg = fabs(g); + absf = std::fabs(f); + absg = std::fabs(g); h = ( absf > absg ) ? absf * sqrt ( 1.0 + pow ( absg/absf , 2.0 ) ) : ( ( absg==0 ) ? 0.0 : absg * sqrt ( 1.0 + pow ( absf/absg , 2.0 ) ) ); @@ -2567,13 +2567,13 @@ bool SGTELIB::Matrix::SVD_decomposition ( std::string & error_msg , h = rv1[k]; f = ( (y-z) * (y+z) + (g-h) * (g+h) ) / ( 2.0 * h * y ); - absf = fabs(f); + absf = std::fabs(f); g = ( absf > 1.0 ) ? absf * sqrt ( 1.0 + pow ( 1.0/absf , 2.0 ) ) : sqrt ( 1.0 + pow ( absf , 2.0 ) ); f = ( (x-z) * (x+z) + - h * ( ( y / ( f + ( (f >= 0)? fabs(g) : -fabs(g) ) ) ) - h ) ) / x; + h * ( ( y / ( f + ( (f >= 0)? std::fabs(g) : -std::fabs(g) ) ) ) - h ) ) / x; c = s = 1.0; for ( j = l ; j <= nm ; ++j ) { @@ -2583,8 +2583,8 @@ bool SGTELIB::Matrix::SVD_decomposition ( std::string & error_msg , h = s * g; g = c * g; - absf = fabs(f); - absh = fabs(h); + absf = std::fabs(f); + absh = std::fabs(h); z = ( absf > absh ) ? absf * sqrt ( 1.0 + pow ( absh/absf , 2.0 ) ) : ( ( absh==0 ) ? 0.0 : absh * sqrt ( 1.0 + pow ( absf/absh , 2.0 ) ) ); @@ -2603,8 +2603,8 @@ bool SGTELIB::Matrix::SVD_decomposition ( std::string & error_msg , V[jj][i] = z * c - x * s; } - absf = fabs(f); - absh = fabs(h); + absf = std::fabs(f); + absh = std::fabs(h); z = ( absf > absh ) ? absf * sqrt ( 1.0 + pow ( absh/absf , 2.0 ) ) : ( ( absh==0 ) ? 0.0 : absh * sqrt ( 1.0 + pow ( absf/absh , 2.0 ) ) ); @@ -2666,7 +2666,7 @@ SGTELIB::Matrix SGTELIB::Matrix::null_space( const double rank_tol ) const int rank=0; for (int i=0; i < nvar; i++) { - if (fabs(W[i]) > rank_tol) + if (std::fabs(W[i]) > rank_tol) rank++; } @@ -2948,7 +2948,7 @@ SGTELIB::Matrix SGTELIB::Matrix::get_distances_norm1 ( const SGTELIB::Matrix & A // Distance between the point ia of the cache and the point ib of the matrix XXs v = 0; for (j=0 ; j < n ; j++){ - v += fabs(A._X[ia][j]-B._X[ib][j]); + v += std::fabs(A._X[ia][j]-B._X[ib][j]); } D._X[ia][ib] = v; } @@ -2977,7 +2977,7 @@ SGTELIB::Matrix SGTELIB::Matrix::get_distances_norminf ( const SGTELIB::Matrix & // Distance between the point ia of the cache and the point ib of the matrix XXs v = 0; for (j=0 ; j < n ; j++){ - v = std::max( v , fabs(A._X[ia][j]-B._X[ib][j]) ); + v = std::max( v , std::fabs(A._X[ia][j]-B._X[ib][j]) ); } D._X[ia][ib] = v; } @@ -3111,7 +3111,7 @@ SGTELIB::Matrix SGTELIB::Matrix::get_poll_directions ( const SGTELIB::Matrix& sc // Find max asb d = 0; - for (j=0 ; jget_metric(_param.get_metric_type(),j); // If the metric is close to metric_best - if ( fabs(metric-metric_best)get_metric(_param.get_metric_type(),j); // If the metric is close to metric_best - if ( fabs(metric-metric_best)get(i,j); s = std->get(i,j) - z*z; - std->set(i,j, sqrt(fabs(s)) ); + std->set(i,j, sqrt(std::fabs(s)) ); }// end loop i } } @@ -1047,7 +1047,7 @@ bool SGTELIB::Surrogate_Ensemble::check_weight_vector ( void ) const { if ( isnan(w) ) return true; } s = W.get_col(j).sum(); - if (fabs(s-1.0)>_kready*EPSILON) return true; + if (std::fabs(s-1.0)>_kready*EPSILON) return true; } } diff --git a/ext/sgtelib/src/Surrogate_Ensemble_Stat.cpp b/ext/sgtelib/src/Surrogate_Ensemble_Stat.cpp index 72645109..494e8975 100644 --- a/ext/sgtelib/src/Surrogate_Ensemble_Stat.cpp +++ b/ext/sgtelib/src/Surrogate_Ensemble_Stat.cpp @@ -511,7 +511,7 @@ void SGTELIB::Surrogate_Ensemble_Stat::compute_W_by_select ( void ) { if (is_ready(k)){ metric = _surrogates.at(k)->get_metric(_param.get_metric_type(),j); // If the metric is close to metric_best - if ( fabs(metric-metric_best)get_metric(_param.get_metric_type(),j); // If the metric is close to metric_best - if ( fabs(metric-metric_best)_kready*EPSILON) return true; + if (std::fabs(s-1.0)>_kready*EPSILON) return true; } } diff --git a/ext/sgtelib/src/Surrogate_Kriging.cpp b/ext/sgtelib/src/Surrogate_Kriging.cpp index 4e23c2c7..d2060356 100644 --- a/ext/sgtelib/src/Surrogate_Kriging.cpp +++ b/ext/sgtelib/src/Surrogate_Kriging.cpp @@ -223,13 +223,13 @@ void SGTELIB::Surrogate_Kriging::predict_private (const SGTELIB::Matrix & XXs, for (i=0 ; iset(i,j,v*_var[j]); } diff --git a/ext/sgtelib/src/Surrogate_PRS.cpp b/ext/sgtelib/src/Surrogate_PRS.cpp index 22123f6a..eb3d7a75 100644 --- a/ext/sgtelib/src/Surrogate_PRS.cpp +++ b/ext/sgtelib/src/Surrogate_PRS.cpp @@ -1005,7 +1005,7 @@ void SGTELIB::Surrogate_PRS::compute_multiplier( int rank = 0; for (int i = 0; i < ncon; i++) { - if (fabs(W[i]) > rank_tol) + if (std::fabs(W[i]) > rank_tol) { rank++; } diff --git a/ext/sgtelib/src/Surrogate_Utils b/ext/sgtelib/src/Surrogate_Utils deleted file mode 100644 index 55f6d5fb..00000000 --- a/ext/sgtelib/src/Surrogate_Utils +++ /dev/null @@ -1,63000 +0,0 @@ -# 1 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" -# 1 "/home/saltrena/nomad.4.0.0//" -# 1 "" -# 1 "" -# 1 "/usr/include/stdc-predef.h" 1 3 4 -# 1 "" 2 -# 1 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" -# 26 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" -# 1 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.hpp" 1 -# 29 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.hpp" -# 1 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Defines.hpp" 1 -# 29 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Defines.hpp" -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iostream" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iostream" 3 - -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iostream" 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++config.h" 1 3 -# 258 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++config.h" 3 - -# 258 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++config.h" 3 -namespace std -{ - typedef long unsigned int size_t; - typedef long int ptrdiff_t; - - - typedef decltype(nullptr) nullptr_t; - -} -# 280 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++config.h" 3 -namespace std -{ - inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } -} -namespace __gnu_cxx -{ - inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } -} -# 518 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++config.h" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/os_defines.h" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/os_defines.h" 3 -# 1 "/usr/include/features.h" 1 3 4 -# 375 "/usr/include/features.h" 3 4 -# 1 "/usr/include/sys/cdefs.h" 1 3 4 -# 392 "/usr/include/sys/cdefs.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 393 "/usr/include/sys/cdefs.h" 2 3 4 -# 376 "/usr/include/features.h" 2 3 4 -# 399 "/usr/include/features.h" 3 4 -# 1 "/usr/include/gnu/stubs.h" 1 3 4 -# 10 "/usr/include/gnu/stubs.h" 3 4 -# 1 "/usr/include/gnu/stubs-64.h" 1 3 4 -# 11 "/usr/include/gnu/stubs.h" 2 3 4 -# 400 "/usr/include/features.h" 2 3 4 -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/os_defines.h" 2 3 -# 519 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++config.h" 2 3 - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/cpu_defines.h" 1 3 -# 522 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++config.h" 2 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iostream" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ios" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ios" 3 - -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ios" 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iosfwd" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iosfwd" 3 - -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iosfwd" 3 - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stringfwd.h" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stringfwd.h" 3 - -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stringfwd.h" 3 - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/memoryfwd.h" 1 3 -# 46 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/memoryfwd.h" 3 - -# 47 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/memoryfwd.h" 3 - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 63 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/memoryfwd.h" 3 - template - class allocator; - - - template<> - class allocator; - - - - - template - struct uses_allocator; - - - - - -} -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stringfwd.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - - - template - struct char_traits; - - template<> struct char_traits; - - - template<> struct char_traits; - - - - - - - - template<> struct char_traits; - template<> struct char_traits; - - -namespace __cxx11 { - - template, - typename _Alloc = allocator<_CharT> > - class basic_string; - -} - - - typedef basic_string string; - - - - typedef basic_string wstring; -# 93 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stringfwd.h" 3 - typedef basic_string u16string; - - - typedef basic_string u32string; - - - - - -} -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iosfwd" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/postypes.h" 1 3 -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/postypes.h" 3 - -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/postypes.h" 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 3 - - - - -# 1 "/usr/include/wchar.h" 1 3 4 -# 36 "/usr/include/wchar.h" 3 4 -# 1 "/usr/include/stdio.h" 1 3 4 -# 44 "/usr/include/stdio.h" 3 4 -struct _IO_FILE; - - - -typedef struct _IO_FILE FILE; - - - - - -# 64 "/usr/include/stdio.h" 3 4 -typedef struct _IO_FILE __FILE; -# 37 "/usr/include/wchar.h" 2 3 4 - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stdarg.h" 1 3 4 -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stdarg.h" 3 4 -typedef __builtin_va_list __gnuc_va_list; -# 40 "/usr/include/wchar.h" 2 3 4 - -# 1 "/usr/include/bits/wchar.h" 1 3 4 -# 22 "/usr/include/bits/wchar.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 23 "/usr/include/bits/wchar.h" 2 3 4 -# 42 "/usr/include/wchar.h" 2 3 4 -# 51 "/usr/include/wchar.h" 3 4 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 1 3 4 -# 209 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 3 4 -typedef long unsigned int size_t; -# 350 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 3 4 -typedef unsigned int wint_t; -# 52 "/usr/include/wchar.h" 2 3 4 -# 82 "/usr/include/wchar.h" 3 4 -typedef struct -{ - int __count; - union - { - - unsigned int __wch; - - - - char __wchb[4]; - } __value; -} __mbstate_t; -# 104 "/usr/include/wchar.h" 3 4 - - -typedef __mbstate_t mbstate_t; - - - - - - -# 132 "/usr/include/wchar.h" 3 4 -extern "C" { - - - - -struct tm; - - - - - - - - - -extern wchar_t *wcscpy (wchar_t *__restrict __dest, - const wchar_t *__restrict __src) throw (); - -extern wchar_t *wcsncpy (wchar_t *__restrict __dest, - const wchar_t *__restrict __src, size_t __n) - throw (); - - -extern wchar_t *wcscat (wchar_t *__restrict __dest, - const wchar_t *__restrict __src) throw (); - -extern wchar_t *wcsncat (wchar_t *__restrict __dest, - const wchar_t *__restrict __src, size_t __n) - throw (); - - -extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2) - throw () __attribute__ ((__pure__)); - -extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) - throw () __attribute__ ((__pure__)); - - - - -extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) throw (); - - -extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2, - size_t __n) throw (); - - - -# 1 "/usr/include/xlocale.h" 1 3 4 -# 27 "/usr/include/xlocale.h" 3 4 -typedef struct __locale_struct -{ - - struct __locale_data *__locales[13]; - - - const unsigned short int *__ctype_b; - const int *__ctype_tolower; - const int *__ctype_toupper; - - - const char *__names[13]; -} *__locale_t; - - -typedef __locale_t locale_t; -# 181 "/usr/include/wchar.h" 2 3 4 - -extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2, - __locale_t __loc) throw (); - -extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2, - size_t __n, __locale_t __loc) throw (); - - - - - -extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) throw (); - - - -extern size_t wcsxfrm (wchar_t *__restrict __s1, - const wchar_t *__restrict __s2, size_t __n) throw (); - - - - - - - - -extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2, - __locale_t __loc) throw (); - - - - -extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2, - size_t __n, __locale_t __loc) throw (); - - -extern wchar_t *wcsdup (const wchar_t *__s) throw () __attribute__ ((__malloc__)); - - - - - -extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) - throw () __asm ("wcschr") __attribute__ ((__pure__)); -extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc) - throw () __asm ("wcschr") __attribute__ ((__pure__)); - - - - - - -extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) - throw () __asm ("wcsrchr") __attribute__ ((__pure__)); -extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc) - throw () __asm ("wcsrchr") __attribute__ ((__pure__)); - - - - - - - - - -extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc) - throw () __attribute__ ((__pure__)); - - - - - -extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject) - throw () __attribute__ ((__pure__)); - - -extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept) - throw () __attribute__ ((__pure__)); - - -extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept) - throw () __asm ("wcspbrk") __attribute__ ((__pure__)); -extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs, - const wchar_t *__accept) - throw () __asm ("wcspbrk") __attribute__ ((__pure__)); - - - - - - -extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle) - throw () __asm ("wcsstr") __attribute__ ((__pure__)); -extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack, - const wchar_t *__needle) - throw () __asm ("wcsstr") __attribute__ ((__pure__)); - - - - - - -extern wchar_t *wcstok (wchar_t *__restrict __s, - const wchar_t *__restrict __delim, - wchar_t **__restrict __ptr) throw (); - - -extern size_t wcslen (const wchar_t *__s) throw () __attribute__ ((__pure__)); - - - - - -extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle) - throw () __asm ("wcswcs") __attribute__ ((__pure__)); -extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack, - const wchar_t *__needle) - throw () __asm ("wcswcs") __attribute__ ((__pure__)); -# 306 "/usr/include/wchar.h" 3 4 -extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen) - throw () __attribute__ ((__pure__)); - - - - - - -extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) - throw () __asm ("wmemchr") __attribute__ ((__pure__)); -extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, - size_t __n) - throw () __asm ("wmemchr") __attribute__ ((__pure__)); - - - - - - -extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) - throw () __attribute__ ((__pure__)); - - -extern wchar_t *wmemcpy (wchar_t *__restrict __s1, - const wchar_t *__restrict __s2, size_t __n) throw (); - - - -extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) - throw (); - - -extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); - - - - - -extern wchar_t *wmempcpy (wchar_t *__restrict __s1, - const wchar_t *__restrict __s2, size_t __n) - throw (); - - - - - - -extern wint_t btowc (int __c) throw (); - - - -extern int wctob (wint_t __c) throw (); - - - -extern int mbsinit (const mbstate_t *__ps) throw () __attribute__ ((__pure__)); - - - -extern size_t mbrtowc (wchar_t *__restrict __pwc, - const char *__restrict __s, size_t __n, - mbstate_t *__restrict __p) throw (); - - -extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, - mbstate_t *__restrict __ps) throw (); - - -extern size_t __mbrlen (const char *__restrict __s, size_t __n, - mbstate_t *__restrict __ps) throw (); -extern size_t mbrlen (const char *__restrict __s, size_t __n, - mbstate_t *__restrict __ps) throw (); - -# 405 "/usr/include/wchar.h" 3 4 - - - -extern size_t mbsrtowcs (wchar_t *__restrict __dst, - const char **__restrict __src, size_t __len, - mbstate_t *__restrict __ps) throw (); - - - -extern size_t wcsrtombs (char *__restrict __dst, - const wchar_t **__restrict __src, size_t __len, - mbstate_t *__restrict __ps) throw (); - - - - - - -extern size_t mbsnrtowcs (wchar_t *__restrict __dst, - const char **__restrict __src, size_t __nmc, - size_t __len, mbstate_t *__restrict __ps) throw (); - - - -extern size_t wcsnrtombs (char *__restrict __dst, - const wchar_t **__restrict __src, - size_t __nwc, size_t __len, - mbstate_t *__restrict __ps) throw (); - - - - - - -extern int wcwidth (wchar_t __c) throw (); - - - -extern int wcswidth (const wchar_t *__s, size_t __n) throw (); - - - - - - -extern double wcstod (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr) throw (); - - - - - -extern float wcstof (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr) throw (); -extern long double wcstold (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr) throw (); - - - - - - - -extern long int wcstol (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, int __base) throw (); - - - -extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, int __base) - throw (); - - - - - - -__extension__ -extern long long int wcstoll (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, int __base) - throw (); - - - -__extension__ -extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, - int __base) throw (); - - - - - - -__extension__ -extern long long int wcstoq (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, int __base) - throw (); - - - -__extension__ -extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, - int __base) throw (); -# 530 "/usr/include/wchar.h" 3 4 -extern long int wcstol_l (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, int __base, - __locale_t __loc) throw (); - -extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, - int __base, __locale_t __loc) throw (); - -__extension__ -extern long long int wcstoll_l (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, - int __base, __locale_t __loc) throw (); - -__extension__ -extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, - int __base, __locale_t __loc) - throw (); - -extern double wcstod_l (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, __locale_t __loc) - throw (); - -extern float wcstof_l (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, __locale_t __loc) - throw (); - -extern long double wcstold_l (const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, - __locale_t __loc) throw (); - - - - - - -extern wchar_t *wcpcpy (wchar_t *__restrict __dest, - const wchar_t *__restrict __src) throw (); - - - -extern wchar_t *wcpncpy (wchar_t *__restrict __dest, - const wchar_t *__restrict __src, size_t __n) - throw (); - - - - - - -extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw (); - - - - - - -extern int fwide (__FILE *__fp, int __mode) throw (); - - - - - - -extern int fwprintf (__FILE *__restrict __stream, - const wchar_t *__restrict __format, ...) - ; - - - - -extern int wprintf (const wchar_t *__restrict __format, ...) - ; - -extern int swprintf (wchar_t *__restrict __s, size_t __n, - const wchar_t *__restrict __format, ...) - throw () ; - - - - - -extern int vfwprintf (__FILE *__restrict __s, - const wchar_t *__restrict __format, - __gnuc_va_list __arg) - ; - - - - -extern int vwprintf (const wchar_t *__restrict __format, - __gnuc_va_list __arg) - ; - - -extern int vswprintf (wchar_t *__restrict __s, size_t __n, - const wchar_t *__restrict __format, - __gnuc_va_list __arg) - throw () ; - - - - - - -extern int fwscanf (__FILE *__restrict __stream, - const wchar_t *__restrict __format, ...) - ; - - - - -extern int wscanf (const wchar_t *__restrict __format, ...) - ; - -extern int swscanf (const wchar_t *__restrict __s, - const wchar_t *__restrict __format, ...) - throw () ; -# 680 "/usr/include/wchar.h" 3 4 - - - - - - - - - -extern int vfwscanf (__FILE *__restrict __s, - const wchar_t *__restrict __format, - __gnuc_va_list __arg) - ; - - - - -extern int vwscanf (const wchar_t *__restrict __format, - __gnuc_va_list __arg) - ; - -extern int vswscanf (const wchar_t *__restrict __s, - const wchar_t *__restrict __format, - __gnuc_va_list __arg) - throw () ; -# 736 "/usr/include/wchar.h" 3 4 - - - - - - - - - -extern wint_t fgetwc (__FILE *__stream); -extern wint_t getwc (__FILE *__stream); - - - - - -extern wint_t getwchar (void); - - - - - - -extern wint_t fputwc (wchar_t __wc, __FILE *__stream); -extern wint_t putwc (wchar_t __wc, __FILE *__stream); - - - - - -extern wint_t putwchar (wchar_t __wc); - - - - - - - -extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, - __FILE *__restrict __stream); - - - - - -extern int fputws (const wchar_t *__restrict __ws, - __FILE *__restrict __stream); - - - - - - -extern wint_t ungetwc (wint_t __wc, __FILE *__stream); - -# 801 "/usr/include/wchar.h" 3 4 -extern wint_t getwc_unlocked (__FILE *__stream); -extern wint_t getwchar_unlocked (void); - - - - - - - -extern wint_t fgetwc_unlocked (__FILE *__stream); - - - - - - - -extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); -# 827 "/usr/include/wchar.h" 3 4 -extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); -extern wint_t putwchar_unlocked (wchar_t __wc); -# 837 "/usr/include/wchar.h" 3 4 -extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, - __FILE *__restrict __stream); - - - - - - - -extern int fputws_unlocked (const wchar_t *__restrict __ws, - __FILE *__restrict __stream); - - - - - - - -extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, - const wchar_t *__restrict __format, - const struct tm *__restrict __tp) throw (); - - - - - - - -extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, - const wchar_t *__restrict __format, - const struct tm *__restrict __tp, - __locale_t __loc) throw (); -# 891 "/usr/include/wchar.h" 3 4 -} -# 45 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 2 3 -# 62 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 3 -namespace std -{ - using ::mbstate_t; -} -# 135 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 3 -extern "C++" -{ -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - using ::wint_t; - - using ::btowc; - using ::fgetwc; - using ::fgetws; - using ::fputwc; - using ::fputws; - using ::fwide; - using ::fwprintf; - using ::fwscanf; - using ::getwc; - using ::getwchar; - using ::mbrlen; - using ::mbrtowc; - using ::mbsinit; - using ::mbsrtowcs; - using ::putwc; - using ::putwchar; - - using ::swprintf; - - using ::swscanf; - using ::ungetwc; - using ::vfwprintf; - - using ::vfwscanf; - - - using ::vswprintf; - - - using ::vswscanf; - - using ::vwprintf; - - using ::vwscanf; - - using ::wcrtomb; - using ::wcscat; - using ::wcscmp; - using ::wcscoll; - using ::wcscpy; - using ::wcscspn; - using ::wcsftime; - using ::wcslen; - using ::wcsncat; - using ::wcsncmp; - using ::wcsncpy; - using ::wcsrtombs; - using ::wcsspn; - using ::wcstod; - - using ::wcstof; - - using ::wcstok; - using ::wcstol; - using ::wcstoul; - using ::wcsxfrm; - using ::wctob; - using ::wmemcmp; - using ::wmemcpy; - using ::wmemmove; - using ::wmemset; - using ::wprintf; - using ::wscanf; - using ::wcschr; - using ::wcspbrk; - using ::wcsrchr; - using ::wcsstr; - using ::wmemchr; -# 234 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 3 - -} -} - - - - - - - -namespace __gnu_cxx -{ - - - - - - using ::wcstold; -# 260 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 3 - using ::wcstoll; - using ::wcstoull; - -} - -namespace std -{ - using ::__gnu_cxx::wcstold; - using ::__gnu_cxx::wcstoll; - using ::__gnu_cxx::wcstoull; -} -# 280 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 3 -namespace std -{ - - using std::wcstof; - - - using std::vfwscanf; - - - using std::vswscanf; - - - using std::vwscanf; - - - - using std::wcstold; - using std::wcstoll; - using std::wcstoull; - -} -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/postypes.h" 2 3 -# 68 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/postypes.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 88 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/postypes.h" 3 - typedef long streamoff; -# 98 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/postypes.h" 3 - typedef ptrdiff_t streamsize; -# 111 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/postypes.h" 3 - template - class fpos - { - private: - streamoff _M_off; - _StateT _M_state; - - public: - - - - - fpos() - : _M_off(0), _M_state() { } -# 133 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/postypes.h" 3 - fpos(streamoff __off) - : _M_off(__off), _M_state() { } - - - fpos(const fpos&) = default; - fpos& operator=(const fpos&) = default; - ~fpos() = default; - - - - operator streamoff() const { return _M_off; } - - - void - state(_StateT __st) - { _M_state = __st; } - - - _StateT - state() const - { return _M_state; } - - - - - - fpos& - operator+=(streamoff __off) - { - _M_off += __off; - return *this; - } - - - - - - fpos& - operator-=(streamoff __off) - { - _M_off -= __off; - return *this; - } - - - - - - - - fpos - operator+(streamoff __off) const - { - fpos __pos(*this); - __pos += __off; - return __pos; - } - - - - - - - - fpos - operator-(streamoff __off) const - { - fpos __pos(*this); - __pos -= __off; - return __pos; - } - - - - - - - streamoff - operator-(const fpos& __other) const - { return _M_off - __other._M_off; } - }; - - - - - - - template - inline bool - operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) - { return streamoff(__lhs) == streamoff(__rhs); } - - template - inline bool - operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) - { return streamoff(__lhs) != streamoff(__rhs); } - - - - - - typedef fpos streampos; - - typedef fpos wstreampos; -# 245 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/postypes.h" 3 - typedef fpos u16streampos; - - typedef fpos u32streampos; - - - -} -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iosfwd" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 74 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iosfwd" 3 - class ios_base; - - template > - class basic_ios; - - template > - class basic_streambuf; - - template > - class basic_istream; - - template > - class basic_ostream; - - template > - class basic_iostream; - - -namespace __cxx11 { - - template, - typename _Alloc = allocator<_CharT> > - class basic_stringbuf; - - template, - typename _Alloc = allocator<_CharT> > - class basic_istringstream; - - template, - typename _Alloc = allocator<_CharT> > - class basic_ostringstream; - - template, - typename _Alloc = allocator<_CharT> > - class basic_stringstream; - -} - - template > - class basic_filebuf; - - template > - class basic_ifstream; - - template > - class basic_ofstream; - - template > - class basic_fstream; - - template > - class istreambuf_iterator; - - template > - class ostreambuf_iterator; - - - - typedef basic_ios ios; - - - typedef basic_streambuf streambuf; - - - typedef basic_istream istream; - - - typedef basic_ostream ostream; - - - typedef basic_iostream iostream; - - - typedef basic_stringbuf stringbuf; - - - typedef basic_istringstream istringstream; - - - typedef basic_ostringstream ostringstream; - - - typedef basic_stringstream stringstream; - - - typedef basic_filebuf filebuf; - - - typedef basic_ifstream ifstream; - - - typedef basic_ofstream ofstream; - - - typedef basic_fstream fstream; - - - - typedef basic_ios wios; - - - typedef basic_streambuf wstreambuf; - - - typedef basic_istream wistream; - - - typedef basic_ostream wostream; - - - typedef basic_iostream wiostream; - - - typedef basic_stringbuf wstringbuf; - - - typedef basic_istringstream wistringstream; - - - typedef basic_ostringstream wostringstream; - - - typedef basic_stringstream wstringstream; - - - typedef basic_filebuf wfilebuf; - - - typedef basic_ifstream wifstream; - - - typedef basic_ofstream wofstream; - - - typedef basic_fstream wfstream; - - - - -} -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ios" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/exception" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/exception" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/exception" 3 - -#pragma GCC visibility push(default) - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/exception.h" 1 3 -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/exception.h" 3 - -# 35 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/exception.h" 3 - -#pragma GCC visibility push(default) - - - -extern "C++" { - -namespace std -{ -# 60 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/exception.h" 3 - class exception - { - public: - exception() noexcept { } - virtual ~exception() noexcept; - - exception(const exception&) = default; - exception& operator=(const exception&) = default; - exception(exception&&) = default; - exception& operator=(exception&&) = default; - - - - - virtual const char* - what() const noexcept; - }; - -} - -} - -#pragma GCC visibility pop -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/exception" 2 3 - -extern "C++" { - -namespace std -{ - - - - - - - class bad_exception : public exception - { - public: - bad_exception() noexcept { } - - - - virtual ~bad_exception() noexcept; - - - virtual const char* - what() const noexcept; - }; - - - typedef void (*terminate_handler) (); - - - typedef void (*unexpected_handler) (); - - - terminate_handler set_terminate(terminate_handler) noexcept; - - - - terminate_handler get_terminate() noexcept; - - - - - void terminate() noexcept __attribute__ ((__noreturn__)); - - - unexpected_handler set_unexpected(unexpected_handler) noexcept; - - - - unexpected_handler get_unexpected() noexcept; - - - - - void unexpected() __attribute__ ((__noreturn__)); -# 105 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/exception" 3 - - bool uncaught_exception() noexcept __attribute__ ((__pure__)); - - - - - int uncaught_exceptions() noexcept __attribute__ ((__pure__)); - - - -} - -namespace __gnu_cxx -{ - -# 137 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/exception" 3 - void __verbose_terminate_handler(); - - -} - -} - -#pragma GCC visibility pop - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/exception_ptr.h" 1 3 -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/exception_ptr.h" 3 -#pragma GCC visibility push(default) - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/exception_defines.h" 1 3 -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/exception_ptr.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cxxabi_init_exception.h" 1 3 -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cxxabi_init_exception.h" 3 - -# 35 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cxxabi_init_exception.h" 3 - -#pragma GCC visibility push(default) - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 1 3 4 -# 143 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 3 4 -typedef long int ptrdiff_t; -# 415 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 3 4 -typedef struct { - long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); - long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); -# 426 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 3 4 -} max_align_t; - - - - - - - typedef decltype(nullptr) nullptr_t; -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cxxabi_init_exception.h" 2 3 -# 50 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cxxabi_init_exception.h" 3 -namespace std -{ - class type_info; -} - -namespace __cxxabiv1 -{ - struct __cxa_refcounted_exception; - - extern "C" - { - - void* - __cxa_allocate_exception(size_t) noexcept; - - void - __cxa_free_exception(void*) noexcept; - - - __cxa_refcounted_exception* - __cxa_init_primary_exception(void *object, std::type_info *tinfo, - void ( *dest) (void *)) noexcept; - - } -} - - - -#pragma GCC visibility pop -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/exception_ptr.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/typeinfo" 1 3 -# 32 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/typeinfo" 3 - -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/typeinfo" 3 - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/hash_bytes.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/hash_bytes.h" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/hash_bytes.h" 3 - - - -namespace std -{ - - - - - - - - size_t - _Hash_bytes(const void* __ptr, size_t __len, size_t __seed); - - - - - - size_t - _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed); - - -} -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/typeinfo" 2 3 - - -#pragma GCC visibility push(default) - -extern "C++" { - -namespace __cxxabiv1 -{ - class __class_type_info; -} -# 80 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/typeinfo" 3 -namespace std -{ - - - - - - - class type_info - { - public: - - - - - virtual ~type_info(); - - - - const char* name() const noexcept - { return __name[0] == '*' ? __name + 1 : __name; } -# 115 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/typeinfo" 3 - bool before(const type_info& __arg) const noexcept - { return (__name[0] == '*' && __arg.__name[0] == '*') - ? __name < __arg.__name - : __builtin_strcmp (__name, __arg.__name) < 0; } - - bool operator==(const type_info& __arg) const noexcept - { - return ((__name == __arg.__name) - || (__name[0] != '*' && - __builtin_strcmp (__name, __arg.__name) == 0)); - } -# 138 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/typeinfo" 3 - bool operator!=(const type_info& __arg) const noexcept - { return !operator==(__arg); } - - - - size_t hash_code() const noexcept - { - - return _Hash_bytes(name(), __builtin_strlen(name()), - static_cast(0xc70f6907UL)); - - - - } - - - - virtual bool __is_pointer_p() const; - - - virtual bool __is_function_p() const; - - - - - - - - virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, - unsigned __outer) const; - - - virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, - void **__obj_ptr) const; - - protected: - const char *__name; - - explicit type_info(const char *__n): __name(__n) { } - - private: - - type_info& operator=(const type_info&); - type_info(const type_info&); - }; - - - - - - - - class bad_cast : public exception - { - public: - bad_cast() noexcept { } - - - - virtual ~bad_cast() noexcept; - - - virtual const char* what() const noexcept; - }; - - - - - - class bad_typeid : public exception - { - public: - bad_typeid () noexcept { } - - - - virtual ~bad_typeid() noexcept; - - - virtual const char* what() const noexcept; - }; -} - -} - -#pragma GCC visibility pop -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/exception_ptr.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/new" 1 3 -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/new" 3 - -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/new" 3 - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/exception" 1 3 -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/new" 2 3 - -#pragma GCC visibility push(default) - -extern "C++" { - -namespace std -{ - - - - - - - class bad_alloc : public exception - { - public: - bad_alloc() throw() { } - - - bad_alloc(const bad_alloc&) = default; - bad_alloc& operator=(const bad_alloc&) = default; - - - - - virtual ~bad_alloc() throw(); - - - virtual const char* what() const throw(); - }; - - - class bad_array_new_length : public bad_alloc - { - public: - bad_array_new_length() throw() { } - - - - virtual ~bad_array_new_length() throw(); - - - virtual const char* what() const throw(); - }; - - - - - - - struct nothrow_t - { - - explicit nothrow_t() = default; - - }; - - extern const nothrow_t nothrow; - - - - typedef void (*new_handler)(); - - - - new_handler set_new_handler(new_handler) throw(); - - - - new_handler get_new_handler() noexcept; - -} -# 126 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/new" 3 - void* operator new(std::size_t) - __attribute__((__externally_visible__)); - void* operator new[](std::size_t) - __attribute__((__externally_visible__)); -void operator delete(void*) noexcept - __attribute__((__externally_visible__)); -void operator delete[](void*) noexcept - __attribute__((__externally_visible__)); - -void operator delete(void*, std::size_t) noexcept - __attribute__((__externally_visible__)); -void operator delete[](void*, std::size_t) noexcept - __attribute__((__externally_visible__)); - - void* operator new(std::size_t, const std::nothrow_t&) noexcept - __attribute__((__externally_visible__, __malloc__)); - void* operator new[](std::size_t, const std::nothrow_t&) noexcept - __attribute__((__externally_visible__, __malloc__)); -void operator delete(void*, const std::nothrow_t&) noexcept - __attribute__((__externally_visible__)); -void operator delete[](void*, const std::nothrow_t&) noexcept - __attribute__((__externally_visible__)); -# 174 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/new" 3 - inline void* operator new(std::size_t, void* __p) noexcept -{ return __p; } - inline void* operator new[](std::size_t, void* __p) noexcept -{ return __p; } - - -inline void operator delete (void*, void*) noexcept { } -inline void operator delete[](void*, void*) noexcept { } - -} -# 230 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/new" 3 -#pragma GCC visibility pop -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/exception_ptr.h" 2 3 - -extern "C++" { - -namespace std -{ - class type_info; - - - - - - - namespace __exception_ptr - { - class exception_ptr; - } - - using __exception_ptr::exception_ptr; - - - - - - exception_ptr current_exception() noexcept; - - template - exception_ptr make_exception_ptr(_Ex) noexcept; - - - void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); - - namespace __exception_ptr - { - using std::rethrow_exception; - - - - - - class exception_ptr - { - void* _M_exception_object; - - explicit exception_ptr(void* __e) noexcept; - - void _M_addref() noexcept; - void _M_release() noexcept; - - void *_M_get() const noexcept __attribute__ ((__pure__)); - - friend exception_ptr std::current_exception() noexcept; - friend void std::rethrow_exception(exception_ptr); - template - friend exception_ptr std::make_exception_ptr(_Ex) noexcept; - - public: - exception_ptr() noexcept; - - exception_ptr(const exception_ptr&) noexcept; - - - exception_ptr(nullptr_t) noexcept - : _M_exception_object(0) - { } - - exception_ptr(exception_ptr&& __o) noexcept - : _M_exception_object(__o._M_exception_object) - { __o._M_exception_object = 0; } -# 118 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/exception_ptr.h" 3 - exception_ptr& - operator=(const exception_ptr&) noexcept; - - - exception_ptr& - operator=(exception_ptr&& __o) noexcept - { - exception_ptr(static_cast(__o)).swap(*this); - return *this; - } - - - ~exception_ptr() noexcept; - - void - swap(exception_ptr&) noexcept; -# 145 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/exception_ptr.h" 3 - explicit operator bool() const - { return _M_exception_object; } - - - friend bool - operator==(const exception_ptr&, const exception_ptr&) - noexcept __attribute__ ((__pure__)); - - const class std::type_info* - __cxa_exception_type() const noexcept - __attribute__ ((__pure__)); - }; - - - - bool - operator==(const exception_ptr&, const exception_ptr&) - noexcept __attribute__ ((__pure__)); - - bool - operator!=(const exception_ptr&, const exception_ptr&) - noexcept __attribute__ ((__pure__)); - - inline void - swap(exception_ptr& __lhs, exception_ptr& __rhs) - { __lhs.swap(__rhs); } - - - - - template - inline void - __dest_thunk(void* __x) - { static_cast<_Ex*>(__x)->~_Ex(); } - - - } - - - template - exception_ptr - make_exception_ptr(_Ex __ex) noexcept - { - - void* __e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex)); - (void) __cxxabiv1::__cxa_init_primary_exception( - __e, const_cast(&typeid(__ex)), - __exception_ptr::__dest_thunk<_Ex>); - try - { - ::new (__e) _Ex(__ex); - return exception_ptr(__e); - } - catch(...) - { - __cxxabiv1::__cxa_free_exception(__e); - return current_exception(); - } -# 215 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/exception_ptr.h" 3 - } - - -} - -} - -#pragma GCC visibility pop -# 148 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/exception" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/nested_exception.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/nested_exception.h" 3 -#pragma GCC visibility push(default) - - - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/move.h" 1 3 -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/move.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - - template - inline constexpr _Tp* - __addressof(_Tp& __r) noexcept - { return __builtin_addressof(__r); } - - - - -} - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 1 3 -# 32 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - - - - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 56 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template - struct integral_constant - { - static constexpr _Tp value = __v; - typedef _Tp value_type; - typedef integral_constant<_Tp, __v> type; - constexpr operator value_type() const noexcept { return value; } - - - - - constexpr value_type operator()() const noexcept { return value; } - - }; - - template - constexpr _Tp integral_constant<_Tp, __v>::value; - - - typedef integral_constant true_type; - - - typedef integral_constant false_type; - - template - using __bool_constant = integral_constant; -# 91 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template - struct conditional; - - template - struct __type_identity - { using type = _Type; }; - - template - using __type_identity_t = typename __type_identity<_Tp>::type; - - template - struct __or_; - - template<> - struct __or_<> - : public false_type - { }; - - template - struct __or_<_B1> - : public _B1 - { }; - - template - struct __or_<_B1, _B2> - : public conditional<_B1::value, _B1, _B2>::type - { }; - - template - struct __or_<_B1, _B2, _B3, _Bn...> - : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type - { }; - - template - struct __and_; - - template<> - struct __and_<> - : public true_type - { }; - - template - struct __and_<_B1> - : public _B1 - { }; - - template - struct __and_<_B1, _B2> - : public conditional<_B1::value, _B2, _B1>::type - { }; - - template - struct __and_<_B1, _B2, _B3, _Bn...> - : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type - { }; - - template - struct __not_ - : public __bool_constant - { }; -# 188 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template - struct is_reference; - template - struct is_function; - template - struct is_void; - template - struct __is_array_unknown_bounds; - - - - - template - constexpr true_type __is_complete_or_unbounded(__type_identity<_Tp>) - { return {}; } - - template - constexpr typename __or_< - is_reference<_NestedType>, - is_function<_NestedType>, - is_void<_NestedType>, - __is_array_unknown_bounds<_NestedType> - >::type __is_complete_or_unbounded(_TypeIdentity) - { return {}; } - - - - - - - template - struct __success_type - { typedef _Tp type; }; - - struct __failure_type - { }; - - template - struct remove_cv; - - - template - using __remove_cv_t = typename remove_cv<_Tp>::type; - - template - struct is_const; - - - - template - struct __is_void_helper - : public false_type { }; - - template<> - struct __is_void_helper - : public true_type { }; - - - template - struct is_void - : public __is_void_helper<__remove_cv_t<_Tp>>::type - { }; - - template - struct __is_integral_helper - : public false_type { }; - - template<> - struct __is_integral_helper - : public true_type { }; - - template<> - struct __is_integral_helper - : public true_type { }; - - template<> - struct __is_integral_helper - : public true_type { }; - - template<> - struct __is_integral_helper - : public true_type { }; - - - template<> - struct __is_integral_helper - : public true_type { }; -# 284 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template<> - struct __is_integral_helper - : public true_type { }; - - template<> - struct __is_integral_helper - : public true_type { }; - - template<> - struct __is_integral_helper - : public true_type { }; - - template<> - struct __is_integral_helper - : public true_type { }; - - template<> - struct __is_integral_helper - : public true_type { }; - - template<> - struct __is_integral_helper - : public true_type { }; - - template<> - struct __is_integral_helper - : public true_type { }; - - template<> - struct __is_integral_helper - : public true_type { }; - - template<> - struct __is_integral_helper - : public true_type { }; - - template<> - struct __is_integral_helper - : public true_type { }; - - - - - template<> - struct __is_integral_helper<__int128> - : public true_type { }; - - template<> - struct __is_integral_helper - : public true_type { }; -# 364 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template - struct is_integral - : public __is_integral_helper<__remove_cv_t<_Tp>>::type - { }; - - template - struct __is_floating_point_helper - : public false_type { }; - - template<> - struct __is_floating_point_helper - : public true_type { }; - - template<> - struct __is_floating_point_helper - : public true_type { }; - - template<> - struct __is_floating_point_helper - : public true_type { }; - - - template<> - struct __is_floating_point_helper<__float128> - : public true_type { }; - - - - template - struct is_floating_point - : public __is_floating_point_helper<__remove_cv_t<_Tp>>::type - { }; - - - template - struct is_array - : public false_type { }; - - template - struct is_array<_Tp[_Size]> - : public true_type { }; - - template - struct is_array<_Tp[]> - : public true_type { }; - - template - struct __is_pointer_helper - : public false_type { }; - - template - struct __is_pointer_helper<_Tp*> - : public true_type { }; - - - template - struct is_pointer - : public __is_pointer_helper<__remove_cv_t<_Tp>>::type - { }; - - - template - struct is_lvalue_reference - : public false_type { }; - - template - struct is_lvalue_reference<_Tp&> - : public true_type { }; - - - template - struct is_rvalue_reference - : public false_type { }; - - template - struct is_rvalue_reference<_Tp&&> - : public true_type { }; - - template - struct __is_member_object_pointer_helper - : public false_type { }; - - template - struct __is_member_object_pointer_helper<_Tp _Cp::*> - : public __not_>::type { }; - - - template - struct is_member_object_pointer - : public __is_member_object_pointer_helper<__remove_cv_t<_Tp>>::type - { }; - - template - struct __is_member_function_pointer_helper - : public false_type { }; - - template - struct __is_member_function_pointer_helper<_Tp _Cp::*> - : public is_function<_Tp>::type { }; - - - template - struct is_member_function_pointer - : public __is_member_function_pointer_helper<__remove_cv_t<_Tp>>::type - { }; - - - template - struct is_enum - : public integral_constant - { }; - - - template - struct is_union - : public integral_constant - { }; - - - template - struct is_class - : public integral_constant - { }; - - - template - struct is_function - : public __bool_constant::value> { }; - - template - struct is_function<_Tp&> - : public false_type { }; - - template - struct is_function<_Tp&&> - : public false_type { }; - - - - template - struct __is_null_pointer_helper - : public false_type { }; - - template<> - struct __is_null_pointer_helper - : public true_type { }; - - - template - struct is_null_pointer - : public __is_null_pointer_helper<__remove_cv_t<_Tp>>::type - { }; - - - template - struct __is_nullptr_t - : public is_null_pointer<_Tp> - { } __attribute__ ((__deprecated__)); - - - - - template - struct is_reference - : public __or_, - is_rvalue_reference<_Tp>>::type - { }; - - - template - struct is_arithmetic - : public __or_, is_floating_point<_Tp>>::type - { }; - - - template - struct is_fundamental - : public __or_, is_void<_Tp>, - is_null_pointer<_Tp>>::type - { }; - - - template - struct is_object - : public __not_<__or_, is_reference<_Tp>, - is_void<_Tp>>>::type - { }; - - template - struct is_member_pointer; - - - template - struct is_scalar - : public __or_, is_enum<_Tp>, is_pointer<_Tp>, - is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type - { }; - - - template - struct is_compound - : public __not_>::type { }; - - template - struct __is_member_pointer_helper - : public false_type { }; - - template - struct __is_member_pointer_helper<_Tp _Cp::*> - : public true_type { }; - - - template - struct is_member_pointer - : public __is_member_pointer_helper<__remove_cv_t<_Tp>>::type - { }; - - template - struct is_same; - - template - using __is_one_of = __or_...>; - - - template - using __is_signed_integer = __is_one_of<__remove_cv_t<_Tp>, - signed char, signed short, signed int, signed long, - signed long long - - , signed __int128 -# 604 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - >; - - - template - using __is_unsigned_integer = __is_one_of<__remove_cv_t<_Tp>, - unsigned char, unsigned short, unsigned int, unsigned long, - unsigned long long - - , unsigned __int128 -# 623 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - >; - - - template - using __is_standard_integer - = __or_<__is_signed_integer<_Tp>, __is_unsigned_integer<_Tp>>; - - - template using __void_t = void; - - - - template - struct __is_referenceable - : public false_type - { }; - - template - struct __is_referenceable<_Tp, __void_t<_Tp&>> - : public true_type - { }; - - - - - template - struct is_const - : public false_type { }; - - template - struct is_const<_Tp const> - : public true_type { }; - - - template - struct is_volatile - : public false_type { }; - - template - struct is_volatile<_Tp volatile> - : public true_type { }; - - - template - struct is_trivial - : public integral_constant - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - template - struct is_trivially_copyable - : public integral_constant - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - template - struct is_standard_layout - : public integral_constant - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - - template - struct - - is_pod - : public integral_constant - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - template - struct is_literal_type - : public integral_constant - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - template - struct is_empty - : public integral_constant - { }; - - - template - struct is_polymorphic - : public integral_constant - { }; - - - - - template - struct is_final - : public integral_constant - { }; - - - - template - struct is_abstract - : public integral_constant - { }; - - template::value> - struct __is_signed_helper - : public false_type { }; - - template - struct __is_signed_helper<_Tp, true> - : public integral_constant - { }; - - - template - struct is_signed - : public __is_signed_helper<_Tp>::type - { }; - - - template - struct is_unsigned - : public __and_, __not_>> - { }; -# 770 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template - _Up - __declval(int); - - template - _Tp - __declval(long); - - template - auto declval() noexcept -> decltype(__declval<_Tp>(0)); - - template - struct extent; - - template - struct remove_all_extents; - - template - struct __is_array_known_bounds - : public integral_constant::value > 0)> - { }; - - template - struct __is_array_unknown_bounds - : public __and_, __not_>> - { }; - - - - - - - struct __do_is_destructible_impl - { - template().~_Tp())> - static true_type __test(int); - - template - static false_type __test(...); - }; - - template - struct __is_destructible_impl - : public __do_is_destructible_impl - { - typedef decltype(__test<_Tp>(0)) type; - }; - - template, - __is_array_unknown_bounds<_Tp>, - is_function<_Tp>>::value, - bool = __or_, is_scalar<_Tp>>::value> - struct __is_destructible_safe; - - template - struct __is_destructible_safe<_Tp, false, false> - : public __is_destructible_impl::type>::type - { }; - - template - struct __is_destructible_safe<_Tp, true, false> - : public false_type { }; - - template - struct __is_destructible_safe<_Tp, false, true> - : public true_type { }; - - - template - struct is_destructible - : public __is_destructible_safe<_Tp>::type - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - - - - struct __do_is_nt_destructible_impl - { - template - static __bool_constant().~_Tp())> - __test(int); - - template - static false_type __test(...); - }; - - template - struct __is_nt_destructible_impl - : public __do_is_nt_destructible_impl - { - typedef decltype(__test<_Tp>(0)) type; - }; - - template, - __is_array_unknown_bounds<_Tp>, - is_function<_Tp>>::value, - bool = __or_, is_scalar<_Tp>>::value> - struct __is_nt_destructible_safe; - - template - struct __is_nt_destructible_safe<_Tp, false, false> - : public __is_nt_destructible_impl::type>::type - { }; - - template - struct __is_nt_destructible_safe<_Tp, true, false> - : public false_type { }; - - template - struct __is_nt_destructible_safe<_Tp, false, true> - : public true_type { }; - - - template - struct is_nothrow_destructible - : public __is_nt_destructible_safe<_Tp>::type - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - template - struct __is_constructible_impl - : public __bool_constant<__is_constructible(_Tp, _Args...)> - { }; - - - template - struct is_constructible - : public __is_constructible_impl<_Tp, _Args...> - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - template - struct is_default_constructible - : public __is_constructible_impl<_Tp>::type - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - template::value> - struct __is_copy_constructible_impl; - - template - struct __is_copy_constructible_impl<_Tp, false> - : public false_type { }; - - template - struct __is_copy_constructible_impl<_Tp, true> - : public __is_constructible_impl<_Tp, const _Tp&> - { }; - - - template - struct is_copy_constructible - : public __is_copy_constructible_impl<_Tp> - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - template::value> - struct __is_move_constructible_impl; - - template - struct __is_move_constructible_impl<_Tp, false> - : public false_type { }; - - template - struct __is_move_constructible_impl<_Tp, true> - : public __is_constructible_impl<_Tp, _Tp&&> - { }; - - - template - struct is_move_constructible - : public __is_move_constructible_impl<_Tp> - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - template - struct __is_nt_constructible_impl - : public false_type - { }; - - template - struct __is_nt_constructible_impl - : public __bool_constant()...))> - { }; - - template - struct __is_nt_constructible_impl - : public __bool_constant(std::declval<_Arg>()))> - { }; - - template - struct __is_nt_constructible_impl - : public __bool_constant - { }; - - template - struct __is_nt_constructible_impl - : public __bool_constant::type())> - { }; -# 1001 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template - using __is_nothrow_constructible_impl - = __is_nt_constructible_impl<__is_constructible(_Tp, _Args...), - _Tp, _Args...>; - - - template - struct is_nothrow_constructible - : public __is_nothrow_constructible_impl<_Tp, _Args...>::type - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - template - struct is_nothrow_default_constructible - : public __is_nothrow_constructible_impl<_Tp>::type - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - template::value> - struct __is_nothrow_copy_constructible_impl; - - template - struct __is_nothrow_copy_constructible_impl<_Tp, false> - : public false_type { }; - - template - struct __is_nothrow_copy_constructible_impl<_Tp, true> - : public __is_nothrow_constructible_impl<_Tp, const _Tp&> - { }; - - - template - struct is_nothrow_copy_constructible - : public __is_nothrow_copy_constructible_impl<_Tp>::type - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - template::value> - struct __is_nothrow_move_constructible_impl; - - template - struct __is_nothrow_move_constructible_impl<_Tp, false> - : public false_type { }; - - template - struct __is_nothrow_move_constructible_impl<_Tp, true> - : public __is_nothrow_constructible_impl<_Tp, _Tp&&> - { }; - - - template - struct is_nothrow_move_constructible - : public __is_nothrow_move_constructible_impl<_Tp>::type - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - template - struct is_assignable - : public __bool_constant<__is_assignable(_Tp, _Up)> - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - template::value> - struct __is_copy_assignable_impl; - - template - struct __is_copy_assignable_impl<_Tp, false> - : public false_type { }; - - template - struct __is_copy_assignable_impl<_Tp, true> - : public __bool_constant<__is_assignable(_Tp&, const _Tp&)> - { }; - - - template - struct is_copy_assignable - : public __is_copy_assignable_impl<_Tp>::type - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - template::value> - struct __is_move_assignable_impl; - - template - struct __is_move_assignable_impl<_Tp, false> - : public false_type { }; - - template - struct __is_move_assignable_impl<_Tp, true> - : public __bool_constant<__is_assignable(_Tp&, _Tp&&)> - { }; - - - template - struct is_move_assignable - : public __is_move_assignable_impl<_Tp>::type - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - template - struct __is_nt_assignable_impl - : public integral_constant() = declval<_Up>())> - { }; - - template - struct __is_nothrow_assignable_impl - : public __and_<__bool_constant<__is_assignable(_Tp, _Up)>, - __is_nt_assignable_impl<_Tp, _Up>> - { }; - - - template - struct is_nothrow_assignable - : public __is_nothrow_assignable_impl<_Tp, _Up> - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - template::value> - struct __is_nt_copy_assignable_impl; - - template - struct __is_nt_copy_assignable_impl<_Tp, false> - : public false_type { }; - - template - struct __is_nt_copy_assignable_impl<_Tp, true> - : public __is_nothrow_assignable_impl<_Tp&, const _Tp&> - { }; - - - template - struct is_nothrow_copy_assignable - : public __is_nt_copy_assignable_impl<_Tp> - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - template::value> - struct __is_nt_move_assignable_impl; - - template - struct __is_nt_move_assignable_impl<_Tp, false> - : public false_type { }; - - template - struct __is_nt_move_assignable_impl<_Tp, true> - : public __is_nothrow_assignable_impl<_Tp&, _Tp&&> - { }; - - - template - struct is_nothrow_move_assignable - : public __is_nt_move_assignable_impl<_Tp> - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - template - struct is_trivially_constructible - : public __bool_constant<__is_trivially_constructible(_Tp, _Args...)> - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - template - struct is_trivially_default_constructible - : public __bool_constant<__is_trivially_constructible(_Tp)> - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - struct __do_is_implicitly_default_constructible_impl - { - template - static void __helper(const _Tp&); - - template - static true_type __test(const _Tp&, - decltype(__helper({}))* = 0); - - static false_type __test(...); - }; - - template - struct __is_implicitly_default_constructible_impl - : public __do_is_implicitly_default_constructible_impl - { - typedef decltype(__test(declval<_Tp>())) type; - }; - - template - struct __is_implicitly_default_constructible_safe - : public __is_implicitly_default_constructible_impl<_Tp>::type - { }; - - template - struct __is_implicitly_default_constructible - : public __and_<__is_constructible_impl<_Tp>, - __is_implicitly_default_constructible_safe<_Tp>> - { }; - - template::value> - struct __is_trivially_copy_constructible_impl; - - template - struct __is_trivially_copy_constructible_impl<_Tp, false> - : public false_type { }; - - template - struct __is_trivially_copy_constructible_impl<_Tp, true> - : public __and_<__is_copy_constructible_impl<_Tp>, - integral_constant> - { }; - - - template - struct is_trivially_copy_constructible - : public __is_trivially_copy_constructible_impl<_Tp> - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - template::value> - struct __is_trivially_move_constructible_impl; - - template - struct __is_trivially_move_constructible_impl<_Tp, false> - : public false_type { }; - - template - struct __is_trivially_move_constructible_impl<_Tp, true> - : public __and_<__is_move_constructible_impl<_Tp>, - integral_constant> - { }; - - - template - struct is_trivially_move_constructible - : public __is_trivially_move_constructible_impl<_Tp> - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - template - struct is_trivially_assignable - : public __bool_constant<__is_trivially_assignable(_Tp, _Up)> - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - template::value> - struct __is_trivially_copy_assignable_impl; - - template - struct __is_trivially_copy_assignable_impl<_Tp, false> - : public false_type { }; - - template - struct __is_trivially_copy_assignable_impl<_Tp, true> - : public __bool_constant<__is_trivially_assignable(_Tp&, const _Tp&)> - { }; - - - template - struct is_trivially_copy_assignable - : public __is_trivially_copy_assignable_impl<_Tp> - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - template::value> - struct __is_trivially_move_assignable_impl; - - template - struct __is_trivially_move_assignable_impl<_Tp, false> - : public false_type { }; - - template - struct __is_trivially_move_assignable_impl<_Tp, true> - : public __bool_constant<__is_trivially_assignable(_Tp&, _Tp&&)> - { }; - - - template - struct is_trivially_move_assignable - : public __is_trivially_move_assignable_impl<_Tp> - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - template - struct is_trivially_destructible - : public __and_<__is_destructible_safe<_Tp>, - __bool_constant<__has_trivial_destructor(_Tp)>> - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - - template - struct has_virtual_destructor - : public integral_constant - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - - - - template - struct alignment_of - : public integral_constant - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - template - struct rank - : public integral_constant { }; - - template - struct rank<_Tp[_Size]> - : public integral_constant::value> { }; - - template - struct rank<_Tp[]> - : public integral_constant::value> { }; - - - template - struct extent - : public integral_constant { }; - - template - struct extent<_Tp[_Size], _Uint> - : public integral_constant::value> - { }; - - template - struct extent<_Tp[], _Uint> - : public integral_constant::value> - { }; - - - - - - template - struct is_same - - : public integral_constant - - - - { }; -# 1410 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template - struct is_base_of - : public integral_constant - { }; - - template, is_function<_To>, - is_array<_To>>::value> - struct __is_convertible_helper - { - typedef typename is_void<_To>::type type; - }; - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" - template - class __is_convertible_helper<_From, _To, false> - { - template - static void __test_aux(_To1) noexcept; - - template(std::declval<_From1>()))> - static true_type - __test(int); - - template - static false_type - __test(...); - - public: - typedef decltype(__test<_From, _To>(0)) type; - }; -#pragma GCC diagnostic pop - - - template - struct is_convertible - : public __is_convertible_helper<_From, _To>::type - { }; - - - template - using __is_array_convertible - = is_convertible<_FromElementType(*)[], _ToElementType(*)[]>; - - template, is_function<_To>, - is_array<_To>>::value> - struct __is_nt_convertible_helper - : is_void<_To> - { }; - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" - template - class __is_nt_convertible_helper<_From, _To, false> - { - template - static void __test_aux(_To1) noexcept; - - template - static - __bool_constant(std::declval<_From1>()))> - __test(int); - - template - static false_type - __test(...); - - public: - using type = decltype(__test<_From, _To>(0)); - }; -#pragma GCC diagnostic pop - - - template - struct __is_nothrow_convertible - : public __is_nt_convertible_helper<_From, _To>::type - { }; -# 1508 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template - struct remove_const - { typedef _Tp type; }; - - template - struct remove_const<_Tp const> - { typedef _Tp type; }; - - - template - struct remove_volatile - { typedef _Tp type; }; - - template - struct remove_volatile<_Tp volatile> - { typedef _Tp type; }; - - - template - struct remove_cv - { using type = _Tp; }; - - template - struct remove_cv - { using type = _Tp; }; - - template - struct remove_cv - { using type = _Tp; }; - - template - struct remove_cv - { using type = _Tp; }; - - - template - struct add_const - { typedef _Tp const type; }; - - - template - struct add_volatile - { typedef _Tp volatile type; }; - - - template - struct add_cv - { - typedef typename - add_const::type>::type type; - }; - - - - - - - template - using remove_const_t = typename remove_const<_Tp>::type; - - - template - using remove_volatile_t = typename remove_volatile<_Tp>::type; - - - template - using remove_cv_t = typename remove_cv<_Tp>::type; - - - template - using add_const_t = typename add_const<_Tp>::type; - - - template - using add_volatile_t = typename add_volatile<_Tp>::type; - - - template - using add_cv_t = typename add_cv<_Tp>::type; - - - - - - template - struct remove_reference - { typedef _Tp type; }; - - template - struct remove_reference<_Tp&> - { typedef _Tp type; }; - - template - struct remove_reference<_Tp&&> - { typedef _Tp type; }; - - template::value> - struct __add_lvalue_reference_helper - { typedef _Tp type; }; - - template - struct __add_lvalue_reference_helper<_Tp, true> - { typedef _Tp& type; }; - - - template - struct add_lvalue_reference - : public __add_lvalue_reference_helper<_Tp> - { }; - - template::value> - struct __add_rvalue_reference_helper - { typedef _Tp type; }; - - template - struct __add_rvalue_reference_helper<_Tp, true> - { typedef _Tp&& type; }; - - - template - struct add_rvalue_reference - : public __add_rvalue_reference_helper<_Tp> - { }; - - - - template - using remove_reference_t = typename remove_reference<_Tp>::type; - - - template - using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type; - - - template - using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type; - - - - - - template - struct __cv_selector; - - template - struct __cv_selector<_Unqualified, false, false> - { typedef _Unqualified __type; }; - - template - struct __cv_selector<_Unqualified, false, true> - { typedef volatile _Unqualified __type; }; - - template - struct __cv_selector<_Unqualified, true, false> - { typedef const _Unqualified __type; }; - - template - struct __cv_selector<_Unqualified, true, true> - { typedef const volatile _Unqualified __type; }; - - template::value, - bool _IsVol = is_volatile<_Qualified>::value> - class __match_cv_qualifiers - { - typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; - - public: - typedef typename __match::__type __type; - }; - - - template - struct __make_unsigned - { typedef _Tp __type; }; - - template<> - struct __make_unsigned - { typedef unsigned char __type; }; - - template<> - struct __make_unsigned - { typedef unsigned char __type; }; - - template<> - struct __make_unsigned - { typedef unsigned short __type; }; - - template<> - struct __make_unsigned - { typedef unsigned int __type; }; - - template<> - struct __make_unsigned - { typedef unsigned long __type; }; - - template<> - struct __make_unsigned - { typedef unsigned long long __type; }; - - - template<> - struct __make_unsigned<__int128> - { typedef unsigned __int128 __type; }; -# 1730 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template::value, - bool _IsEnum = is_enum<_Tp>::value> - class __make_unsigned_selector; - - template - class __make_unsigned_selector<_Tp, true, false> - { - using __unsigned_type - = typename __make_unsigned<__remove_cv_t<_Tp>>::__type; - - public: - using __type - = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; - }; - - class __make_unsigned_selector_base - { - protected: - template struct _List { }; - - template - struct _List<_Tp, _Up...> : _List<_Up...> - { static constexpr size_t __size = sizeof(_Tp); }; - - template - struct __select; - - template - struct __select<_Sz, _List<_Uint, _UInts...>, true> - { using __type = _Uint; }; - - template - struct __select<_Sz, _List<_Uint, _UInts...>, false> - : __select<_Sz, _List<_UInts...>> - { }; - }; - - - template - class __make_unsigned_selector<_Tp, false, true> - : __make_unsigned_selector_base - { - - using _UInts = _List; - - using __unsigned_type = typename __select::__type; - - public: - using __type - = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; - }; - - - - - - - template<> - struct __make_unsigned - { - using __type - = typename __make_unsigned_selector::__type; - }; -# 1806 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template<> - struct __make_unsigned - { - using __type - = typename __make_unsigned_selector::__type; - }; - - template<> - struct __make_unsigned - { - using __type - = typename __make_unsigned_selector::__type; - }; - - - - - - template - struct make_unsigned - { typedef typename __make_unsigned_selector<_Tp>::__type type; }; - - - template<> - struct make_unsigned; - - - - template - struct __make_signed - { typedef _Tp __type; }; - - template<> - struct __make_signed - { typedef signed char __type; }; - - template<> - struct __make_signed - { typedef signed char __type; }; - - template<> - struct __make_signed - { typedef signed short __type; }; - - template<> - struct __make_signed - { typedef signed int __type; }; - - template<> - struct __make_signed - { typedef signed long __type; }; - - template<> - struct __make_signed - { typedef signed long long __type; }; - - - template<> - struct __make_signed - { typedef __int128 __type; }; -# 1884 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template::value, - bool _IsEnum = is_enum<_Tp>::value> - class __make_signed_selector; - - template - class __make_signed_selector<_Tp, true, false> - { - using __signed_type - = typename __make_signed<__remove_cv_t<_Tp>>::__type; - - public: - using __type - = typename __match_cv_qualifiers<_Tp, __signed_type>::__type; - }; - - - template - class __make_signed_selector<_Tp, false, true> - { - typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type; - - public: - typedef typename __make_signed_selector<__unsigned_type>::__type __type; - }; - - - - - - - template<> - struct __make_signed - { - using __type - = typename __make_signed_selector::__type; - }; -# 1932 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template<> - struct __make_signed - { - using __type - = typename __make_signed_selector::__type; - }; - - template<> - struct __make_signed - { - using __type - = typename __make_signed_selector::__type; - }; - - - - - - template - struct make_signed - { typedef typename __make_signed_selector<_Tp>::__type type; }; - - - template<> - struct make_signed; - - - - template - using make_signed_t = typename make_signed<_Tp>::type; - - - template - using make_unsigned_t = typename make_unsigned<_Tp>::type; - - - - - - template - struct remove_extent - { typedef _Tp type; }; - - template - struct remove_extent<_Tp[_Size]> - { typedef _Tp type; }; - - template - struct remove_extent<_Tp[]> - { typedef _Tp type; }; - - - template - struct remove_all_extents - { typedef _Tp type; }; - - template - struct remove_all_extents<_Tp[_Size]> - { typedef typename remove_all_extents<_Tp>::type type; }; - - template - struct remove_all_extents<_Tp[]> - { typedef typename remove_all_extents<_Tp>::type type; }; - - - - template - using remove_extent_t = typename remove_extent<_Tp>::type; - - - template - using remove_all_extents_t = typename remove_all_extents<_Tp>::type; - - - - - template - struct __remove_pointer_helper - { typedef _Tp type; }; - - template - struct __remove_pointer_helper<_Tp, _Up*> - { typedef _Up type; }; - - - template - struct remove_pointer - : public __remove_pointer_helper<_Tp, __remove_cv_t<_Tp>> - { }; - - - template, - is_void<_Tp>>::value> - struct __add_pointer_helper - { typedef _Tp type; }; - - template - struct __add_pointer_helper<_Tp, true> - { typedef typename remove_reference<_Tp>::type* type; }; - - template - struct add_pointer - : public __add_pointer_helper<_Tp> - { }; - - - - template - using remove_pointer_t = typename remove_pointer<_Tp>::type; - - - template - using add_pointer_t = typename add_pointer<_Tp>::type; - - - template - struct __aligned_storage_msa - { - union __type - { - unsigned char __data[_Len]; - struct __attribute__((__aligned__)) { } __align; - }; - }; -# 2067 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template::__type)> - struct aligned_storage - { - union type - { - unsigned char __data[_Len]; - struct __attribute__((__aligned__((_Align)))) { } __align; - }; - }; - - template - struct __strictest_alignment - { - static const size_t _S_alignment = 0; - static const size_t _S_size = 0; - }; - - template - struct __strictest_alignment<_Tp, _Types...> - { - static const size_t _S_alignment = - alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment - ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; - static const size_t _S_size = - sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size - ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; - }; -# 2106 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template - struct aligned_union - { - private: - static_assert(sizeof...(_Types) != 0, "At least one type is required"); - - using __strictest = __strictest_alignment<_Types...>; - static const size_t _S_len = _Len > __strictest::_S_size - ? _Len : __strictest::_S_size; - public: - - static const size_t alignment_value = __strictest::_S_alignment; - - typedef typename aligned_storage<_S_len, alignment_value>::type type; - }; - - template - const size_t aligned_union<_Len, _Types...>::alignment_value; - - - - template::value, - bool _IsFunction = is_function<_Up>::value> - struct __decay_selector; - - - template - struct __decay_selector<_Up, false, false> - { typedef __remove_cv_t<_Up> __type; }; - - template - struct __decay_selector<_Up, true, false> - { typedef typename remove_extent<_Up>::type* __type; }; - - template - struct __decay_selector<_Up, false, true> - { typedef typename add_pointer<_Up>::type __type; }; - - - template - class decay - { - typedef typename remove_reference<_Tp>::type __remove_type; - - public: - typedef typename __decay_selector<__remove_type>::__type type; - }; - - - template - using __decay_t = typename decay<_Tp>::type; - - template - class reference_wrapper; - - - template - struct __strip_reference_wrapper - { - typedef _Tp __type; - }; - - template - struct __strip_reference_wrapper > - { - typedef _Tp& __type; - }; - - template - using __decay_and_strip = __strip_reference_wrapper<__decay_t<_Tp>>; - - - - - template - struct enable_if - { }; - - - template - struct enable_if - { typedef _Tp type; }; - - - template - using __enable_if_t = typename enable_if<_Cond, _Tp>::type; - - template - using _Require = __enable_if_t<__and_<_Cond...>::value>; - - - - template - struct conditional - { typedef _Iftrue type; }; - - - template - struct conditional - { typedef _Iffalse type; }; - - - template - using __remove_cvref_t - = typename remove_cv::type>::type; - - - template - struct common_type; - - - - struct __do_common_type_impl - { - template - using __cond_t - = decltype(true ? std::declval<_Tp>() : std::declval<_Up>()); - - - - template - static __success_type<__decay_t<__cond_t<_Tp, _Up>>> - _S_test(int); -# 2239 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template - static __failure_type - _S_test_2(...); - - template - static decltype(_S_test_2<_Tp, _Up>(0)) - _S_test(...); - }; - - - template<> - struct common_type<> - { }; - - - template - struct common_type<_Tp0> - : public common_type<_Tp0, _Tp0> - { }; - - - template, typename _Dp2 = __decay_t<_Tp2>> - struct __common_type_impl - { - - - using type = common_type<_Dp1, _Dp2>; - }; - - template - struct __common_type_impl<_Tp1, _Tp2, _Tp1, _Tp2> - : private __do_common_type_impl - { - - - using type = decltype(_S_test<_Tp1, _Tp2>(0)); - }; - - - template - struct common_type<_Tp1, _Tp2> - : public __common_type_impl<_Tp1, _Tp2>::type - { }; - - template - struct __common_type_pack - { }; - - template - struct __common_type_fold; - - - template - struct common_type<_Tp1, _Tp2, _Rp...> - : public __common_type_fold, - __common_type_pack<_Rp...>> - { }; - - - - - template - struct __common_type_fold<_CTp, __common_type_pack<_Rp...>, - __void_t> - : public common_type - { }; - - - template - struct __common_type_fold<_CTp, _Rp, void> - { }; - - template::value> - struct __underlying_type_impl - { - using type = __underlying_type(_Tp); - }; - - template - struct __underlying_type_impl<_Tp, false> - { }; - - - template - struct underlying_type - : public __underlying_type_impl<_Tp> - { }; - - template - struct __declval_protector - { - static const bool __stop = false; - }; - - template - auto declval() noexcept -> decltype(__declval<_Tp>(0)) - { - static_assert(__declval_protector<_Tp>::__stop, - "declval() must not be used!"); - return __declval<_Tp>(0); - } - - - template - class result_of; - - - - - - struct __invoke_memfun_ref { }; - struct __invoke_memfun_deref { }; - struct __invoke_memobj_ref { }; - struct __invoke_memobj_deref { }; - struct __invoke_other { }; - - - template - struct __result_of_success : __success_type<_Tp> - { using __invoke_type = _Tag; }; - - - struct __result_of_memfun_ref_impl - { - template - static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) - ), __invoke_memfun_ref> _S_test(int); - - template - static __failure_type _S_test(...); - }; - - template - struct __result_of_memfun_ref - : private __result_of_memfun_ref_impl - { - typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; - }; - - - struct __result_of_memfun_deref_impl - { - template - static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) - ), __invoke_memfun_deref> _S_test(int); - - template - static __failure_type _S_test(...); - }; - - template - struct __result_of_memfun_deref - : private __result_of_memfun_deref_impl - { - typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; - }; - - - struct __result_of_memobj_ref_impl - { - template - static __result_of_success().*std::declval<_Fp>() - ), __invoke_memobj_ref> _S_test(int); - - template - static __failure_type _S_test(...); - }; - - template - struct __result_of_memobj_ref - : private __result_of_memobj_ref_impl - { - typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; - }; - - - struct __result_of_memobj_deref_impl - { - template - static __result_of_success()).*std::declval<_Fp>() - ), __invoke_memobj_deref> _S_test(int); - - template - static __failure_type _S_test(...); - }; - - template - struct __result_of_memobj_deref - : private __result_of_memobj_deref_impl - { - typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; - }; - - template - struct __result_of_memobj; - - template - struct __result_of_memobj<_Res _Class::*, _Arg> - { - typedef __remove_cvref_t<_Arg> _Argval; - typedef _Res _Class::* _MemPtr; - typedef typename conditional<__or_, - is_base_of<_Class, _Argval>>::value, - __result_of_memobj_ref<_MemPtr, _Arg>, - __result_of_memobj_deref<_MemPtr, _Arg> - >::type::type type; - }; - - template - struct __result_of_memfun; - - template - struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> - { - typedef typename remove_reference<_Arg>::type _Argval; - typedef _Res _Class::* _MemPtr; - typedef typename conditional::value, - __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, - __result_of_memfun_deref<_MemPtr, _Arg, _Args...> - >::type::type type; - }; - - - - - - - template> - struct __inv_unwrap - { - using type = _Tp; - }; - - template - struct __inv_unwrap<_Tp, reference_wrapper<_Up>> - { - using type = _Up&; - }; - - template - struct __result_of_impl - { - typedef __failure_type type; - }; - - template - struct __result_of_impl - : public __result_of_memobj<__decay_t<_MemPtr>, - typename __inv_unwrap<_Arg>::type> - { }; - - template - struct __result_of_impl - : public __result_of_memfun<__decay_t<_MemPtr>, - typename __inv_unwrap<_Arg>::type, _Args...> - { }; - - - struct __result_of_other_impl - { - template - static __result_of_success()(std::declval<_Args>()...) - ), __invoke_other> _S_test(int); - - template - static __failure_type _S_test(...); - }; - - template - struct __result_of_impl - : private __result_of_other_impl - { - typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type; - }; - - - template - struct __invoke_result - : public __result_of_impl< - is_member_object_pointer< - typename remove_reference<_Functor>::type - >::value, - is_member_function_pointer< - typename remove_reference<_Functor>::type - >::value, - _Functor, _ArgTypes... - >::type - { }; - - template - struct result_of<_Functor(_ArgTypes...)> - : public __invoke_result<_Functor, _ArgTypes...> - { }; - - - - template::__type)> - using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; - - template - using aligned_union_t = typename aligned_union<_Len, _Types...>::type; - - - template - using decay_t = typename decay<_Tp>::type; - - - template - using enable_if_t = typename enable_if<_Cond, _Tp>::type; - - - template - using conditional_t = typename conditional<_Cond, _Iftrue, _Iffalse>::type; - - - template - using common_type_t = typename common_type<_Tp...>::type; - - - template - using underlying_type_t = typename underlying_type<_Tp>::type; - - - template - using result_of_t = typename result_of<_Tp>::type; - - - - - - template using void_t = void; - - - - template class _Op, typename... _Args> - struct __detector - { - using value_t = false_type; - using type = _Default; - }; - - - template class _Op, - typename... _Args> - struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> - { - using value_t = true_type; - using type = _Op<_Args...>; - }; - - - template class _Op, - typename... _Args> - using __detected_or = __detector<_Default, void, _Op, _Args...>; - - - template class _Op, - typename... _Args> - using __detected_or_t - = typename __detected_or<_Default, _Op, _Args...>::type; -# 2624 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - template - struct __is_swappable; - - template - struct __is_nothrow_swappable; - - template - class tuple; - - template - struct __is_tuple_like_impl : false_type - { }; - - template - struct __is_tuple_like_impl> : true_type - { }; - - - template - struct __is_tuple_like - : public __is_tuple_like_impl<__remove_cvref_t<_Tp>>::type - { }; - - template - - inline - _Require<__not_<__is_tuple_like<_Tp>>, - is_move_constructible<_Tp>, - is_move_assignable<_Tp>> - swap(_Tp&, _Tp&) - noexcept(__and_, - is_nothrow_move_assignable<_Tp>>::value); - - template - - inline - __enable_if_t<__is_swappable<_Tp>::value> - swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) - noexcept(__is_nothrow_swappable<_Tp>::value); - - namespace __swappable_details { - using std::swap; - - struct __do_is_swappable_impl - { - template(), std::declval<_Tp&>()))> - static true_type __test(int); - - template - static false_type __test(...); - }; - - struct __do_is_nothrow_swappable_impl - { - template - static __bool_constant< - noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) - > __test(int); - - template - static false_type __test(...); - }; - - } - - template - struct __is_swappable_impl - : public __swappable_details::__do_is_swappable_impl - { - typedef decltype(__test<_Tp>(0)) type; - }; - - template - struct __is_nothrow_swappable_impl - : public __swappable_details::__do_is_nothrow_swappable_impl - { - typedef decltype(__test<_Tp>(0)) type; - }; - - template - struct __is_swappable - : public __is_swappable_impl<_Tp>::type - { }; - - template - struct __is_nothrow_swappable - : public __is_nothrow_swappable_impl<_Tp>::type - { }; - - - - - - - template - struct is_swappable - : public __is_swappable_impl<_Tp>::type - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - template - struct is_nothrow_swappable - : public __is_nothrow_swappable_impl<_Tp>::type - { - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - "template argument must be a complete class or an unbounded array"); - }; - - - - template - constexpr bool is_swappable_v = - is_swappable<_Tp>::value; - - - template - constexpr bool is_nothrow_swappable_v = - is_nothrow_swappable<_Tp>::value; - - - namespace __swappable_with_details { - using std::swap; - - struct __do_is_swappable_with_impl - { - template(), std::declval<_Up>())), - typename - = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> - static true_type __test(int); - - template - static false_type __test(...); - }; - - struct __do_is_nothrow_swappable_with_impl - { - template - static __bool_constant< - noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) - && - noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())) - > __test(int); - - template - static false_type __test(...); - }; - - } - - template - struct __is_swappable_with_impl - : public __swappable_with_details::__do_is_swappable_with_impl - { - typedef decltype(__test<_Tp, _Up>(0)) type; - }; - - - template - struct __is_swappable_with_impl<_Tp&, _Tp&> - : public __swappable_details::__do_is_swappable_impl - { - typedef decltype(__test<_Tp&>(0)) type; - }; - - template - struct __is_nothrow_swappable_with_impl - : public __swappable_with_details::__do_is_nothrow_swappable_with_impl - { - typedef decltype(__test<_Tp, _Up>(0)) type; - }; - - - template - struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> - : public __swappable_details::__do_is_nothrow_swappable_impl - { - typedef decltype(__test<_Tp&>(0)) type; - }; - - - template - struct is_swappable_with - : public __is_swappable_with_impl<_Tp, _Up>::type - { }; - - - template - struct is_nothrow_swappable_with - : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type - { }; - - - - template - constexpr bool is_swappable_with_v = - is_swappable_with<_Tp, _Up>::value; - - - template - constexpr bool is_nothrow_swappable_with_v = - is_nothrow_swappable_with<_Tp, _Up>::value; - - - - - - - - template::value, typename = void> - struct __is_invocable_impl : false_type { }; - - - template - struct __is_invocable_impl<_Result, _Ret, - true, - __void_t> - : true_type - { }; - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" - - template - struct __is_invocable_impl<_Result, _Ret, - false, - __void_t> - { - private: - - - static typename _Result::type _S_get(); - - template - static void _S_conv(_Tp); - - - template(_S_get()))> - static true_type - _S_test(int); - - template - static false_type - _S_test(...); - - public: - using type = decltype(_S_test<_Ret>(1)); - }; -#pragma GCC diagnostic pop - - template - struct __is_invocable - : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type - { }; - - template - constexpr bool __call_is_nt(__invoke_memfun_ref) - { - using _Up = typename __inv_unwrap<_Tp>::type; - return noexcept((std::declval<_Up>().*std::declval<_Fn>())( - std::declval<_Args>()...)); - } - - template - constexpr bool __call_is_nt(__invoke_memfun_deref) - { - return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( - std::declval<_Args>()...)); - } - - template - constexpr bool __call_is_nt(__invoke_memobj_ref) - { - using _Up = typename __inv_unwrap<_Tp>::type; - return noexcept(std::declval<_Up>().*std::declval<_Fn>()); - } - - template - constexpr bool __call_is_nt(__invoke_memobj_deref) - { - return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); - } - - template - constexpr bool __call_is_nt(__invoke_other) - { - return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); - } - - template - struct __call_is_nothrow - : __bool_constant< - std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) - > - { }; - - template - using __call_is_nothrow_ - = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; - - - template - struct __is_nothrow_invocable - : __and_<__is_invocable<_Fn, _Args...>, - __call_is_nothrow_<_Fn, _Args...>>::type - { }; - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" - struct __nonesuchbase {}; - struct __nonesuch : private __nonesuchbase { - ~__nonesuch() = delete; - __nonesuch(__nonesuch const&) = delete; - void operator=(__nonesuch const&) = delete; - }; -#pragma GCC diagnostic pop -# 3455 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/type_traits" 3 - -} -# 58 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/move.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 74 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/move.h" 3 - template - constexpr _Tp&& - forward(typename std::remove_reference<_Tp>::type& __t) noexcept - { return static_cast<_Tp&&>(__t); } - - - - - - - - template - constexpr _Tp&& - forward(typename std::remove_reference<_Tp>::type&& __t) noexcept - { - static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument" - " substituting _Tp is an lvalue reference type"); - return static_cast<_Tp&&>(__t); - } - - - - - - - template - constexpr typename std::remove_reference<_Tp>::type&& - move(_Tp&& __t) noexcept - { return static_cast::type&&>(__t); } - - - template - struct __move_if_noexcept_cond - : public __and_<__not_>, - is_copy_constructible<_Tp>>::type { }; -# 118 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/move.h" 3 - template - constexpr typename - conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type - move_if_noexcept(_Tp& __x) noexcept - { return std::move(__x); } -# 138 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/move.h" 3 - template - inline _Tp* - addressof(_Tp& __r) noexcept - { return std::__addressof(__r); } - - - - template - const _Tp* addressof(const _Tp&&) = delete; - - - template - - inline _Tp - __exchange(_Tp& __obj, _Up&& __new_val) - { - _Tp __old_val = std::move(__obj); - __obj = std::forward<_Up>(__new_val); - return __old_val; - } -# 179 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/move.h" 3 - template - - inline - - typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, - is_move_constructible<_Tp>, - is_move_assignable<_Tp>>::value>::type - - - - swap(_Tp& __a, _Tp& __b) - noexcept(__and_, is_nothrow_move_assignable<_Tp>>::value) - - { - - - - - _Tp __tmp = std::move(__a); - __a = std::move(__b); - __b = std::move(__tmp); - } - - - - - template - - inline - - typename enable_if<__is_swappable<_Tp>::value>::type - - - - swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) - noexcept(__is_nothrow_swappable<_Tp>::value) - { - for (size_t __n = 0; __n < _Nm; ++__n) - swap(__a[__n], __b[__n]); - } - - - -} -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/nested_exception.h" 2 3 - -extern "C++" { - -namespace std -{ - - - - - - - class nested_exception - { - exception_ptr _M_ptr; - - public: - nested_exception() noexcept : _M_ptr(current_exception()) { } - - nested_exception(const nested_exception&) noexcept = default; - - nested_exception& operator=(const nested_exception&) noexcept = default; - - virtual ~nested_exception() noexcept; - - [[noreturn]] - void - rethrow_nested() const - { - if (_M_ptr) - rethrow_exception(_M_ptr); - std::terminate(); - } - - exception_ptr - nested_ptr() const noexcept - { return _M_ptr; } - }; - - - - template - struct _Nested_exception : public _Except, public nested_exception - { - explicit _Nested_exception(const _Except& __ex) - : _Except(__ex) - { } - - explicit _Nested_exception(_Except&& __ex) - : _Except(static_cast<_Except&&>(__ex)) - { } - }; - - - - - template - [[noreturn]] - inline void - __throw_with_nested_impl(_Tp&& __t, true_type) - { - using _Up = typename remove_reference<_Tp>::type; - throw _Nested_exception<_Up>{std::forward<_Tp>(__t)}; - } - - template - [[noreturn]] - inline void - __throw_with_nested_impl(_Tp&& __t, false_type) - { throw std::forward<_Tp>(__t); } - - - - - - template - [[noreturn]] - inline void - throw_with_nested(_Tp&& __t) - { - using _Up = typename decay<_Tp>::type; - using _CopyConstructible - = __and_, is_move_constructible<_Up>>; - static_assert(_CopyConstructible::value, - "throw_with_nested argument must be CopyConstructible"); - using __nest = __and_, __bool_constant, - __not_>>; - std::__throw_with_nested_impl(std::forward<_Tp>(__t), __nest{}); - } - - - - - template - using __rethrow_if_nested_cond = typename enable_if< - __and_, - __or_<__not_>, - is_convertible<_Tp*, nested_exception*>>>::value - >::type; - - - template - inline __rethrow_if_nested_cond<_Ex> - __rethrow_if_nested_impl(const _Ex* __ptr) - { - if (auto __ne_ptr = dynamic_cast(__ptr)) - __ne_ptr->rethrow_nested(); - } - - - inline void - __rethrow_if_nested_impl(const void*) - { } - - - - - template - inline void - rethrow_if_nested(const _Ex& __ex) - { std::__rethrow_if_nested_impl(std::__addressof(__ex)); } - - -} - -} - - - -#pragma GCC visibility pop -# 149 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/exception" 2 3 -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ios" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/char_traits.h" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/char_traits.h" 3 - -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/char_traits.h" 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 1 3 -# 60 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/functexcept.h" 1 3 -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/functexcept.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - void - __throw_bad_exception(void) __attribute__((__noreturn__)); - - - void - __throw_bad_alloc(void) __attribute__((__noreturn__)); - - - void - __throw_bad_cast(void) __attribute__((__noreturn__)); - - void - __throw_bad_typeid(void) __attribute__((__noreturn__)); - - - void - __throw_logic_error(const char*) __attribute__((__noreturn__)); - - void - __throw_domain_error(const char*) __attribute__((__noreturn__)); - - void - __throw_invalid_argument(const char*) __attribute__((__noreturn__)); - - void - __throw_length_error(const char*) __attribute__((__noreturn__)); - - void - __throw_out_of_range(const char*) __attribute__((__noreturn__)); - - void - __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__)) - __attribute__((__format__(__gnu_printf__, 1, 2))); - - void - __throw_runtime_error(const char*) __attribute__((__noreturn__)); - - void - __throw_range_error(const char*) __attribute__((__noreturn__)); - - void - __throw_overflow_error(const char*) __attribute__((__noreturn__)); - - void - __throw_underflow_error(const char*) __attribute__((__noreturn__)); - - - void - __throw_ios_failure(const char*) __attribute__((__noreturn__)); - - void - __throw_ios_failure(const char*, int) __attribute__((__noreturn__)); - - - void - __throw_system_error(int) __attribute__((__noreturn__)); - - - void - __throw_future_error(int) __attribute__((__noreturn__)); - - - void - __throw_bad_function_call() __attribute__((__noreturn__)); - - -} -# 61 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cpp_type_traits.h" 1 3 -# 35 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cpp_type_traits.h" 3 - -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cpp_type_traits.h" 3 -# 67 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cpp_type_traits.h" 3 -extern "C++" { - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - struct __true_type { }; - struct __false_type { }; - - template - struct __truth_type - { typedef __false_type __type; }; - - template<> - struct __truth_type - { typedef __true_type __type; }; - - - - template - struct __traitor - { - enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; - typedef typename __truth_type<__value>::__type __type; - }; - - - template - struct __are_same - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - template - struct __are_same<_Tp, _Tp> - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - - template - struct __is_void - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - template<> - struct __is_void - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - - - - template - struct __is_integer - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - - - - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; -# 184 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cpp_type_traits.h" 3 - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; -# 270 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cpp_type_traits.h" 3 -template<> struct __is_integer<__int128> { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; -# 287 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cpp_type_traits.h" 3 - template - struct __is_floating - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - - template<> - struct __is_floating - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_floating - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_floating - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - - - - template - struct __is_pointer - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - template - struct __is_pointer<_Tp*> - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - - - - template - struct __is_arithmetic - : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > - { }; - - - - - template - struct __is_scalar - : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > - { }; - - - - - template - struct __is_char - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - template<> - struct __is_char - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - - template<> - struct __is_char - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - - template - struct __is_byte - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - template<> - struct __is_byte - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_byte - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_byte - { - enum { __value = 1 }; - typedef __true_type __type; - }; -# 423 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cpp_type_traits.h" 3 - template struct iterator_traits; - - - template - struct __is_nonvolatile_trivially_copyable - { - enum { __value = __is_trivially_copyable(_Tp) }; - }; - - - - - template - struct __is_nonvolatile_trivially_copyable - { - enum { __value = 0 }; - }; - - - template - struct __memcpyable - { - enum { __value = 0 }; - }; - - template - struct __memcpyable<_Tp*, _Tp*> - : __is_nonvolatile_trivially_copyable<_Tp> - { }; - - template - struct __memcpyable<_Tp*, const _Tp*> - : __is_nonvolatile_trivially_copyable<_Tp> - { }; - - - - - - - template - struct __memcmpable - { - enum { __value = 0 }; - }; - - - template - struct __memcmpable<_Tp*, _Tp*> - : __is_nonvolatile_trivially_copyable<_Tp> - { }; - - template - struct __memcmpable - : __is_nonvolatile_trivially_copyable<_Tp> - { }; - - template - struct __memcmpable<_Tp*, const _Tp*> - : __is_nonvolatile_trivially_copyable<_Tp> - { }; - - - - - template - struct __is_move_iterator - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - - - template - - inline _Iterator - __miter_base(_Iterator __it) - { return __it; } - - -} -} -# 62 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/type_traits.h" 1 3 -# 32 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/type_traits.h" 3 - -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/type_traits.h" 3 - - - - -extern "C++" { - -namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) -{ - - - - template - struct __enable_if - { }; - - template - struct __enable_if - { typedef _Tp __type; }; - - - - template - struct __conditional_type - { typedef _Iftrue __type; }; - - template - struct __conditional_type - { typedef _Iffalse __type; }; - - - - template - struct __add_unsigned - { - private: - typedef __enable_if::__value, _Tp> __if_type; - - public: - typedef typename __if_type::__type __type; - }; - - template<> - struct __add_unsigned - { typedef unsigned char __type; }; - - template<> - struct __add_unsigned - { typedef unsigned char __type; }; - - template<> - struct __add_unsigned - { typedef unsigned short __type; }; - - template<> - struct __add_unsigned - { typedef unsigned int __type; }; - - template<> - struct __add_unsigned - { typedef unsigned long __type; }; - - template<> - struct __add_unsigned - { typedef unsigned long long __type; }; - - - template<> - struct __add_unsigned; - - template<> - struct __add_unsigned; - - - - template - struct __remove_unsigned - { - private: - typedef __enable_if::__value, _Tp> __if_type; - - public: - typedef typename __if_type::__type __type; - }; - - template<> - struct __remove_unsigned - { typedef signed char __type; }; - - template<> - struct __remove_unsigned - { typedef signed char __type; }; - - template<> - struct __remove_unsigned - { typedef short __type; }; - - template<> - struct __remove_unsigned - { typedef int __type; }; - - template<> - struct __remove_unsigned - { typedef long __type; }; - - template<> - struct __remove_unsigned - { typedef long long __type; }; - - - template<> - struct __remove_unsigned; - - template<> - struct __remove_unsigned; - - - - template - inline bool - __is_null_pointer(_Type* __ptr) - { return __ptr == 0; } - - template - inline bool - __is_null_pointer(_Type) - { return false; } - - - inline bool - __is_null_pointer(std::nullptr_t) - { return true; } - - - - template::__value> - struct __promote - { typedef double __type; }; - - - - - template - struct __promote<_Tp, false> - { }; - - template<> - struct __promote - { typedef long double __type; }; - - template<> - struct __promote - { typedef double __type; }; - - template<> - struct __promote - { typedef float __type; }; - - template::__type, - typename _Up2 = typename __promote<_Up>::__type> - struct __promote_2 - { - typedef __typeof__(_Tp2() + _Up2()) __type; - }; - - template::__type, - typename _Up2 = typename __promote<_Up>::__type, - typename _Vp2 = typename __promote<_Vp>::__type> - struct __promote_3 - { - typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; - }; - - template::__type, - typename _Up2 = typename __promote<_Up>::__type, - typename _Vp2 = typename __promote<_Vp>::__type, - typename _Wp2 = typename __promote<_Wp>::__type> - struct __promote_4 - { - typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; - }; - - -} -} -# 63 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/numeric_traits.h" 1 3 -# 32 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/numeric_traits.h" 3 - -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/numeric_traits.h" 3 - - - - -namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) -{ - -# 54 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/numeric_traits.h" 3 - template - struct __numeric_traits_integer - { - - static const _Value __min = (((_Value)(-1) < 0) ? -(((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0) - 1 : (_Value)0); - static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0); - - - - static const bool __is_signed = ((_Value)(-1) < 0); - static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0)); - }; - - template - const _Value __numeric_traits_integer<_Value>::__min; - - template - const _Value __numeric_traits_integer<_Value>::__max; - - template - const bool __numeric_traits_integer<_Value>::__is_signed; - - template - const int __numeric_traits_integer<_Value>::__digits; -# 99 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/numeric_traits.h" 3 - template - struct __numeric_traits_floating - { - - static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136); - - - static const bool __is_signed = true; - static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18); - static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932); - }; - - template - const int __numeric_traits_floating<_Value>::__max_digits10; - - template - const bool __numeric_traits_floating<_Value>::__is_signed; - - template - const int __numeric_traits_floating<_Value>::__digits10; - - template - const int __numeric_traits_floating<_Value>::__max_exponent10; - - template - struct __numeric_traits - : public __conditional_type::__value, - __numeric_traits_integer<_Value>, - __numeric_traits_floating<_Value> >::__type - { }; - - -} -# 64 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_pair.h" 1 3 -# 69 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_pair.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 80 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_pair.h" 3 - struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; - - - constexpr piecewise_construct_t piecewise_construct = - piecewise_construct_t(); - - - - - template - class tuple; - - template - struct _Index_tuple; - - - - - - - template - struct _PCC - { - template - static constexpr bool _ConstructiblePair() - { - return __and_, - is_constructible<_T2, const _U2&>>::value; - } - - template - static constexpr bool _ImplicitlyConvertiblePair() - { - return __and_, - is_convertible>::value; - } - - template - static constexpr bool _MoveConstructiblePair() - { - return __and_, - is_constructible<_T2, _U2&&>>::value; - } - - template - static constexpr bool _ImplicitlyMoveConvertiblePair() - { - return __and_, - is_convertible<_U2&&, _T2>>::value; - } - - template - static constexpr bool _CopyMovePair() - { - using __do_converts = __and_, - is_convertible<_U2&&, _T2>>; - using __converts = typename conditional<__implicit, - __do_converts, - __not_<__do_converts>>::type; - return __and_, - is_constructible<_T2, _U2&&>, - __converts - >::value; - } - - template - static constexpr bool _MoveCopyPair() - { - using __do_converts = __and_, - is_convertible>; - using __converts = typename conditional<__implicit, - __do_converts, - __not_<__do_converts>>::type; - return __and_, - is_constructible<_T2, const _U2&&>, - __converts - >::value; - } - }; - - template - struct _PCC - { - template - static constexpr bool _ConstructiblePair() - { - return false; - } - - template - static constexpr bool _ImplicitlyConvertiblePair() - { - return false; - } - - template - static constexpr bool _MoveConstructiblePair() - { - return false; - } - - template - static constexpr bool _ImplicitlyMoveConvertiblePair() - { - return false; - } - }; - - - template class __pair_base - { - - template friend struct pair; - __pair_base() = default; - ~__pair_base() = default; - __pair_base(const __pair_base&) = default; - __pair_base& operator=(const __pair_base&) = delete; - - }; -# 210 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_pair.h" 3 - template - struct pair - : private __pair_base<_T1, _T2> - { - typedef _T1 first_type; - typedef _T2 second_type; - - _T1 first; - _T2 second; - - - - - - - template , - __is_implicitly_default_constructible<_U2>> - ::value, bool>::type = true> - - constexpr pair() - : first(), second() { } - - - template , - is_default_constructible<_U2>, - __not_< - __and_<__is_implicitly_default_constructible<_U1>, - __is_implicitly_default_constructible<_U2>>>> - ::value, bool>::type = false> - explicit constexpr pair() - : first(), second() { } -# 256 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_pair.h" 3 - using _PCCP = _PCC; - - - - template() - && _PCCP::template - _ImplicitlyConvertiblePair<_U1, _U2>(), - bool>::type=true> - constexpr pair(const _T1& __a, const _T2& __b) - : first(__a), second(__b) { } - - - template() - && !_PCCP::template - _ImplicitlyConvertiblePair<_U1, _U2>(), - bool>::type=false> - explicit constexpr pair(const _T1& __a, const _T2& __b) - : first(__a), second(__b) { } -# 288 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_pair.h" 3 - template - using _PCCFP = _PCC::value - || !is_same<_T2, _U2>::value, - _T1, _T2>; - - - template::template - _ConstructiblePair<_U1, _U2>() - && _PCCFP<_U1, _U2>::template - _ImplicitlyConvertiblePair<_U1, _U2>(), - bool>::type=true> - constexpr pair(const pair<_U1, _U2>& __p) - : first(__p.first), second(__p.second) { } - - template::template - _ConstructiblePair<_U1, _U2>() - && !_PCCFP<_U1, _U2>::template - _ImplicitlyConvertiblePair<_U1, _U2>(), - bool>::type=false> - explicit constexpr pair(const pair<_U1, _U2>& __p) - : first(__p.first), second(__p.second) { } - - - - constexpr pair(const pair&) = default; - constexpr pair(pair&&) = default; - - - template(), - bool>::type=true> - constexpr pair(_U1&& __x, const _T2& __y) - : first(std::forward<_U1>(__x)), second(__y) { } - - template(), - bool>::type=false> - explicit constexpr pair(_U1&& __x, const _T2& __y) - : first(std::forward<_U1>(__x)), second(__y) { } - - template(), - bool>::type=true> - constexpr pair(const _T1& __x, _U2&& __y) - : first(__x), second(std::forward<_U2>(__y)) { } - - template(), - bool>::type=false> - explicit pair(const _T1& __x, _U2&& __y) - : first(__x), second(std::forward<_U2>(__y)) { } - - template() - && _PCCP::template - _ImplicitlyMoveConvertiblePair<_U1, _U2>(), - bool>::type=true> - constexpr pair(_U1&& __x, _U2&& __y) - : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } - - template() - && !_PCCP::template - _ImplicitlyMoveConvertiblePair<_U1, _U2>(), - bool>::type=false> - explicit constexpr pair(_U1&& __x, _U2&& __y) - : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } - - - template::template - _MoveConstructiblePair<_U1, _U2>() - && _PCCFP<_U1, _U2>::template - _ImplicitlyMoveConvertiblePair<_U1, _U2>(), - bool>::type=true> - constexpr pair(pair<_U1, _U2>&& __p) - : first(std::forward<_U1>(__p.first)), - second(std::forward<_U2>(__p.second)) { } - - template::template - _MoveConstructiblePair<_U1, _U2>() - && !_PCCFP<_U1, _U2>::template - _ImplicitlyMoveConvertiblePair<_U1, _U2>(), - bool>::type=false> - explicit constexpr pair(pair<_U1, _U2>&& __p) - : first(std::forward<_U1>(__p.first)), - second(std::forward<_U2>(__p.second)) { } - - template - - pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); - - pair& - operator=(typename conditional< - __and_, - is_copy_assignable<_T2>>::value, - const pair&, const __nonesuch&>::type __p) - { - first = __p.first; - second = __p.second; - return *this; - } - - pair& - operator=(typename conditional< - __and_, - is_move_assignable<_T2>>::value, - pair&&, __nonesuch&&>::type __p) - noexcept(__and_, - is_nothrow_move_assignable<_T2>>::value) - { - first = std::forward(__p.first); - second = std::forward(__p.second); - return *this; - } - - template - - typename enable_if<__and_, - is_assignable<_T2&, const _U2&>>::value, - pair&>::type - operator=(const pair<_U1, _U2>& __p) - { - first = __p.first; - second = __p.second; - return *this; - } - - template - - typename enable_if<__and_, - is_assignable<_T2&, _U2&&>>::value, - pair&>::type - operator=(pair<_U1, _U2>&& __p) - { - first = std::forward<_U1>(__p.first); - second = std::forward<_U2>(__p.second); - return *this; - } - - - void - swap(pair& __p) - noexcept(__and_<__is_nothrow_swappable<_T1>, - __is_nothrow_swappable<_T2>>::value) - { - using std::swap; - swap(first, __p.first); - swap(second, __p.second); - } - - private: - template - - pair(tuple<_Args1...>&, tuple<_Args2...>&, - _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); - - }; -# 464 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_pair.h" 3 - template - inline constexpr bool - operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) - { return __x.first == __y.first && __x.second == __y.second; } -# 487 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_pair.h" 3 - template - inline constexpr bool - operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) - { return __x.first < __y.first - || (!(__y.first < __x.first) && __x.second < __y.second); } - - - template - inline constexpr bool - operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) - { return !(__x == __y); } - - - template - inline constexpr bool - operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) - { return __y < __x; } - - - template - inline constexpr bool - operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) - { return !(__y < __x); } - - - template - inline constexpr bool - operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) - { return !(__x < __y); } -# 524 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_pair.h" 3 - template - inline - - - typename enable_if<__and_<__is_swappable<_T1>, - __is_swappable<_T2>>::value>::type - - - - swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) - noexcept(noexcept(__x.swap(__y))) - { __x.swap(__y); } - - - template - typename enable_if, - __is_swappable<_T2>>::value>::type - swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; -# 564 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_pair.h" 3 - template - constexpr pair::__type, - typename __decay_and_strip<_T2>::__type> - make_pair(_T1&& __x, _T2&& __y) - { - typedef typename __decay_and_strip<_T1>::__type __ds_type1; - typedef typename __decay_and_strip<_T2>::__type __ds_type2; - typedef pair<__ds_type1, __ds_type2> __pair_type; - return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); - } -# 583 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_pair.h" 3 - -} -# 65 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator_base_types.h" 1 3 -# 62 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator_base_types.h" 3 - -# 63 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator_base_types.h" 3 -# 74 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator_base_types.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 93 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator_base_types.h" 3 - struct input_iterator_tag { }; - - - struct output_iterator_tag { }; - - - struct forward_iterator_tag : public input_iterator_tag { }; - - - - struct bidirectional_iterator_tag : public forward_iterator_tag { }; - - - - struct random_access_iterator_tag : public bidirectional_iterator_tag { }; -# 125 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator_base_types.h" 3 - template - struct iterator - { - - typedef _Category iterator_category; - - typedef _Tp value_type; - - typedef _Distance difference_type; - - typedef _Pointer pointer; - - typedef _Reference reference; - }; -# 149 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator_base_types.h" 3 - template - struct iterator_traits; - - - - - template> - struct __iterator_traits { }; - - - - template - struct __iterator_traits<_Iterator, - __void_t> - { - typedef typename _Iterator::iterator_category iterator_category; - typedef typename _Iterator::value_type value_type; - typedef typename _Iterator::difference_type difference_type; - typedef typename _Iterator::pointer pointer; - typedef typename _Iterator::reference reference; - }; - - - template - struct iterator_traits - : public __iterator_traits<_Iterator> { }; -# 209 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator_base_types.h" 3 - template - struct iterator_traits<_Tp*> - { - typedef random_access_iterator_tag iterator_category; - typedef _Tp value_type; - typedef ptrdiff_t difference_type; - typedef _Tp* pointer; - typedef _Tp& reference; - }; - - - template - struct iterator_traits - { - typedef random_access_iterator_tag iterator_category; - typedef _Tp value_type; - typedef ptrdiff_t difference_type; - typedef const _Tp* pointer; - typedef const _Tp& reference; - }; - - - - - - - template - inline constexpr - typename iterator_traits<_Iter>::iterator_category - __iterator_category(const _Iter&) - { return typename iterator_traits<_Iter>::iterator_category(); } - - - - - template - using __iterator_category_t - = typename iterator_traits<_Iter>::iterator_category; - - template - using _RequireInputIter = - __enable_if_t, - input_iterator_tag>::value>; - - template> - struct __is_random_access_iter - : is_base_of - { - typedef is_base_of _Base; - enum { __value = _Base::value }; - }; - - - - - - - - -} -# 66 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator_base_funcs.h" 1 3 -# 62 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator_base_funcs.h" 3 - -# 63 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator_base_funcs.h" 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/concept_check.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/concept_check.h" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/concept_check.h" 3 -# 65 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator_base_funcs.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/debug/assertions.h" 1 3 -# 66 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator_base_funcs.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - template struct _List_iterator; - template struct _List_const_iterator; - - - template - inline constexpr - typename iterator_traits<_InputIterator>::difference_type - __distance(_InputIterator __first, _InputIterator __last, - input_iterator_tag) - { - - - - typename iterator_traits<_InputIterator>::difference_type __n = 0; - while (__first != __last) - { - ++__first; - ++__n; - } - return __n; - } - - template - inline constexpr - typename iterator_traits<_RandomAccessIterator>::difference_type - __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, - random_access_iterator_tag) - { - - - - return __last - __first; - } - - - - template - ptrdiff_t - __distance(std::_List_iterator<_Tp>, - std::_List_iterator<_Tp>, - input_iterator_tag); - - template - ptrdiff_t - __distance(std::_List_const_iterator<_Tp>, - std::_List_const_iterator<_Tp>, - input_iterator_tag); -# 135 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator_base_funcs.h" 3 - template - inline - typename iterator_traits<_InputIterator>::difference_type - distance(_InputIterator __first, _InputIterator __last) - { - - return std::__distance(__first, __last, - std::__iterator_category(__first)); - } - - template - inline constexpr void - __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) - { - - - ; - while (__n--) - ++__i; - } - - template - inline constexpr void - __advance(_BidirectionalIterator& __i, _Distance __n, - bidirectional_iterator_tag) - { - - - - if (__n > 0) - while (__n--) - ++__i; - else - while (__n++) - --__i; - } - - template - inline constexpr void - __advance(_RandomAccessIterator& __i, _Distance __n, - random_access_iterator_tag) - { - - - - if (__builtin_constant_p(__n) && __n == 1) - ++__i; - else if (__builtin_constant_p(__n) && __n == -1) - --__i; - else - __i += __n; - } -# 200 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator_base_funcs.h" 3 - template - inline void - advance(_InputIterator& __i, _Distance __n) - { - - typename iterator_traits<_InputIterator>::difference_type __d = __n; - std::__advance(__i, __d, std::__iterator_category(__i)); - } - - - - template - inline _InputIterator - next(_InputIterator __x, typename - iterator_traits<_InputIterator>::difference_type __n = 1) - { - - - std::advance(__x, __n); - return __x; - } - - template - inline _BidirectionalIterator - prev(_BidirectionalIterator __x, typename - iterator_traits<_BidirectionalIterator>::difference_type __n = 1) - { - - - - std::advance(__x, -__n); - return __x; - } - - - - -} -# 67 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 1 3 -# 66 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ptr_traits.h" 1 3 -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ptr_traits.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - class __undefined; - - - template - struct __get_first_arg - { using type = __undefined; }; - - template class _Template, typename _Tp, - typename... _Types> - struct __get_first_arg<_Template<_Tp, _Types...>> - { using type = _Tp; }; - - template - using __get_first_arg_t = typename __get_first_arg<_Tp>::type; - - - template - struct __replace_first_arg - { }; - - template class _Template, typename _Up, - typename _Tp, typename... _Types> - struct __replace_first_arg<_Template<_Tp, _Types...>, _Up> - { using type = _Template<_Up, _Types...>; }; - - template - using __replace_first_arg_t = typename __replace_first_arg<_Tp, _Up>::type; - - template - using __make_not_void - = typename conditional::value, __undefined, _Tp>::type; - - - - - - template - struct pointer_traits - { - private: - template - using __element_type = typename _Tp::element_type; - - template - using __difference_type = typename _Tp::difference_type; - - template - struct __rebind : __replace_first_arg<_Tp, _Up> { }; - - template - struct __rebind<_Tp, _Up, __void_t>> - { using type = typename _Tp::template rebind<_Up>; }; - - public: - - using pointer = _Ptr; - - - using element_type - = __detected_or_t<__get_first_arg_t<_Ptr>, __element_type, _Ptr>; - - - using difference_type - = __detected_or_t; - - - template - using rebind = typename __rebind<_Ptr, _Up>::type; - - static _Ptr - pointer_to(__make_not_void& __e) - { return _Ptr::pointer_to(__e); } - - static_assert(!is_same::value, - "pointer type defines element_type or is like SomePointer"); - }; - - - - - - template - struct pointer_traits<_Tp*> - { - - typedef _Tp* pointer; - - typedef _Tp element_type; - - typedef ptrdiff_t difference_type; - - template - using rebind = _Up*; - - - - - - - static pointer - pointer_to(__make_not_void& __r) noexcept - { return std::addressof(__r); } - }; - - - template - using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; - - template - constexpr _Tp* - __to_address(_Tp* __ptr) noexcept - { - static_assert(!std::is_function<_Tp>::value, "not a function pointer"); - return __ptr; - } - - - template - constexpr typename std::pointer_traits<_Ptr>::element_type* - __to_address(const _Ptr& __ptr) - { return std::__to_address(__ptr.operator->()); } -# 210 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ptr_traits.h" 3 - -} -# 67 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 2 3 -# 85 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 124 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - class reverse_iterator - : public iterator::iterator_category, - typename iterator_traits<_Iterator>::value_type, - typename iterator_traits<_Iterator>::difference_type, - typename iterator_traits<_Iterator>::pointer, - typename iterator_traits<_Iterator>::reference> - { - protected: - _Iterator current; - - typedef iterator_traits<_Iterator> __traits_type; - - public: - typedef _Iterator iterator_type; - typedef typename __traits_type::difference_type difference_type; - typedef typename __traits_type::pointer pointer; - typedef typename __traits_type::reference reference; -# 160 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - - reverse_iterator() : current() { } - - - - - explicit - reverse_iterator(iterator_type __x) : current(__x) { } - - - - - - reverse_iterator(const reverse_iterator& __x) - : current(__x.current) { } - - - reverse_iterator& operator=(const reverse_iterator&) = default; - - - - - - - template - - reverse_iterator(const reverse_iterator<_Iter>& __x) - : current(__x.base()) { } - - - - - iterator_type - base() const - { return current; } -# 206 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - reference - operator*() const - { - _Iterator __tmp = current; - return *--__tmp; - } - - - - - - - pointer - operator->() const - - - - - { - - - _Iterator __tmp = current; - --__tmp; - return _S_to_pointer(__tmp); - } - - - - - - - reverse_iterator& - operator++() - { - --current; - return *this; - } - - - - - - - reverse_iterator - operator++(int) - { - reverse_iterator __tmp = *this; - --current; - return __tmp; - } - - - - - - - reverse_iterator& - operator--() - { - ++current; - return *this; - } - - - - - - - reverse_iterator - operator--(int) - { - reverse_iterator __tmp = *this; - ++current; - return __tmp; - } - - - - - - - reverse_iterator - operator+(difference_type __n) const - { return reverse_iterator(current - __n); } - - - - - - - - reverse_iterator& - operator+=(difference_type __n) - { - current -= __n; - return *this; - } - - - - - - - reverse_iterator - operator-(difference_type __n) const - { return reverse_iterator(current + __n); } - - - - - - - - reverse_iterator& - operator-=(difference_type __n) - { - current += __n; - return *this; - } - - - - - - - reference - operator[](difference_type __n) const - { return *(*this + __n); } - - private: - template - static _Tp* - _S_to_pointer(_Tp* __p) - { return __p; } - - template - static pointer - _S_to_pointer(_Tp __t) - { return __t.operator->(); } - }; -# 358 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - inline bool - operator==(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) - { return __x.base() == __y.base(); } - - template - inline bool - operator<(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) - { return __y.base() < __x.base(); } - - template - inline bool - operator!=(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) - { return !(__x == __y); } - - template - inline bool - operator>(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) - { return __y < __x; } - - template - inline bool - operator<=(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) - { return !(__y < __x); } - - template - inline bool - operator>=(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) - { return !(__x < __y); } - - - - template - inline bool - operator==(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - { return __x.base() == __y.base(); } - - template - inline bool - operator<(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - { return __y.base() < __x.base(); } - - template - inline bool - operator!=(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - { return !(__x == __y); } - - template - inline bool - operator>(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - { return __y < __x; } - - template - inline bool - operator<=(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - { return !(__y < __x); } - - template - inline bool - operator>=(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - { return !(__x < __y); } -# 498 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - inline auto - operator-(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - -> decltype(__y.base() - __x.base()) - { return __y.base() - __x.base(); } - - - template - inline reverse_iterator<_Iterator> - operator+(typename reverse_iterator<_Iterator>::difference_type __n, - const reverse_iterator<_Iterator>& __x) - { return reverse_iterator<_Iterator>(__x.base() - __n); } - - - - template - inline reverse_iterator<_Iterator> - __make_reverse_iterator(_Iterator __i) - { return reverse_iterator<_Iterator>(__i); } - - - - - - - - template - inline reverse_iterator<_Iterator> - make_reverse_iterator(_Iterator __i) - { return reverse_iterator<_Iterator>(__i); } -# 539 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - - auto - __niter_base(reverse_iterator<_Iterator> __it) - -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) - { return __make_reverse_iterator(__niter_base(__it.base())); } - - template - struct __is_move_iterator > - : __is_move_iterator<_Iterator> - { }; - - template - - auto - __miter_base(reverse_iterator<_Iterator> __it) - -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) - { return __make_reverse_iterator(__miter_base(__it.base())); } -# 570 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - class back_insert_iterator - : public iterator - { - protected: - _Container* container; - - public: - - typedef _Container container_type; - - - - - - - - explicit - back_insert_iterator(_Container& __x) - : container(std::__addressof(__x)) { } -# 610 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - - back_insert_iterator& - operator=(const typename _Container::value_type& __value) - { - container->push_back(__value); - return *this; - } - - - back_insert_iterator& - operator=(typename _Container::value_type&& __value) - { - container->push_back(std::move(__value)); - return *this; - } - - - - - back_insert_iterator& - operator*() - { return *this; } - - - - back_insert_iterator& - operator++() - { return *this; } - - - - back_insert_iterator - operator++(int) - { return *this; } - }; -# 657 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - - inline back_insert_iterator<_Container> - back_inserter(_Container& __x) - { return back_insert_iterator<_Container>(__x); } -# 673 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - class front_insert_iterator - : public iterator - { - protected: - _Container* container; - - public: - - typedef _Container container_type; - - - - - - - - explicit - front_insert_iterator(_Container& __x) - : container(std::__addressof(__x)) { } -# 713 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - - front_insert_iterator& - operator=(const typename _Container::value_type& __value) - { - container->push_front(__value); - return *this; - } - - - front_insert_iterator& - operator=(typename _Container::value_type&& __value) - { - container->push_front(std::move(__value)); - return *this; - } - - - - - front_insert_iterator& - operator*() - { return *this; } - - - - front_insert_iterator& - operator++() - { return *this; } - - - - front_insert_iterator - operator++(int) - { return *this; } - }; -# 760 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - - inline front_insert_iterator<_Container> - front_inserter(_Container& __x) - { return front_insert_iterator<_Container>(__x); } -# 780 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - class insert_iterator - : public iterator - { - - - - - - - - typedef typename _Container::iterator _Iter; - - protected: - _Container* container; - _Iter iter; - - - public: - - typedef _Container container_type; -# 812 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - - insert_iterator(_Container& __x, _Iter __i) - : container(std::__addressof(__x)), iter(__i) {} -# 848 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - - insert_iterator& - operator=(const typename _Container::value_type& __value) - { - iter = container->insert(iter, __value); - ++iter; - return *this; - } - - - insert_iterator& - operator=(typename _Container::value_type&& __value) - { - iter = container->insert(iter, std::move(__value)); - ++iter; - return *this; - } - - - - - insert_iterator& - operator*() - { return *this; } - - - - insert_iterator& - operator++() - { return *this; } - - - - insert_iterator& - operator++(int) - { return *this; } - }; -# 904 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - inline insert_iterator<_Container> - inserter(_Container& __x, _Iterator __i) - { - return insert_iterator<_Container>(__x, - typename _Container::iterator(__i)); - } - - - - - -} - -namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) -{ - -# 929 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - class __normal_iterator - { - protected: - _Iterator _M_current; - - typedef std::iterator_traits<_Iterator> __traits_type; - - public: - typedef _Iterator iterator_type; - typedef typename __traits_type::iterator_category iterator_category; - typedef typename __traits_type::value_type value_type; - typedef typename __traits_type::difference_type difference_type; - typedef typename __traits_type::reference reference; - typedef typename __traits_type::pointer pointer; - - - - - - constexpr __normal_iterator() noexcept - : _M_current(_Iterator()) { } - - explicit - __normal_iterator(const _Iterator& __i) noexcept - : _M_current(__i) { } - - - template - - __normal_iterator(const __normal_iterator<_Iter, - typename __enable_if< - (std::__are_same<_Iter, typename _Container::pointer>::__value), - _Container>::__type>& __i) noexcept - : _M_current(__i.base()) { } - - - - reference - operator*() const noexcept - { return *_M_current; } - - - pointer - operator->() const noexcept - { return _M_current; } - - - __normal_iterator& - operator++() noexcept - { - ++_M_current; - return *this; - } - - - __normal_iterator - operator++(int) noexcept - { return __normal_iterator(_M_current++); } - - - - __normal_iterator& - operator--() noexcept - { - --_M_current; - return *this; - } - - - __normal_iterator - operator--(int) noexcept - { return __normal_iterator(_M_current--); } - - - - reference - operator[](difference_type __n) const noexcept - { return _M_current[__n]; } - - - __normal_iterator& - operator+=(difference_type __n) noexcept - { _M_current += __n; return *this; } - - - __normal_iterator - operator+(difference_type __n) const noexcept - { return __normal_iterator(_M_current + __n); } - - - __normal_iterator& - operator-=(difference_type __n) noexcept - { _M_current -= __n; return *this; } - - - __normal_iterator - operator-(difference_type __n) const noexcept - { return __normal_iterator(_M_current - __n); } - - - const _Iterator& - base() const noexcept - { return _M_current; } - }; -# 1061 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - - inline bool - operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) - noexcept - { return __lhs.base() == __rhs.base(); } - - template - - inline bool - operator==(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - noexcept - { return __lhs.base() == __rhs.base(); } - - template - - inline bool - operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) - noexcept - { return __lhs.base() != __rhs.base(); } - - template - - inline bool - operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - noexcept - { return __lhs.base() != __rhs.base(); } - - - template - inline bool - operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) - noexcept - { return __lhs.base() < __rhs.base(); } - - template - - inline bool - operator<(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - noexcept - { return __lhs.base() < __rhs.base(); } - - template - inline bool - operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) - noexcept - { return __lhs.base() > __rhs.base(); } - - template - - inline bool - operator>(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - noexcept - { return __lhs.base() > __rhs.base(); } - - template - inline bool - operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) - noexcept - { return __lhs.base() <= __rhs.base(); } - - template - - inline bool - operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - noexcept - { return __lhs.base() <= __rhs.base(); } - - template - inline bool - operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) - noexcept - { return __lhs.base() >= __rhs.base(); } - - template - - inline bool - operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - noexcept - { return __lhs.base() >= __rhs.base(); } - - - - - - - template - - - - inline auto - operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept - -> decltype(__lhs.base() - __rhs.base()) - - - - - - { return __lhs.base() - __rhs.base(); } - - template - - inline typename __normal_iterator<_Iterator, _Container>::difference_type - operator-(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - noexcept - { return __lhs.base() - __rhs.base(); } - - template - - inline __normal_iterator<_Iterator, _Container> - operator+(typename __normal_iterator<_Iterator, _Container>::difference_type - __n, const __normal_iterator<_Iterator, _Container>& __i) - noexcept - { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } - - -} - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - template - - _Iterator - __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) - noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) - { return __it.base(); } -# 1260 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - class move_iterator - { - _Iterator _M_current; - - using __traits_type = iterator_traits<_Iterator>; - - - - using __base_ref = typename __traits_type::reference; - - - public: - using iterator_type = _Iterator; -# 1284 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - typedef typename __traits_type::iterator_category iterator_category; - typedef typename __traits_type::value_type value_type; - typedef typename __traits_type::difference_type difference_type; - - typedef _Iterator pointer; - - - typedef typename conditional::value, - typename remove_reference<__base_ref>::type&&, - __base_ref>::type reference; - - - - move_iterator() - : _M_current() { } - - explicit - move_iterator(iterator_type __i) - : _M_current(std::move(__i)) { } - - template - - move_iterator(const move_iterator<_Iter>& __i) - : _M_current(__i.base()) { } - - - iterator_type - base() const - { return _M_current; } -# 1326 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - reference - operator*() const - { return static_cast(*_M_current); } - - pointer - operator->() const - { return _M_current; } - - move_iterator& - operator++() - { - ++_M_current; - return *this; - } - - move_iterator - operator++(int) - { - move_iterator __tmp = *this; - ++_M_current; - return __tmp; - } - - - - - - - - move_iterator& - operator--() - { - --_M_current; - return *this; - } - - move_iterator - operator--(int) - { - move_iterator __tmp = *this; - --_M_current; - return __tmp; - } - - move_iterator - operator+(difference_type __n) const - { return move_iterator(_M_current + __n); } - - move_iterator& - operator+=(difference_type __n) - { - _M_current += __n; - return *this; - } - - move_iterator - operator-(difference_type __n) const - { return move_iterator(_M_current - __n); } - - move_iterator& - operator-=(difference_type __n) - { - _M_current -= __n; - return *this; - } - - reference - operator[](difference_type __n) const - { return std::move(_M_current[__n]); } -# 1423 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - }; - - template - inline bool - operator==(const move_iterator<_IteratorL>& __x, - const move_iterator<_IteratorR>& __y) - - - - { return __x.base() == __y.base(); } -# 1442 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - inline bool - operator!=(const move_iterator<_IteratorL>& __x, - const move_iterator<_IteratorR>& __y) - { return !(__x == __y); } - - - template - inline bool - operator<(const move_iterator<_IteratorL>& __x, - const move_iterator<_IteratorR>& __y) - - - - { return __x.base() < __y.base(); } - - template - inline bool - operator<=(const move_iterator<_IteratorL>& __x, - const move_iterator<_IteratorR>& __y) - - - - { return !(__y < __x); } - - template - inline bool - operator>(const move_iterator<_IteratorL>& __x, - const move_iterator<_IteratorR>& __y) - - - - { return __y < __x; } - - template - inline bool - operator>=(const move_iterator<_IteratorL>& __x, - const move_iterator<_IteratorR>& __y) - - - - { return !(__x < __y); } -# 1493 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - inline bool - operator==(const move_iterator<_Iterator>& __x, - const move_iterator<_Iterator>& __y) - { return __x.base() == __y.base(); } - - template - inline bool - operator!=(const move_iterator<_Iterator>& __x, - const move_iterator<_Iterator>& __y) - { return !(__x == __y); } - - template - inline bool - operator<(const move_iterator<_Iterator>& __x, - const move_iterator<_Iterator>& __y) - { return __x.base() < __y.base(); } - - template - inline bool - operator<=(const move_iterator<_Iterator>& __x, - const move_iterator<_Iterator>& __y) - { return !(__y < __x); } - - template - inline bool - operator>(const move_iterator<_Iterator>& __x, - const move_iterator<_Iterator>& __y) - { return __y < __x; } - - template - inline bool - operator>=(const move_iterator<_Iterator>& __x, - const move_iterator<_Iterator>& __y) - { return !(__x < __y); } - - - - template - inline auto - operator-(const move_iterator<_IteratorL>& __x, - const move_iterator<_IteratorR>& __y) - -> decltype(__x.base() - __y.base()) - { return __x.base() - __y.base(); } - - template - inline move_iterator<_Iterator> - operator+(typename move_iterator<_Iterator>::difference_type __n, - const move_iterator<_Iterator>& __x) - { return __x + __n; } - - template - inline move_iterator<_Iterator> - make_move_iterator(_Iterator __i) - { return move_iterator<_Iterator>(std::move(__i)); } - - template::value_type>::value, - _Iterator, move_iterator<_Iterator>>::type> - inline _ReturnType - __make_move_if_noexcept_iterator(_Iterator __i) - { return _ReturnType(__i); } - - - - template::value, - const _Tp*, move_iterator<_Tp*>>::type> - inline _ReturnType - __make_move_if_noexcept_iterator(_Tp* __i) - { return _ReturnType(__i); } -# 2156 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - template - auto - __niter_base(move_iterator<_Iterator> __it) - -> decltype(make_move_iterator(__niter_base(__it.base()))) - { return make_move_iterator(__niter_base(__it.base())); } - - template - struct __is_move_iterator > - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template - auto - __miter_base(move_iterator<_Iterator> __it) - -> decltype(__miter_base(__it.base())) - { return __miter_base(__it.base()); } -# 2203 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_iterator.h" 3 - -} -# 68 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 2 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/debug/debug.h" 1 3 -# 48 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/debug/debug.h" 3 -namespace std -{ - namespace __debug { } -} - - - - -namespace __gnu_debug -{ - using namespace std::__debug; - - template - struct _Safe_iterator; -} -# 70 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 2 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/predefined_ops.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/predefined_ops.h" 3 -namespace __gnu_cxx -{ -namespace __ops -{ - struct _Iter_less_iter - { - template - constexpr - bool - operator()(_Iterator1 __it1, _Iterator2 __it2) const - { return *__it1 < *__it2; } - }; - - constexpr - inline _Iter_less_iter - __iter_less_iter() - { return _Iter_less_iter(); } - - struct _Iter_less_val - { - - constexpr _Iter_less_val() = default; - - - - - - explicit - _Iter_less_val(_Iter_less_iter) { } - - template - - bool - operator()(_Iterator __it, _Value& __val) const - { return *__it < __val; } - }; - - - inline _Iter_less_val - __iter_less_val() - { return _Iter_less_val(); } - - - inline _Iter_less_val - __iter_comp_val(_Iter_less_iter) - { return _Iter_less_val(); } - - struct _Val_less_iter - { - - constexpr _Val_less_iter() = default; - - - - - - explicit - _Val_less_iter(_Iter_less_iter) { } - - template - - bool - operator()(_Value& __val, _Iterator __it) const - { return __val < *__it; } - }; - - - inline _Val_less_iter - __val_less_iter() - { return _Val_less_iter(); } - - - inline _Val_less_iter - __val_comp_iter(_Iter_less_iter) - { return _Val_less_iter(); } - - struct _Iter_equal_to_iter - { - template - - bool - operator()(_Iterator1 __it1, _Iterator2 __it2) const - { return *__it1 == *__it2; } - }; - - - inline _Iter_equal_to_iter - __iter_equal_to_iter() - { return _Iter_equal_to_iter(); } - - struct _Iter_equal_to_val - { - template - - bool - operator()(_Iterator __it, _Value& __val) const - { return *__it == __val; } - }; - - - inline _Iter_equal_to_val - __iter_equal_to_val() - { return _Iter_equal_to_val(); } - - - inline _Iter_equal_to_val - __iter_comp_val(_Iter_equal_to_iter) - { return _Iter_equal_to_val(); } - - template - struct _Iter_comp_iter - { - _Compare _M_comp; - - explicit constexpr - _Iter_comp_iter(_Compare __comp) - : _M_comp(std::move(__comp)) - { } - - template - constexpr - bool - operator()(_Iterator1 __it1, _Iterator2 __it2) - { return bool(_M_comp(*__it1, *__it2)); } - }; - - template - constexpr - inline _Iter_comp_iter<_Compare> - __iter_comp_iter(_Compare __comp) - { return _Iter_comp_iter<_Compare>(std::move(__comp)); } - - template - struct _Iter_comp_val - { - _Compare _M_comp; - - - explicit - _Iter_comp_val(_Compare __comp) - : _M_comp(std::move(__comp)) - { } - - - explicit - _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) - : _M_comp(__comp._M_comp) - { } - - - - explicit - _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) - : _M_comp(std::move(__comp._M_comp)) - { } - - - template - - bool - operator()(_Iterator __it, _Value& __val) - { return bool(_M_comp(*__it, __val)); } - }; - - template - - inline _Iter_comp_val<_Compare> - __iter_comp_val(_Compare __comp) - { return _Iter_comp_val<_Compare>(std::move(__comp)); } - - template - - inline _Iter_comp_val<_Compare> - __iter_comp_val(_Iter_comp_iter<_Compare> __comp) - { return _Iter_comp_val<_Compare>(std::move(__comp)); } - - template - struct _Val_comp_iter - { - _Compare _M_comp; - - - explicit - _Val_comp_iter(_Compare __comp) - : _M_comp(std::move(__comp)) - { } - - - explicit - _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) - : _M_comp(__comp._M_comp) - { } - - - - explicit - _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) - : _M_comp(std::move(__comp._M_comp)) - { } - - - template - - bool - operator()(_Value& __val, _Iterator __it) - { return bool(_M_comp(__val, *__it)); } - }; - - template - - inline _Val_comp_iter<_Compare> - __val_comp_iter(_Compare __comp) - { return _Val_comp_iter<_Compare>(std::move(__comp)); } - - template - - inline _Val_comp_iter<_Compare> - __val_comp_iter(_Iter_comp_iter<_Compare> __comp) - { return _Val_comp_iter<_Compare>(std::move(__comp)); } - - template - struct _Iter_equals_val - { - _Value& _M_value; - - - explicit - _Iter_equals_val(_Value& __value) - : _M_value(__value) - { } - - template - - bool - operator()(_Iterator __it) - { return *__it == _M_value; } - }; - - template - - inline _Iter_equals_val<_Value> - __iter_equals_val(_Value& __val) - { return _Iter_equals_val<_Value>(__val); } - - template - struct _Iter_equals_iter - { - _Iterator1 _M_it1; - - - explicit - _Iter_equals_iter(_Iterator1 __it1) - : _M_it1(__it1) - { } - - template - - bool - operator()(_Iterator2 __it2) - { return *__it2 == *_M_it1; } - }; - - template - - inline _Iter_equals_iter<_Iterator> - __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) - { return _Iter_equals_iter<_Iterator>(__it); } - - template - struct _Iter_pred - { - _Predicate _M_pred; - - - explicit - _Iter_pred(_Predicate __pred) - : _M_pred(std::move(__pred)) - { } - - template - - bool - operator()(_Iterator __it) - { return bool(_M_pred(*__it)); } - }; - - template - - inline _Iter_pred<_Predicate> - __pred_iter(_Predicate __pred) - { return _Iter_pred<_Predicate>(std::move(__pred)); } - - template - struct _Iter_comp_to_val - { - _Compare _M_comp; - _Value& _M_value; - - - _Iter_comp_to_val(_Compare __comp, _Value& __value) - : _M_comp(std::move(__comp)), _M_value(__value) - { } - - template - - bool - operator()(_Iterator __it) - { return bool(_M_comp(*__it, _M_value)); } - }; - - template - _Iter_comp_to_val<_Compare, _Value> - - __iter_comp_val(_Compare __comp, _Value &__val) - { - return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val); - } - - template - struct _Iter_comp_to_iter - { - _Compare _M_comp; - _Iterator1 _M_it1; - - - _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) - : _M_comp(std::move(__comp)), _M_it1(__it1) - { } - - template - - bool - operator()(_Iterator2 __it2) - { return bool(_M_comp(*__it2, *_M_it1)); } - }; - - template - - inline _Iter_comp_to_iter<_Compare, _Iterator> - __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) - { - return _Iter_comp_to_iter<_Compare, _Iterator>( - std::move(__comp._M_comp), __it); - } - - template - struct _Iter_negate - { - _Predicate _M_pred; - - - explicit - _Iter_negate(_Predicate __pred) - : _M_pred(std::move(__pred)) - { } - - template - - bool - operator()(_Iterator __it) - { return !bool(_M_pred(*__it)); } - }; - - template - - inline _Iter_negate<_Predicate> - __negate(_Iter_pred<_Predicate> __pred) - { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); } - -} -} -# 72 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 2 3 - - - - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - template - constexpr - inline int - __memcmp(const _Tp* __first1, const _Up* __first2, size_t __num) - { - - static_assert(sizeof(_Tp) == sizeof(_Up), "can be compared with memcmp"); -# 105 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num); - } -# 149 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline void - iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) - { - - - - -# 182 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - swap(*__a, *__b); - - } -# 198 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - _ForwardIterator2 - swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2) - { - - - - - - ; - - for (; __first1 != __last1; ++__first1, (void)++__first2) - std::iter_swap(__first1, __first2); - return __first2; - } -# 227 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - constexpr - inline const _Tp& - min(const _Tp& __a, const _Tp& __b) - { - - - - if (__b < __a) - return __b; - return __a; - } -# 251 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - constexpr - inline const _Tp& - max(const _Tp& __a, const _Tp& __b) - { - - - - if (__a < __b) - return __b; - return __a; - } -# 275 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - constexpr - inline const _Tp& - min(const _Tp& __a, const _Tp& __b, _Compare __comp) - { - - if (__comp(__b, __a)) - return __b; - return __a; - } -# 297 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - constexpr - inline const _Tp& - max(const _Tp& __a, const _Tp& __b, _Compare __comp) - { - - if (__comp(__a, __b)) - return __b; - return __a; - } - - - - template - - inline _Iterator - __niter_base(_Iterator __it) - noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) - { return __it; } - - - - - template - - inline _From - __niter_wrap(_From __from, _To __res) - { return __from + (__res - std::__niter_base(__from)); } - - - template - - inline _Iterator - __niter_wrap(const _Iterator&, _Iterator __res) - { return __res; } - - - - - - - - template - struct __copy_move - { - template - - static _OI - __copy_m(_II __first, _II __last, _OI __result) - { - for (; __first != __last; ++__result, (void)++__first) - *__result = *__first; - return __result; - } - }; - - - template - struct __copy_move - { - template - - static _OI - __copy_m(_II __first, _II __last, _OI __result) - { - for (; __first != __last; ++__result, (void)++__first) - *__result = std::move(*__first); - return __result; - } - }; - - - template<> - struct __copy_move - { - template - - static _OI - __copy_m(_II __first, _II __last, _OI __result) - { - typedef typename iterator_traits<_II>::difference_type _Distance; - for(_Distance __n = __last - __first; __n > 0; --__n) - { - *__result = *__first; - ++__first; - ++__result; - } - return __result; - } - }; - - - template<> - struct __copy_move - { - template - - static _OI - __copy_m(_II __first, _II __last, _OI __result) - { - typedef typename iterator_traits<_II>::difference_type _Distance; - for(_Distance __n = __last - __first; __n > 0; --__n) - { - *__result = std::move(*__first); - ++__first; - ++__result; - } - return __result; - } - }; - - - template - struct __copy_move<_IsMove, true, random_access_iterator_tag> - { - template - - static _Tp* - __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) - { - - using __assignable = conditional<_IsMove, - is_move_assignable<_Tp>, - is_copy_assignable<_Tp>>; - - static_assert( __assignable::type::value, "type is not assignable" ); - - const ptrdiff_t _Num = __last - __first; - if (_Num) - __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); - return __result + _Num; - } - }; - - - - template - struct char_traits; - - template - class istreambuf_iterator; - - template - class ostreambuf_iterator; - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type - __copy_move_a2(_CharT*, _CharT*, - ostreambuf_iterator<_CharT, char_traits<_CharT> >); - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type - __copy_move_a2(const _CharT*, const _CharT*, - ostreambuf_iterator<_CharT, char_traits<_CharT> >); - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - _CharT*>::__type - __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, - istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); - - template - - inline _OI - __copy_move_a2(_II __first, _II __last, _OI __result) - { - typedef typename iterator_traits<_II>::iterator_category _Category; - - - - - - return std::__copy_move<_IsMove, __memcpyable<_OI, _II>::__value, - _Category>::__copy_m(__first, __last, __result); - } - - - - template - struct _Deque_iterator; - - - - template - _OI - __copy_move_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, - std::_Deque_iterator<_Tp, _Ref, _Ptr>, - _OI); - - template - std::_Deque_iterator<_OTp, _OTp&, _OTp*> - __copy_move_a1(std::_Deque_iterator<_ITp, _IRef, _IPtr>, - std::_Deque_iterator<_ITp, _IRef, _IPtr>, - std::_Deque_iterator<_OTp, _OTp&, _OTp*>); - - template - typename __gnu_cxx::__enable_if< - __is_random_access_iter<_II>::__value, - std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type - __copy_move_a1(_II, _II, std::_Deque_iterator<_Tp, _Tp&, _Tp*>); - - template - - inline _OI - __copy_move_a1(_II __first, _II __last, _OI __result) - { return std::__copy_move_a2<_IsMove>(__first, __last, __result); } - - template - - inline _OI - __copy_move_a(_II __first, _II __last, _OI __result) - { - return std::__niter_wrap(__result, - std::__copy_move_a1<_IsMove>(std::__niter_base(__first), - std::__niter_base(__last), - std::__niter_base(__result))); - } - - template - _OI - __copy_move_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, - const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, - _OI); - - template - __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> - __copy_move_a(_II, _II, - const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); - - template - ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> - __copy_move_a(const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, - const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, - const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); -# 557 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline _OI - copy(_II __first, _II __last, _OI __result) - { - - - - - ; - - return std::__copy_move_a<__is_move_iterator<_II>::__value> - (std::__miter_base(__first), std::__miter_base(__last), __result); - } -# 590 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline _OI - move(_II __first, _II __last, _OI __result) - { - - - - - ; - - return std::__copy_move_a(std::__miter_base(__first), - std::__miter_base(__last), __result); - } - - - - - - - template - struct __copy_move_backward - { - template - - static _BI2 - __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) - { - while (__first != __last) - *--__result = *--__last; - return __result; - } - }; - - - template - struct __copy_move_backward - { - template - - static _BI2 - __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) - { - while (__first != __last) - *--__result = std::move(*--__last); - return __result; - } - }; - - - template<> - struct __copy_move_backward - { - template - - static _BI2 - __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) - { - typename iterator_traits<_BI1>::difference_type - __n = __last - __first; - for (; __n > 0; --__n) - *--__result = *--__last; - return __result; - } - }; - - - template<> - struct __copy_move_backward - { - template - - static _BI2 - __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) - { - typename iterator_traits<_BI1>::difference_type - __n = __last - __first; - for (; __n > 0; --__n) - *--__result = std::move(*--__last); - return __result; - } - }; - - - template - struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> - { - template - - static _Tp* - __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) - { - - using __assignable = conditional<_IsMove, - is_move_assignable<_Tp>, - is_copy_assignable<_Tp>>; - - static_assert( __assignable::type::value, "type is not assignable" ); - - const ptrdiff_t _Num = __last - __first; - if (_Num) - __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); - return __result - _Num; - } - }; - - template - - inline _BI2 - __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) - { - typedef typename iterator_traits<_BI1>::iterator_category _Category; - - - - - - return std::__copy_move_backward<_IsMove, - __memcpyable<_BI2, _BI1>::__value, - _Category>::__copy_move_b(__first, - __last, - __result); - } - - template - - inline _BI2 - __copy_move_backward_a1(_BI1 __first, _BI1 __last, _BI2 __result) - { return std::__copy_move_backward_a2<_IsMove>(__first, __last, __result); } - - template - _OI - __copy_move_backward_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, - std::_Deque_iterator<_Tp, _Ref, _Ptr>, - _OI); - - template - std::_Deque_iterator<_OTp, _OTp&, _OTp*> - __copy_move_backward_a1( - std::_Deque_iterator<_ITp, _IRef, _IPtr>, - std::_Deque_iterator<_ITp, _IRef, _IPtr>, - std::_Deque_iterator<_OTp, _OTp&, _OTp*>); - - template - typename __gnu_cxx::__enable_if< - __is_random_access_iter<_II>::__value, - std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type - __copy_move_backward_a1(_II, _II, - std::_Deque_iterator<_Tp, _Tp&, _Tp*>); - - template - - inline _OI - __copy_move_backward_a(_II __first, _II __last, _OI __result) - { - return std::__niter_wrap(__result, - std::__copy_move_backward_a1<_IsMove> - (std::__niter_base(__first), std::__niter_base(__last), - std::__niter_base(__result))); - } - - template - _OI - __copy_move_backward_a( - const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, - const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, - _OI); - - template - __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> - __copy_move_backward_a(_II, _II, - const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); - - template - ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> - __copy_move_backward_a( - const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, - const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, - const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); -# 794 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline _BI2 - copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) - { - - - - - - - ; - - return std::__copy_move_backward_a<__is_move_iterator<_BI1>::__value> - (std::__miter_base(__first), std::__miter_base(__last), __result); - } -# 830 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline _BI2 - move_backward(_BI1 __first, _BI1 __last, _BI2 __result) - { - - - - - - - ; - - return std::__copy_move_backward_a(std::__miter_base(__first), - std::__miter_base(__last), - __result); - } - - - - - - - template - - inline typename - __gnu_cxx::__enable_if::__value, void>::__type - __fill_a1(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __value) - { - for (; __first != __last; ++__first) - *__first = __value; - } - - template - - inline typename - __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type - __fill_a1(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __value) - { - const _Tp __tmp = __value; - for (; __first != __last; ++__first) - *__first = __tmp; - } - - - template - inline typename - __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type - __fill_a1(_Tp* __first, _Tp* __last, const _Tp& __c) - { - const _Tp __tmp = __c; - if (const size_t __len = __last - __first) - __builtin_memset(__first, static_cast(__tmp), __len); - } - - template - - inline void - __fill_a1(::__gnu_cxx::__normal_iterator<_Ite, _Cont> __first, - ::__gnu_cxx::__normal_iterator<_Ite, _Cont> __last, - const _Tp& __value) - { std::__fill_a1(__first.base(), __last.base(), __value); } - - template - void - __fill_a1(const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, - const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, - const _VTp&); - - template - - inline void - __fill_a(_FIte __first, _FIte __last, const _Tp& __value) - { std::__fill_a1(__first, __last, __value); } - - template - void - __fill_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, - const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, - const _Tp&); -# 925 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline void - fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) - { - - - - ; - - std::__fill_a(__first, __last, __value); - } - - - inline constexpr int - __size_to_integer(int __n) { return __n; } - inline constexpr unsigned - __size_to_integer(unsigned __n) { return __n; } - inline constexpr long - __size_to_integer(long __n) { return __n; } - inline constexpr unsigned long - __size_to_integer(unsigned long __n) { return __n; } - inline constexpr long long - __size_to_integer(long long __n) { return __n; } - inline constexpr unsigned long long - __size_to_integer(unsigned long long __n) { return __n; } - - - inline constexpr __int128 - __size_to_integer(__int128 __n) { return __n; } - inline constexpr unsigned __int128 - __size_to_integer(unsigned __int128 __n) { return __n; } -# 977 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - inline constexpr long long - __size_to_integer(float __n) { return __n; } - inline constexpr long long - __size_to_integer(double __n) { return __n; } - inline constexpr long long - __size_to_integer(long double __n) { return __n; } - - inline constexpr long long - __size_to_integer(__float128 __n) { return __n; } - - - template - - inline typename - __gnu_cxx::__enable_if::__value, _OutputIterator>::__type - __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) - { - for (; __n > 0; --__n, (void) ++__first) - *__first = __value; - return __first; - } - - template - - inline typename - __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type - __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) - { - const _Tp __tmp = __value; - for (; __n > 0; --__n, (void) ++__first) - *__first = __tmp; - return __first; - } - - template - ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> - __fill_n_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>& __first, - _Size __n, const _Tp& __value, - std::input_iterator_tag); - - template - - inline _OutputIterator - __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, - std::output_iterator_tag) - { - - static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); - - return __fill_n_a1(__first, __n, __value); - } - - template - - inline _OutputIterator - __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, - std::input_iterator_tag) - { - - static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); - - return __fill_n_a1(__first, __n, __value); - } - - template - - inline _OutputIterator - __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, - std::random_access_iterator_tag) - { - - static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); - - if (__n <= 0) - return __first; - - ; - - std::__fill_a(__first, __first + __n, __value); - return __first + __n; - } -# 1077 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline _OI - fill_n(_OI __first, _Size __n, const _Tp& __value) - { - - - - return std::__fill_n_a(__first, std::__size_to_integer(__n), __value, - std::__iterator_category(__first)); - } - - template - struct __equal - { - template - - static bool - equal(_II1 __first1, _II1 __last1, _II2 __first2) - { - for (; __first1 != __last1; ++__first1, (void) ++__first2) - if (!(*__first1 == *__first2)) - return false; - return true; - } - }; - - template<> - struct __equal - { - template - - static bool - equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) - { - if (const size_t __len = (__last1 - __first1)) - return !std::__memcmp(__first1, __first2, __len); - return true; - } - }; - - template - typename __gnu_cxx::__enable_if< - __is_random_access_iter<_II>::__value, bool>::__type - __equal_aux1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, - std::_Deque_iterator<_Tp, _Ref, _Ptr>, - _II); - - template - bool - __equal_aux1(std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, - std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, - std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); - - template - typename __gnu_cxx::__enable_if< - __is_random_access_iter<_II>::__value, bool>::__type - __equal_aux1(_II, _II, - std::_Deque_iterator<_Tp, _Ref, _Ptr>); - - template - - inline bool - __equal_aux1(_II1 __first1, _II1 __last1, _II2 __first2) - { - typedef typename iterator_traits<_II1>::value_type _ValueType1; - const bool __simple = ((__is_integer<_ValueType1>::__value - || __is_pointer<_ValueType1>::__value) - && __memcmpable<_II1, _II2>::__value); - return std::__equal<__simple>::equal(__first1, __last1, __first2); - } - - template - - inline bool - __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) - { - return std::__equal_aux1(std::__niter_base(__first1), - std::__niter_base(__last1), - std::__niter_base(__first2)); - } - - template - bool - __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, - const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, - _II2); - - template - bool - __equal_aux(_II1, _II1, - const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); - - template - bool - __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, - const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, - const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); - - template - struct __lc_rai - { - template - - static _II1 - __newlast1(_II1, _II1 __last1, _II2, _II2) - { return __last1; } - - template - - static bool - __cnd2(_II __first, _II __last) - { return __first != __last; } - }; - - template<> - struct __lc_rai - { - template - - static _RAI1 - __newlast1(_RAI1 __first1, _RAI1 __last1, - _RAI2 __first2, _RAI2 __last2) - { - const typename iterator_traits<_RAI1>::difference_type - __diff1 = __last1 - __first1; - const typename iterator_traits<_RAI2>::difference_type - __diff2 = __last2 - __first2; - return __diff2 < __diff1 ? __first1 + __diff2 : __last1; - } - - template - static bool - __cnd2(_RAI, _RAI) - { return true; } - }; - - template - - bool - __lexicographical_compare_impl(_II1 __first1, _II1 __last1, - _II2 __first2, _II2 __last2, - _Compare __comp) - { - typedef typename iterator_traits<_II1>::iterator_category _Category1; - typedef typename iterator_traits<_II2>::iterator_category _Category2; - typedef std::__lc_rai<_Category1, _Category2> __rai_type; - - __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); - for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); - ++__first1, (void)++__first2) - { - if (__comp(__first1, __first2)) - return true; - if (__comp(__first2, __first1)) - return false; - } - return __first1 == __last1 && __first2 != __last2; - } - - template - struct __lexicographical_compare - { - template - - static bool - __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) - { - using __gnu_cxx::__ops::__iter_less_iter; - return std::__lexicographical_compare_impl(__first1, __last1, - __first2, __last2, - __iter_less_iter()); - } - }; - - template<> - struct __lexicographical_compare - { - template - - static bool - __lc(const _Tp* __first1, const _Tp* __last1, - const _Up* __first2, const _Up* __last2) - { - const size_t __len1 = __last1 - __first1; - const size_t __len2 = __last2 - __first2; - if (const size_t __len = std::min(__len1, __len2)) - if (int __result = std::__memcmp(__first1, __first2, __len)) - return __result < 0; - return __len1 < __len2; - } - }; - - template - - inline bool - __lexicographical_compare_aux(_II1 __first1, _II1 __last1, - _II2 __first2, _II2 __last2) - { - typedef typename iterator_traits<_II1>::value_type _ValueType1; - typedef typename iterator_traits<_II2>::value_type _ValueType2; - const bool __simple = - (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value - && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed - && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed - && __is_pointer<_II1>::__value - && __is_pointer<_II2>::__value - - - - - - - - ); - - return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, - __first2, __last2); - } - - template - - _ForwardIterator - __lower_bound(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __val, _Compare __comp) - { - typedef typename iterator_traits<_ForwardIterator>::difference_type - _DistanceType; - - _DistanceType __len = std::distance(__first, __last); - - while (__len > 0) - { - _DistanceType __half = __len >> 1; - _ForwardIterator __middle = __first; - std::advance(__middle, __half); - if (__comp(__middle, __val)) - { - __first = __middle; - ++__first; - __len = __len - __half - 1; - } - else - __len = __half; - } - return __first; - } -# 1338 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline _ForwardIterator - lower_bound(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __val) - { - - - - - ; - - return std::__lower_bound(__first, __last, __val, - __gnu_cxx::__ops::__iter_less_val()); - } - - - - inline constexpr int - __lg(int __n) - { return (int)sizeof(int) * 8 - 1 - __builtin_clz(__n); } - - inline constexpr unsigned - __lg(unsigned __n) - { return (int)sizeof(int) * 8 - 1 - __builtin_clz(__n); } - - inline constexpr long - __lg(long __n) - { return (int)sizeof(long) * 8 - 1 - __builtin_clzl(__n); } - - inline constexpr unsigned long - __lg(unsigned long __n) - { return (int)sizeof(long) * 8 - 1 - __builtin_clzl(__n); } - - inline constexpr long long - __lg(long long __n) - { return (int)sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } - - inline constexpr unsigned long long - __lg(unsigned long long __n) - { return (int)sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } - - -# 1394 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline bool - equal(_II1 __first1, _II1 __last1, _II2 __first2) - { - - - - - - - ; - - return std::__equal_aux(__first1, __last1, __first2); - } -# 1425 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline bool - equal(_IIter1 __first1, _IIter1 __last1, - _IIter2 __first2, _BinaryPredicate __binary_pred) - { - - - - ; - - for (; __first1 != __last1; ++__first1, (void)++__first2) - if (!bool(__binary_pred(*__first1, *__first2))) - return false; - return true; - } - - - - template - - inline bool - __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) - { - using _RATag = random_access_iterator_tag; - using _Cat1 = typename iterator_traits<_II1>::iterator_category; - using _Cat2 = typename iterator_traits<_II2>::iterator_category; - using _RAIters = __and_, is_same<_Cat2, _RATag>>; - if (_RAIters()) - { - auto __d1 = std::distance(__first1, __last1); - auto __d2 = std::distance(__first2, __last2); - if (__d1 != __d2) - return false; - return std::equal(__first1, __last1, __first2); - } - - for (; __first1 != __last1 && __first2 != __last2; - ++__first1, (void)++__first2) - if (!(*__first1 == *__first2)) - return false; - return __first1 == __last1 && __first2 == __last2; - } - - - template - - inline bool - __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, - _BinaryPredicate __binary_pred) - { - using _RATag = random_access_iterator_tag; - using _Cat1 = typename iterator_traits<_II1>::iterator_category; - using _Cat2 = typename iterator_traits<_II2>::iterator_category; - using _RAIters = __and_, is_same<_Cat2, _RATag>>; - if (_RAIters()) - { - auto __d1 = std::distance(__first1, __last1); - auto __d2 = std::distance(__first2, __last2); - if (__d1 != __d2) - return false; - return std::equal(__first1, __last1, __first2, - __binary_pred); - } - - for (; __first1 != __last1 && __first2 != __last2; - ++__first1, (void)++__first2) - if (!bool(__binary_pred(*__first1, *__first2))) - return false; - return __first1 == __last1 && __first2 == __last2; - } -# 1515 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline bool - equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) - { - - - - - - - ; - ; - - return std::__equal4(__first1, __last1, __first2, __last2); - } -# 1548 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline bool - equal(_IIter1 __first1, _IIter1 __last1, - _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary_pred) - { - - - - ; - ; - - return std::__equal4(__first1, __last1, __first2, __last2, - __binary_pred); - } -# 1580 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline bool - lexicographical_compare(_II1 __first1, _II1 __last1, - _II2 __first2, _II2 __last2) - { - - - - - - - - - - ; - ; - - return std::__lexicographical_compare_aux(std::__niter_base(__first1), - std::__niter_base(__last1), - std::__niter_base(__first2), - std::__niter_base(__last2)); - } -# 1617 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline bool - lexicographical_compare(_II1 __first1, _II1 __last1, - _II2 __first2, _II2 __last2, _Compare __comp) - { - - - - ; - ; - - return std::__lexicographical_compare_impl - (__first1, __last1, __first2, __last2, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } -# 1731 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - pair<_InputIterator1, _InputIterator2> - __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _BinaryPredicate __binary_pred) - { - while (__first1 != __last1 && __binary_pred(__first1, __first2)) - { - ++__first1; - ++__first2; - } - return pair<_InputIterator1, _InputIterator2>(__first1, __first2); - } -# 1759 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline pair<_InputIterator1, _InputIterator2> - mismatch(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2) - { - - - - - - - ; - - return std::__mismatch(__first1, __last1, __first2, - __gnu_cxx::__ops::__iter_equal_to_iter()); - } -# 1793 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline pair<_InputIterator1, _InputIterator2> - mismatch(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _BinaryPredicate __binary_pred) - { - - - - ; - - return std::__mismatch(__first1, __last1, __first2, - __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); - } - - - - template - - pair<_InputIterator1, _InputIterator2> - __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _BinaryPredicate __binary_pred) - { - while (__first1 != __last1 && __first2 != __last2 - && __binary_pred(__first1, __first2)) - { - ++__first1; - ++__first2; - } - return pair<_InputIterator1, _InputIterator2>(__first1, __first2); - } -# 1842 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline pair<_InputIterator1, _InputIterator2> - mismatch(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2) - { - - - - - - - ; - ; - - return std::__mismatch(__first1, __last1, __first2, __last2, - __gnu_cxx::__ops::__iter_equal_to_iter()); - } -# 1878 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline pair<_InputIterator1, _InputIterator2> - mismatch(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _BinaryPredicate __binary_pred) - { - - - - ; - ; - - return std::__mismatch(__first1, __last1, __first2, __last2, - __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); - } - - - - - - template - - inline _InputIterator - __find_if(_InputIterator __first, _InputIterator __last, - _Predicate __pred, input_iterator_tag) - { - while (__first != __last && !__pred(__first)) - ++__first; - return __first; - } - - - template - - _RandomAccessIterator - __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Predicate __pred, random_access_iterator_tag) - { - typename iterator_traits<_RandomAccessIterator>::difference_type - __trip_count = (__last - __first) >> 2; - - for (; __trip_count > 0; --__trip_count) - { - if (__pred(__first)) - return __first; - ++__first; - - if (__pred(__first)) - return __first; - ++__first; - - if (__pred(__first)) - return __first; - ++__first; - - if (__pred(__first)) - return __first; - ++__first; - } - - switch (__last - __first) - { - case 3: - if (__pred(__first)) - return __first; - ++__first; - case 2: - if (__pred(__first)) - return __first; - ++__first; - case 1: - if (__pred(__first)) - return __first; - ++__first; - case 0: - default: - return __last; - } - } - - template - - inline _Iterator - __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) - { - return __find_if(__first, __last, __pred, - std::__iterator_category(__first)); - } - - template - - typename iterator_traits<_InputIterator>::difference_type - __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) - { - typename iterator_traits<_InputIterator>::difference_type __n = 0; - for (; __first != __last; ++__first) - if (__pred(__first)) - ++__n; - return __n; - } - - - template - - bool - __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _BinaryPredicate __pred) - { - - - for (; __first1 != __last1; ++__first1, (void)++__first2) - if (!__pred(__first1, __first2)) - break; - - if (__first1 == __last1) - return true; - - - - _ForwardIterator2 __last2 = __first2; - std::advance(__last2, std::distance(__first1, __last1)); - for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) - { - if (__scan != std::__find_if(__first1, __scan, - __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) - continue; - - auto __matches - = std::__count_if(__first2, __last2, - __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); - if (0 == __matches || - std::__count_if(__scan, __last1, - __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) - != __matches) - return false; - } - return true; - } -# 2032 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algobase.h" 3 - template - - inline bool - is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2) - { - - - - - - - ; - - return std::__is_permutation(__first1, __last1, __first2, - __gnu_cxx::__ops::__iter_equal_to_iter()); - } - - - -} -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/char_traits.h" 2 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 3 - - - - -# 1 "/usr/include/wchar.h" 1 3 4 -# 45 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 2 3 -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/char_traits.h" 2 3 -# 50 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/char_traits.h" 3 -namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) -{ - -# 64 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/char_traits.h" 3 - template - struct _Char_types - { - typedef unsigned long int_type; - typedef std::streampos pos_type; - typedef std::streamoff off_type; - typedef std::mbstate_t state_type; - }; -# 89 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/char_traits.h" 3 - template - struct char_traits - { - typedef _CharT char_type; - typedef typename _Char_types<_CharT>::int_type int_type; - typedef typename _Char_types<_CharT>::pos_type pos_type; - typedef typename _Char_types<_CharT>::off_type off_type; - typedef typename _Char_types<_CharT>::state_type state_type; - - - - - static constexpr void - assign(char_type& __c1, const char_type& __c2) - { __c1 = __c2; } - - static constexpr bool - eq(const char_type& __c1, const char_type& __c2) - { return __c1 == __c2; } - - static constexpr bool - lt(const char_type& __c1, const char_type& __c2) - { return __c1 < __c2; } - - static constexpr int - compare(const char_type* __s1, const char_type* __s2, std::size_t __n); - - static constexpr std::size_t - length(const char_type* __s); - - static constexpr const char_type* - find(const char_type* __s, std::size_t __n, const char_type& __a); - - static char_type* - move(char_type* __s1, const char_type* __s2, std::size_t __n); - - static char_type* - copy(char_type* __s1, const char_type* __s2, std::size_t __n); - - static char_type* - assign(char_type* __s, std::size_t __n, char_type __a); - - static constexpr char_type - to_char_type(const int_type& __c) - { return static_cast(__c); } - - static constexpr int_type - to_int_type(const char_type& __c) - { return static_cast(__c); } - - static constexpr bool - eq_int_type(const int_type& __c1, const int_type& __c2) - { return __c1 == __c2; } - - static constexpr int_type - eof() - { return static_cast(-1); } - - static constexpr int_type - not_eof(const int_type& __c) - { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } - }; - - template - constexpr int - char_traits<_CharT>:: - compare(const char_type* __s1, const char_type* __s2, std::size_t __n) - { - for (std::size_t __i = 0; __i < __n; ++__i) - if (lt(__s1[__i], __s2[__i])) - return -1; - else if (lt(__s2[__i], __s1[__i])) - return 1; - return 0; - } - - template - constexpr std::size_t - char_traits<_CharT>:: - length(const char_type* __p) - { - std::size_t __i = 0; - while (!eq(__p[__i], char_type())) - ++__i; - return __i; - } - - template - constexpr const typename char_traits<_CharT>::char_type* - char_traits<_CharT>:: - find(const char_type* __s, std::size_t __n, const char_type& __a) - { - for (std::size_t __i = 0; __i < __n; ++__i) - if (eq(__s[__i], __a)) - return __s + __i; - return 0; - } - - template - - typename char_traits<_CharT>::char_type* - char_traits<_CharT>:: - move(char_type* __s1, const char_type* __s2, std::size_t __n) - { - if (__n == 0) - return __s1; -# 205 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/char_traits.h" 3 - return static_cast<_CharT*>(__builtin_memmove(__s1, __s2, - __n * sizeof(char_type))); - } - - template - - typename char_traits<_CharT>::char_type* - char_traits<_CharT>:: - copy(char_type* __s1, const char_type* __s2, std::size_t __n) - { - - std::copy(__s2, __s2 + __n, __s1); - return __s1; - } - - template - - typename char_traits<_CharT>::char_type* - char_traits<_CharT>:: - assign(char_type* __s, std::size_t __n, char_type __a) - { - - std::fill_n(__s, __n, __a); - return __s; - } - - -} - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 302 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/char_traits.h" 3 - template - struct char_traits : public __gnu_cxx::char_traits<_CharT> - { }; - - - - template<> - struct char_traits - { - typedef char char_type; - typedef int int_type; - typedef streampos pos_type; - typedef streamoff off_type; - typedef mbstate_t state_type; - - - - - static void - assign(char_type& __c1, const char_type& __c2) noexcept - { __c1 = __c2; } - - static constexpr bool - eq(const char_type& __c1, const char_type& __c2) noexcept - { return __c1 == __c2; } - - static constexpr bool - lt(const char_type& __c1, const char_type& __c2) noexcept - { - - return (static_cast(__c1) - < static_cast(__c2)); - } - - static int - compare(const char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return 0; - - - - - - - return __builtin_memcmp(__s1, __s2, __n); - } - - static size_t - length(const char_type* __s) - { - - - - - return __builtin_strlen(__s); - } - - static const char_type* - find(const char_type* __s, size_t __n, const char_type& __a) - { - if (__n == 0) - return 0; - - - - - - - return static_cast(__builtin_memchr(__s, __a, __n)); - } - - static char_type* - move(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; - - - - - return static_cast(__builtin_memmove(__s1, __s2, __n)); - } - - static char_type* - copy(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; - - - - - return static_cast(__builtin_memcpy(__s1, __s2, __n)); - } - - static char_type* - assign(char_type* __s, size_t __n, char_type __a) - { - if (__n == 0) - return __s; - - - - - return static_cast(__builtin_memset(__s, __a, __n)); - } - - static constexpr char_type - to_char_type(const int_type& __c) noexcept - { return static_cast(__c); } - - - - static constexpr int_type - to_int_type(const char_type& __c) noexcept - { return static_cast(static_cast(__c)); } - - static constexpr bool - eq_int_type(const int_type& __c1, const int_type& __c2) noexcept - { return __c1 == __c2; } - - static constexpr int_type - eof() noexcept - { return static_cast(-1); } - - static constexpr int_type - not_eof(const int_type& __c) noexcept - { return (__c == eof()) ? 0 : __c; } - }; - - - - - template<> - struct char_traits - { - typedef wchar_t char_type; - typedef wint_t int_type; - typedef streamoff off_type; - typedef wstreampos pos_type; - typedef mbstate_t state_type; - - - - - static void - assign(char_type& __c1, const char_type& __c2) noexcept - { __c1 = __c2; } - - static constexpr bool - eq(const char_type& __c1, const char_type& __c2) noexcept - { return __c1 == __c2; } - - static constexpr bool - lt(const char_type& __c1, const char_type& __c2) noexcept - { return __c1 < __c2; } - - static int - compare(const char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return 0; - - - - - - - return wmemcmp(__s1, __s2, __n); - } - - static size_t - length(const char_type* __s) - { - - - - - return wcslen(__s); - } - - static const char_type* - find(const char_type* __s, size_t __n, const char_type& __a) - { - if (__n == 0) - return 0; - - - - - - - return wmemchr(__s, __a, __n); - } - - static char_type* - move(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; - - - - - return wmemmove(__s1, __s2, __n); - } - - static char_type* - copy(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; - - - - - return wmemcpy(__s1, __s2, __n); - } - - static char_type* - assign(char_type* __s, size_t __n, char_type __a) - { - if (__n == 0) - return __s; - - - - - return wmemset(__s, __a, __n); - } - - static constexpr char_type - to_char_type(const int_type& __c) noexcept - { return char_type(__c); } - - static constexpr int_type - to_int_type(const char_type& __c) noexcept - { return int_type(__c); } - - static constexpr bool - eq_int_type(const int_type& __c1, const int_type& __c2) noexcept - { return __c1 == __c2; } - - static constexpr int_type - eof() noexcept - { return static_cast((0xffffffffu)); } - - static constexpr int_type - not_eof(const int_type& __c) noexcept - { return eq_int_type(__c, eof()) ? 0 : __c; } - }; -# 680 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/char_traits.h" 3 - -} - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdint" 1 3 -# 32 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdint" 3 - -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdint" 3 -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdint" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stdint.h" 1 3 4 -# 9 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stdint.h" 3 4 -# 1 "/usr/include/stdint.h" 1 3 4 -# 27 "/usr/include/stdint.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 28 "/usr/include/stdint.h" 2 3 4 -# 36 "/usr/include/stdint.h" 3 4 -typedef signed char int8_t; -typedef short int int16_t; -typedef int int32_t; - -typedef long int int64_t; - - - - - - - -typedef unsigned char uint8_t; -typedef unsigned short int uint16_t; - -typedef unsigned int uint32_t; - - - -typedef unsigned long int uint64_t; -# 65 "/usr/include/stdint.h" 3 4 -typedef signed char int_least8_t; -typedef short int int_least16_t; -typedef int int_least32_t; - -typedef long int int_least64_t; - - - - - - -typedef unsigned char uint_least8_t; -typedef unsigned short int uint_least16_t; -typedef unsigned int uint_least32_t; - -typedef unsigned long int uint_least64_t; -# 90 "/usr/include/stdint.h" 3 4 -typedef signed char int_fast8_t; - -typedef long int int_fast16_t; -typedef long int int_fast32_t; -typedef long int int_fast64_t; -# 103 "/usr/include/stdint.h" 3 4 -typedef unsigned char uint_fast8_t; - -typedef unsigned long int uint_fast16_t; -typedef unsigned long int uint_fast32_t; -typedef unsigned long int uint_fast64_t; -# 119 "/usr/include/stdint.h" 3 4 -typedef long int intptr_t; - - -typedef unsigned long int uintptr_t; -# 134 "/usr/include/stdint.h" 3 4 -typedef long int intmax_t; -typedef unsigned long int uintmax_t; -# 10 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stdint.h" 2 3 4 -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdint" 2 3 - - -namespace std -{ - - using ::int8_t; - using ::int16_t; - using ::int32_t; - using ::int64_t; - - using ::int_fast8_t; - using ::int_fast16_t; - using ::int_fast32_t; - using ::int_fast64_t; - - using ::int_least8_t; - using ::int_least16_t; - using ::int_least32_t; - using ::int_least64_t; - - using ::intmax_t; - using ::intptr_t; - - using ::uint8_t; - using ::uint16_t; - using ::uint32_t; - using ::uint64_t; - - using ::uint_fast8_t; - using ::uint_fast16_t; - using ::uint_fast32_t; - using ::uint_fast64_t; - - using ::uint_least8_t; - using ::uint_least16_t; - using ::uint_least32_t; - using ::uint_least64_t; - - using ::uintmax_t; - using ::uintptr_t; - - - - - -} -# 686 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/char_traits.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - template<> - struct char_traits - { - typedef char16_t char_type; - - typedef uint_least16_t int_type; - - - - - - typedef streamoff off_type; - typedef u16streampos pos_type; - typedef mbstate_t state_type; - - - - - static void - assign(char_type& __c1, const char_type& __c2) noexcept - { __c1 = __c2; } - - static constexpr bool - eq(const char_type& __c1, const char_type& __c2) noexcept - { return __c1 == __c2; } - - static constexpr bool - lt(const char_type& __c1, const char_type& __c2) noexcept - { return __c1 < __c2; } - - static int - compare(const char_type* __s1, const char_type* __s2, size_t __n) - { - for (size_t __i = 0; __i < __n; ++__i) - if (lt(__s1[__i], __s2[__i])) - return -1; - else if (lt(__s2[__i], __s1[__i])) - return 1; - return 0; - } - - static size_t - length(const char_type* __s) - { - size_t __i = 0; - while (!eq(__s[__i], char_type())) - ++__i; - return __i; - } - - static const char_type* - find(const char_type* __s, size_t __n, const char_type& __a) - { - for (size_t __i = 0; __i < __n; ++__i) - if (eq(__s[__i], __a)) - return __s + __i; - return 0; - } - - static char_type* - move(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; - - - - - return (static_cast - (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); - } - - static char_type* - copy(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; - - - - - return (static_cast - (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); - } - - static char_type* - assign(char_type* __s, size_t __n, char_type __a) - { - for (size_t __i = 0; __i < __n; ++__i) - assign(__s[__i], __a); - return __s; - } - - static constexpr char_type - to_char_type(const int_type& __c) noexcept - { return char_type(__c); } - - static constexpr int_type - to_int_type(const char_type& __c) noexcept - { return __c == eof() ? int_type(0xfffd) : int_type(__c); } - - static constexpr bool - eq_int_type(const int_type& __c1, const int_type& __c2) noexcept - { return __c1 == __c2; } - - static constexpr int_type - eof() noexcept - { return static_cast(-1); } - - static constexpr int_type - not_eof(const int_type& __c) noexcept - { return eq_int_type(__c, eof()) ? 0 : __c; } - }; - - template<> - struct char_traits - { - typedef char32_t char_type; - - typedef uint_least32_t int_type; - - - - - - typedef streamoff off_type; - typedef u32streampos pos_type; - typedef mbstate_t state_type; - - - - - static void - assign(char_type& __c1, const char_type& __c2) noexcept - { __c1 = __c2; } - - static constexpr bool - eq(const char_type& __c1, const char_type& __c2) noexcept - { return __c1 == __c2; } - - static constexpr bool - lt(const char_type& __c1, const char_type& __c2) noexcept - { return __c1 < __c2; } - - static int - compare(const char_type* __s1, const char_type* __s2, size_t __n) - { - for (size_t __i = 0; __i < __n; ++__i) - if (lt(__s1[__i], __s2[__i])) - return -1; - else if (lt(__s2[__i], __s1[__i])) - return 1; - return 0; - } - - static size_t - length(const char_type* __s) - { - size_t __i = 0; - while (!eq(__s[__i], char_type())) - ++__i; - return __i; - } - - static const char_type* - find(const char_type* __s, size_t __n, const char_type& __a) - { - for (size_t __i = 0; __i < __n; ++__i) - if (eq(__s[__i], __a)) - return __s + __i; - return 0; - } - - static char_type* - move(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; - - - - - return (static_cast - (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); - } - - static char_type* - copy(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; - - - - - return (static_cast - (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); - } - - static char_type* - assign(char_type* __s, size_t __n, char_type __a) - { - for (size_t __i = 0; __i < __n; ++__i) - assign(__s[__i], __a); - return __s; - } - - static constexpr char_type - to_char_type(const int_type& __c) noexcept - { return char_type(__c); } - - static constexpr int_type - to_int_type(const char_type& __c) noexcept - { return int_type(__c); } - - static constexpr bool - eq_int_type(const int_type& __c1, const int_type& __c2) noexcept - { return __c1 == __c2; } - - static constexpr int_type - eof() noexcept - { return static_cast(-1); } - - static constexpr int_type - not_eof(const int_type& __c) noexcept - { return eq_int_type(__c, eof()) ? 0 : __c; } - }; -# 938 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/char_traits.h" 3 - -} -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ios" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/localefwd.h" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/localefwd.h" 3 - -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/localefwd.h" 3 - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++locale.h" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++locale.h" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++locale.h" 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/clocale" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/clocale" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/clocale" 3 - - -# 1 "/usr/include/locale.h" 1 3 4 -# 29 "/usr/include/locale.h" 3 4 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 1 3 4 -# 30 "/usr/include/locale.h" 2 3 4 -# 1 "/usr/include/bits/locale.h" 1 3 4 -# 31 "/usr/include/locale.h" 2 3 4 - -extern "C" { -# 51 "/usr/include/locale.h" 3 4 - - - -struct lconv -{ - - - char *decimal_point; - char *thousands_sep; - - - - - - char *grouping; - - - - - - char *int_curr_symbol; - char *currency_symbol; - char *mon_decimal_point; - char *mon_thousands_sep; - char *mon_grouping; - char *positive_sign; - char *negative_sign; - char int_frac_digits; - char frac_digits; - - char p_cs_precedes; - - char p_sep_by_space; - - char n_cs_precedes; - - char n_sep_by_space; - - - - - - - char p_sign_posn; - char n_sign_posn; - - - char int_p_cs_precedes; - - char int_p_sep_by_space; - - char int_n_cs_precedes; - - char int_n_sep_by_space; - - - - - - - char int_p_sign_posn; - char int_n_sign_posn; -# 121 "/usr/include/locale.h" 3 4 -}; - - - -extern char *setlocale (int __category, const char *__locale) throw (); - - -extern struct lconv *localeconv (void) throw (); - - -# 152 "/usr/include/locale.h" 3 4 -extern __locale_t newlocale (int __category_mask, const char *__locale, - __locale_t __base) throw (); -# 187 "/usr/include/locale.h" 3 4 -extern __locale_t duplocale (__locale_t __dataset) throw (); - - - -extern void freelocale (__locale_t __dataset) throw (); - - - - - - -extern __locale_t uselocale (__locale_t __dataset) throw (); - - - - - - - -} -# 43 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/clocale" 2 3 -# 51 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/clocale" 3 -namespace std -{ - using ::lconv; - using ::setlocale; - using ::localeconv; -} -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3 - - - - - - -namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) -{ - - - extern "C" __typeof(uselocale) __uselocale; - - -} - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - typedef __locale_t __c_locale; - - - - - - inline int - __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), - char* __out, - const int __size __attribute__ ((__unused__)), - const char* __fmt, ...) - { - - __c_locale __old = __gnu_cxx::__uselocale(__cloc); -# 88 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++locale.h" 3 - __builtin_va_list __args; - __builtin_va_start(__args, __fmt); - - - const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); - - - - - __builtin_va_end(__args); - - - __gnu_cxx::__uselocale(__old); - - - - - - - - return __ret; - } - - -} -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/localefwd.h" 2 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cctype" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cctype" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cctype" 3 - - -# 1 "/usr/include/ctype.h" 1 3 4 -# 27 "/usr/include/ctype.h" 3 4 -# 1 "/usr/include/bits/types.h" 1 3 4 -# 27 "/usr/include/bits/types.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 28 "/usr/include/bits/types.h" 2 3 4 - - -typedef unsigned char __u_char; -typedef unsigned short int __u_short; -typedef unsigned int __u_int; -typedef unsigned long int __u_long; - - -typedef signed char __int8_t; -typedef unsigned char __uint8_t; -typedef signed short int __int16_t; -typedef unsigned short int __uint16_t; -typedef signed int __int32_t; -typedef unsigned int __uint32_t; - -typedef signed long int __int64_t; -typedef unsigned long int __uint64_t; - - - - - - - -typedef long int __quad_t; -typedef unsigned long int __u_quad_t; -# 130 "/usr/include/bits/types.h" 3 4 -# 1 "/usr/include/bits/typesizes.h" 1 3 4 -# 131 "/usr/include/bits/types.h" 2 3 4 - - -typedef unsigned long int __dev_t; -typedef unsigned int __uid_t; -typedef unsigned int __gid_t; -typedef unsigned long int __ino_t; -typedef unsigned long int __ino64_t; -typedef unsigned int __mode_t; -typedef unsigned long int __nlink_t; -typedef long int __off_t; -typedef long int __off64_t; -typedef int __pid_t; -typedef struct { int __val[2]; } __fsid_t; -typedef long int __clock_t; -typedef unsigned long int __rlim_t; -typedef unsigned long int __rlim64_t; -typedef unsigned int __id_t; -typedef long int __time_t; -typedef unsigned int __useconds_t; -typedef long int __suseconds_t; - -typedef int __daddr_t; -typedef int __key_t; - - -typedef int __clockid_t; - - -typedef void * __timer_t; - - -typedef long int __blksize_t; - - - - -typedef long int __blkcnt_t; -typedef long int __blkcnt64_t; - - -typedef unsigned long int __fsblkcnt_t; -typedef unsigned long int __fsblkcnt64_t; - - -typedef unsigned long int __fsfilcnt_t; -typedef unsigned long int __fsfilcnt64_t; - - -typedef long int __fsword_t; - -typedef long int __ssize_t; - - -typedef long int __syscall_slong_t; - -typedef unsigned long int __syscall_ulong_t; - - - -typedef __off64_t __loff_t; -typedef __quad_t *__qaddr_t; -typedef char *__caddr_t; - - -typedef long int __intptr_t; - - -typedef unsigned int __socklen_t; -# 28 "/usr/include/ctype.h" 2 3 4 - -extern "C" { -# 40 "/usr/include/ctype.h" 3 4 -# 1 "/usr/include/endian.h" 1 3 4 -# 36 "/usr/include/endian.h" 3 4 -# 1 "/usr/include/bits/endian.h" 1 3 4 -# 37 "/usr/include/endian.h" 2 3 4 -# 60 "/usr/include/endian.h" 3 4 -# 1 "/usr/include/bits/byteswap.h" 1 3 4 -# 28 "/usr/include/bits/byteswap.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 29 "/usr/include/bits/byteswap.h" 2 3 4 - - - - - - -# 1 "/usr/include/bits/byteswap-16.h" 1 3 4 -# 36 "/usr/include/bits/byteswap.h" 2 3 4 -# 44 "/usr/include/bits/byteswap.h" 3 4 -static __inline unsigned int -__bswap_32 (unsigned int __bsx) -{ - return __builtin_bswap32 (__bsx); -} -# 108 "/usr/include/bits/byteswap.h" 3 4 -static __inline __uint64_t -__bswap_64 (__uint64_t __bsx) -{ - return __builtin_bswap64 (__bsx); -} -# 61 "/usr/include/endian.h" 2 3 4 -# 41 "/usr/include/ctype.h" 2 3 4 - - - - - - -enum -{ - _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), - _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), - _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), - _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), - _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), - _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), - _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), - _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), - _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), - _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), - _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), - _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) -}; -# 80 "/usr/include/ctype.h" 3 4 -extern const unsigned short int **__ctype_b_loc (void) - throw () __attribute__ ((__const__)); -extern const __int32_t **__ctype_tolower_loc (void) - throw () __attribute__ ((__const__)); -extern const __int32_t **__ctype_toupper_loc (void) - throw () __attribute__ ((__const__)); -# 105 "/usr/include/ctype.h" 3 4 - - - - - - -extern int isalnum (int) throw (); -extern int isalpha (int) throw (); -extern int iscntrl (int) throw (); -extern int isdigit (int) throw (); -extern int islower (int) throw (); -extern int isgraph (int) throw (); -extern int isprint (int) throw (); -extern int ispunct (int) throw (); -extern int isspace (int) throw (); -extern int isupper (int) throw (); -extern int isxdigit (int) throw (); - - - -extern int tolower (int __c) throw (); - - -extern int toupper (int __c) throw (); - - - - - - - - -extern int isblank (int) throw (); - - - - - - -extern int isctype (int __c, int __mask) throw (); - - - - - - -extern int isascii (int __c) throw (); - - - -extern int toascii (int __c) throw (); - - - -extern int _toupper (int) throw (); -extern int _tolower (int) throw (); -# 272 "/usr/include/ctype.h" 3 4 -extern int isalnum_l (int, __locale_t) throw (); -extern int isalpha_l (int, __locale_t) throw (); -extern int iscntrl_l (int, __locale_t) throw (); -extern int isdigit_l (int, __locale_t) throw (); -extern int islower_l (int, __locale_t) throw (); -extern int isgraph_l (int, __locale_t) throw (); -extern int isprint_l (int, __locale_t) throw (); -extern int ispunct_l (int, __locale_t) throw (); -extern int isspace_l (int, __locale_t) throw (); -extern int isupper_l (int, __locale_t) throw (); -extern int isxdigit_l (int, __locale_t) throw (); - -extern int isblank_l (int, __locale_t) throw (); - - - -extern int __tolower_l (int __c, __locale_t __l) throw (); -extern int tolower_l (int __c, __locale_t __l) throw (); - - -extern int __toupper_l (int __c, __locale_t __l) throw (); -extern int toupper_l (int __c, __locale_t __l) throw (); -# 348 "/usr/include/ctype.h" 3 4 -} -# 43 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cctype" 2 3 -# 62 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cctype" 3 -namespace std -{ - using ::isalnum; - using ::isalpha; - using ::iscntrl; - using ::isdigit; - using ::isgraph; - using ::islower; - using ::isprint; - using ::ispunct; - using ::isspace; - using ::isupper; - using ::isxdigit; - using ::tolower; - using ::toupper; -} - - - - - - - -namespace std -{ - using ::isblank; -} -# 43 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/localefwd.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 55 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/localefwd.h" 3 - class locale; - - template - bool - has_facet(const locale&) throw(); - - template - const _Facet& - use_facet(const locale&); - - - template - bool - isspace(_CharT, const locale&); - - template - bool - isprint(_CharT, const locale&); - - template - bool - iscntrl(_CharT, const locale&); - - template - bool - isupper(_CharT, const locale&); - - template - bool - islower(_CharT, const locale&); - - template - bool - isalpha(_CharT, const locale&); - - template - bool - isdigit(_CharT, const locale&); - - template - bool - ispunct(_CharT, const locale&); - - template - bool - isxdigit(_CharT, const locale&); - - template - bool - isalnum(_CharT, const locale&); - - template - bool - isgraph(_CharT, const locale&); - - - template - bool - isblank(_CharT, const locale&); - - - template - _CharT - toupper(_CharT, const locale&); - - template - _CharT - tolower(_CharT, const locale&); - - - class ctype_base; - template - class ctype; - template<> class ctype; - - template<> class ctype; - - template - class ctype_byname; - - - class codecvt_base; - template - class codecvt; - template<> class codecvt; - - template<> class codecvt; - - - template<> class codecvt; - template<> class codecvt; - - - - - - template - class codecvt_byname; - - - - template > - class num_get; - template > - class num_put; - -namespace __cxx11 { - template class numpunct; - template class numpunct_byname; -} - -namespace __cxx11 { - - template - class collate; - template - class collate_byname; -} - - - class time_base; -namespace __cxx11 { - template > - class time_get; - template > - class time_get_byname; -} - template > - class time_put; - template > - class time_put_byname; - - - class money_base; -namespace __cxx11 { - template > - class money_get; - template > - class money_put; -} -namespace __cxx11 { - template - class moneypunct; - template - class moneypunct_byname; -} - - - class messages_base; -namespace __cxx11 { - template - class messages; - template - class messages_byname; -} - - -} -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ios" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/atomicity.h" 1 3 -# 32 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/atomicity.h" 3 - -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/atomicity.h" 3 - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr.h" 1 3 -# 30 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr.h" 3 -#pragma GCC visibility push(default) -# 148 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr.h" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h" 1 3 -# 35 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h" 3 -# 1 "/usr/include/pthread.h" 1 3 4 -# 23 "/usr/include/pthread.h" 3 4 -# 1 "/usr/include/sched.h" 1 3 4 -# 29 "/usr/include/sched.h" 3 4 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 1 3 4 -# 30 "/usr/include/sched.h" 2 3 4 - - - -# 1 "/usr/include/time.h" 1 3 4 -# 73 "/usr/include/time.h" 3 4 - - -typedef __time_t time_t; - - - -# 120 "/usr/include/time.h" 3 4 -struct timespec - { - __time_t tv_sec; - __syscall_slong_t tv_nsec; - }; -# 34 "/usr/include/sched.h" 2 3 4 - - -typedef __pid_t pid_t; - - - - - -# 1 "/usr/include/bits/sched.h" 1 3 4 -# 73 "/usr/include/bits/sched.h" 3 4 -struct sched_param - { - int __sched_priority; - }; - -extern "C" { - - - -extern int clone (int (*__fn) (void *__arg), void *__child_stack, - int __flags, void *__arg, ...) throw (); - - -extern int unshare (int __flags) throw (); - - -extern int sched_getcpu (void) throw (); - - -extern int setns (int __fd, int __nstype) throw (); - - - -} - - - - - - - -struct __sched_param - { - int __sched_priority; - }; -# 119 "/usr/include/bits/sched.h" 3 4 -typedef unsigned long int __cpu_mask; - - - - - - -typedef struct -{ - __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; -} cpu_set_t; -# 202 "/usr/include/bits/sched.h" 3 4 -extern "C" { - -extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) - throw (); -extern cpu_set_t *__sched_cpualloc (size_t __count) throw () ; -extern void __sched_cpufree (cpu_set_t *__set) throw (); - -} -# 43 "/usr/include/sched.h" 2 3 4 - - - - -extern "C" { - - -extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) - throw (); - - -extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); - - -extern int sched_setscheduler (__pid_t __pid, int __policy, - const struct sched_param *__param) throw (); - - -extern int sched_getscheduler (__pid_t __pid) throw (); - - -extern int sched_yield (void) throw (); - - -extern int sched_get_priority_max (int __algorithm) throw (); - - -extern int sched_get_priority_min (int __algorithm) throw (); - - -extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); -# 117 "/usr/include/sched.h" 3 4 -extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, - const cpu_set_t *__cpuset) throw (); - - -extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, - cpu_set_t *__cpuset) throw (); - - -} -# 24 "/usr/include/pthread.h" 2 3 4 -# 1 "/usr/include/time.h" 1 3 4 -# 29 "/usr/include/time.h" 3 4 -extern "C" { - - - - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 1 3 4 -# 38 "/usr/include/time.h" 2 3 4 - - - -# 1 "/usr/include/bits/time.h" 1 3 4 -# 30 "/usr/include/bits/time.h" 3 4 -struct timeval - { - __time_t tv_sec; - __suseconds_t tv_usec; - }; -# 88 "/usr/include/bits/time.h" 3 4 -# 1 "/usr/include/bits/timex.h" 1 3 4 -# 25 "/usr/include/bits/timex.h" 3 4 -struct timex -{ - unsigned int modes; - __syscall_slong_t offset; - __syscall_slong_t freq; - __syscall_slong_t maxerror; - __syscall_slong_t esterror; - int status; - __syscall_slong_t constant; - __syscall_slong_t precision; - __syscall_slong_t tolerance; - struct timeval time; - __syscall_slong_t tick; - __syscall_slong_t ppsfreq; - __syscall_slong_t jitter; - int shift; - __syscall_slong_t stabil; - __syscall_slong_t jitcnt; - __syscall_slong_t calcnt; - __syscall_slong_t errcnt; - __syscall_slong_t stbcnt; - - int tai; - - - int :32; int :32; int :32; int :32; - int :32; int :32; int :32; int :32; - int :32; int :32; int :32; -}; -# 89 "/usr/include/bits/time.h" 2 3 4 - -extern "C" { - - -extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw (); - -} -# 42 "/usr/include/time.h" 2 3 4 -# 57 "/usr/include/time.h" 3 4 - - -typedef __clock_t clock_t; - - - -# 91 "/usr/include/time.h" 3 4 -typedef __clockid_t clockid_t; -# 103 "/usr/include/time.h" 3 4 -typedef __timer_t timer_t; -# 131 "/usr/include/time.h" 3 4 - - -struct tm -{ - int tm_sec; - int tm_min; - int tm_hour; - int tm_mday; - int tm_mon; - int tm_year; - int tm_wday; - int tm_yday; - int tm_isdst; - - - long int tm_gmtoff; - const char *tm_zone; - - - - -}; - - - - - - - - -struct itimerspec - { - struct timespec it_interval; - struct timespec it_value; - }; - - -struct sigevent; -# 186 "/usr/include/time.h" 3 4 - - - -extern clock_t clock (void) throw (); - - -extern time_t time (time_t *__timer) throw (); - - -extern double difftime (time_t __time1, time_t __time0) - throw () __attribute__ ((__const__)); - - -extern time_t mktime (struct tm *__tp) throw (); - - - - - -extern size_t strftime (char *__restrict __s, size_t __maxsize, - const char *__restrict __format, - const struct tm *__restrict __tp) throw (); - - - - - -extern char *strptime (const char *__restrict __s, - const char *__restrict __fmt, struct tm *__tp) - throw (); - - - - - - - -extern size_t strftime_l (char *__restrict __s, size_t __maxsize, - const char *__restrict __format, - const struct tm *__restrict __tp, - __locale_t __loc) throw (); - - - -extern char *strptime_l (const char *__restrict __s, - const char *__restrict __fmt, struct tm *__tp, - __locale_t __loc) throw (); - - - - - - -extern struct tm *gmtime (const time_t *__timer) throw (); - - - -extern struct tm *localtime (const time_t *__timer) throw (); - - - - - -extern struct tm *gmtime_r (const time_t *__restrict __timer, - struct tm *__restrict __tp) throw (); - - - -extern struct tm *localtime_r (const time_t *__restrict __timer, - struct tm *__restrict __tp) throw (); - - - - - -extern char *asctime (const struct tm *__tp) throw (); - - -extern char *ctime (const time_t *__timer) throw (); - - - - - - - -extern char *asctime_r (const struct tm *__restrict __tp, - char *__restrict __buf) throw (); - - -extern char *ctime_r (const time_t *__restrict __timer, - char *__restrict __buf) throw (); - - - - -extern char *__tzname[2]; -extern int __daylight; -extern long int __timezone; - - - - -extern char *tzname[2]; - - - -extern void tzset (void) throw (); - - - -extern int daylight; -extern long int timezone; - - - - - -extern int stime (const time_t *__when) throw (); -# 319 "/usr/include/time.h" 3 4 -extern time_t timegm (struct tm *__tp) throw (); - - -extern time_t timelocal (struct tm *__tp) throw (); - - -extern int dysize (int __year) throw () __attribute__ ((__const__)); -# 334 "/usr/include/time.h" 3 4 -extern int nanosleep (const struct timespec *__requested_time, - struct timespec *__remaining); - - - -extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); - - -extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); - - -extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) - throw (); - - - - - - -extern int clock_nanosleep (clockid_t __clock_id, int __flags, - const struct timespec *__req, - struct timespec *__rem); - - -extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); - - - - -extern int timer_create (clockid_t __clock_id, - struct sigevent *__restrict __evp, - timer_t *__restrict __timerid) throw (); - - -extern int timer_delete (timer_t __timerid) throw (); - - -extern int timer_settime (timer_t __timerid, int __flags, - const struct itimerspec *__restrict __value, - struct itimerspec *__restrict __ovalue) throw (); - - -extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) - throw (); - - -extern int timer_getoverrun (timer_t __timerid) throw (); - - - - - -extern int timespec_get (struct timespec *__ts, int __base) - throw () __attribute__ ((__nonnull__ (1))); -# 403 "/usr/include/time.h" 3 4 -extern int getdate_err; -# 412 "/usr/include/time.h" 3 4 -extern struct tm *getdate (const char *__string); -# 426 "/usr/include/time.h" 3 4 -extern int getdate_r (const char *__restrict __string, - struct tm *__restrict __resbufp); - - -} -# 25 "/usr/include/pthread.h" 2 3 4 - -# 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 -# 21 "/usr/include/bits/pthreadtypes.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 22 "/usr/include/bits/pthreadtypes.h" 2 3 4 -# 60 "/usr/include/bits/pthreadtypes.h" 3 4 -typedef unsigned long int pthread_t; - - -union pthread_attr_t -{ - char __size[56]; - long int __align; -}; - -typedef union pthread_attr_t pthread_attr_t; - - - - - -typedef struct __pthread_internal_list -{ - struct __pthread_internal_list *__prev; - struct __pthread_internal_list *__next; -} __pthread_list_t; -# 90 "/usr/include/bits/pthreadtypes.h" 3 4 -typedef union -{ - struct __pthread_mutex_s - { - int __lock; - unsigned int __count; - int __owner; - - unsigned int __nusers; - - - - int __kind; - - short __spins; - short __elision; - __pthread_list_t __list; -# 125 "/usr/include/bits/pthreadtypes.h" 3 4 - } __data; - char __size[40]; - long int __align; -} pthread_mutex_t; - -typedef union -{ - char __size[4]; - int __align; -} pthread_mutexattr_t; - - - - -typedef union -{ - struct - { - int __lock; - unsigned int __futex; - __extension__ unsigned long long int __total_seq; - __extension__ unsigned long long int __wakeup_seq; - __extension__ unsigned long long int __woken_seq; - void *__mutex; - unsigned int __nwaiters; - unsigned int __broadcast_seq; - } __data; - char __size[48]; - __extension__ long long int __align; -} pthread_cond_t; - -typedef union -{ - char __size[4]; - int __align; -} pthread_condattr_t; - - - -typedef unsigned int pthread_key_t; - - - -typedef int pthread_once_t; - - - - - -typedef union -{ - - struct - { - int __lock; - unsigned int __nr_readers; - unsigned int __readers_wakeup; - unsigned int __writer_wakeup; - unsigned int __nr_readers_queued; - unsigned int __nr_writers_queued; - int __writer; - int __shared; - unsigned long int __pad1; - unsigned long int __pad2; - - - unsigned int __flags; - - } __data; -# 212 "/usr/include/bits/pthreadtypes.h" 3 4 - char __size[56]; - long int __align; -} pthread_rwlock_t; - -typedef union -{ - char __size[8]; - long int __align; -} pthread_rwlockattr_t; - - - - - -typedef volatile int pthread_spinlock_t; - - - - -typedef union -{ - char __size[32]; - long int __align; -} pthread_barrier_t; - -typedef union -{ - char __size[4]; - int __align; -} pthread_barrierattr_t; -# 27 "/usr/include/pthread.h" 2 3 4 -# 1 "/usr/include/bits/setjmp.h" 1 3 4 -# 26 "/usr/include/bits/setjmp.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 27 "/usr/include/bits/setjmp.h" 2 3 4 - - - - -typedef long int __jmp_buf[8]; -# 28 "/usr/include/pthread.h" 2 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 29 "/usr/include/pthread.h" 2 3 4 - - - -enum -{ - PTHREAD_CREATE_JOINABLE, - - PTHREAD_CREATE_DETACHED - -}; - - - -enum -{ - PTHREAD_MUTEX_TIMED_NP, - PTHREAD_MUTEX_RECURSIVE_NP, - PTHREAD_MUTEX_ERRORCHECK_NP, - PTHREAD_MUTEX_ADAPTIVE_NP - - , - PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, - PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, - PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, - PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL - - - - , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP - -}; - - - - -enum -{ - PTHREAD_MUTEX_STALLED, - PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, - PTHREAD_MUTEX_ROBUST, - PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST -}; - - - - - -enum -{ - PTHREAD_PRIO_NONE, - PTHREAD_PRIO_INHERIT, - PTHREAD_PRIO_PROTECT -}; -# 116 "/usr/include/pthread.h" 3 4 -enum -{ - PTHREAD_RWLOCK_PREFER_READER_NP, - PTHREAD_RWLOCK_PREFER_WRITER_NP, - PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, - PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP -}; -# 157 "/usr/include/pthread.h" 3 4 -enum -{ - PTHREAD_INHERIT_SCHED, - - PTHREAD_EXPLICIT_SCHED - -}; - - - -enum -{ - PTHREAD_SCOPE_SYSTEM, - - PTHREAD_SCOPE_PROCESS - -}; - - - -enum -{ - PTHREAD_PROCESS_PRIVATE, - - PTHREAD_PROCESS_SHARED - -}; -# 192 "/usr/include/pthread.h" 3 4 -struct _pthread_cleanup_buffer -{ - void (*__routine) (void *); - void *__arg; - int __canceltype; - struct _pthread_cleanup_buffer *__prev; -}; - - -enum -{ - PTHREAD_CANCEL_ENABLE, - - PTHREAD_CANCEL_DISABLE - -}; -enum -{ - PTHREAD_CANCEL_DEFERRED, - - PTHREAD_CANCEL_ASYNCHRONOUS - -}; -# 230 "/usr/include/pthread.h" 3 4 -extern "C" { - - - - -extern int pthread_create (pthread_t *__restrict __newthread, - const pthread_attr_t *__restrict __attr, - void *(*__start_routine) (void *), - void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3))); - - - - - -extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); - - - - - - - -extern int pthread_join (pthread_t __th, void **__thread_return); - - - - -extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw (); - - - - - - - -extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, - const struct timespec *__abstime); - - - - - - -extern int pthread_detach (pthread_t __th) throw (); - - - -extern pthread_t pthread_self (void) throw () __attribute__ ((__const__)); - - -extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) - throw () __attribute__ ((__const__)); - - - - - - - -extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_attr_destroy (pthread_attr_t *__attr) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, - int *__detachstate) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, - int __detachstate) - throw () __attribute__ ((__nonnull__ (1))); - - - -extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, - size_t *__guardsize) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int pthread_attr_setguardsize (pthread_attr_t *__attr, - size_t __guardsize) - throw () __attribute__ ((__nonnull__ (1))); - - - -extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, - struct sched_param *__restrict __param) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, - const struct sched_param *__restrict - __param) throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict - __attr, int *__restrict __policy) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict - __attr, int *__restrict __inherit) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, - int __inherit) - throw () __attribute__ ((__nonnull__ (1))); - - - -extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, - int *__restrict __scope) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict - __attr, void **__restrict __stackaddr) - throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); - - - - - -extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, - void *__stackaddr) - throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); - - -extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict - __attr, size_t *__restrict __stacksize) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - - -extern int pthread_attr_setstacksize (pthread_attr_t *__attr, - size_t __stacksize) - throw () __attribute__ ((__nonnull__ (1))); - - - -extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, - void **__restrict __stackaddr, - size_t *__restrict __stacksize) - throw () __attribute__ ((__nonnull__ (1, 2, 3))); - - - - -extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, - size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); - - - - - -extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, - size_t __cpusetsize, - const cpu_set_t *__cpuset) - throw () __attribute__ ((__nonnull__ (1, 3))); - - - -extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, - size_t __cpusetsize, - cpu_set_t *__cpuset) - throw () __attribute__ ((__nonnull__ (1, 3))); - - - - - -extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) - throw () __attribute__ ((__nonnull__ (2))); - - - - - - - -extern int pthread_setschedparam (pthread_t __target_thread, int __policy, - const struct sched_param *__param) - throw () __attribute__ ((__nonnull__ (3))); - - -extern int pthread_getschedparam (pthread_t __target_thread, - int *__restrict __policy, - struct sched_param *__restrict __param) - throw () __attribute__ ((__nonnull__ (2, 3))); - - -extern int pthread_setschedprio (pthread_t __target_thread, int __prio) - throw (); - - - - -extern int pthread_getname_np (pthread_t __target_thread, char *__buf, - size_t __buflen) - throw () __attribute__ ((__nonnull__ (2))); - - -extern int pthread_setname_np (pthread_t __target_thread, const char *__name) - throw () __attribute__ ((__nonnull__ (2))); - - - - - -extern int pthread_getconcurrency (void) throw (); - - -extern int pthread_setconcurrency (int __level) throw (); - - - - - - - -extern int pthread_yield (void) throw (); - - - - -extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, - const cpu_set_t *__cpuset) - throw () __attribute__ ((__nonnull__ (3))); - - -extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, - cpu_set_t *__cpuset) - throw () __attribute__ ((__nonnull__ (3))); -# 488 "/usr/include/pthread.h" 3 4 -extern int pthread_once (pthread_once_t *__once_control, - void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); -# 500 "/usr/include/pthread.h" 3 4 -extern int pthread_setcancelstate (int __state, int *__oldstate); - - - -extern int pthread_setcanceltype (int __type, int *__oldtype); - - -extern int pthread_cancel (pthread_t __th); - - - - -extern void pthread_testcancel (void); - - - - -typedef struct -{ - struct - { - __jmp_buf __cancel_jmp_buf; - int __mask_was_saved; - } __cancel_jmp_buf[1]; - void *__pad[4]; -} __pthread_unwind_buf_t __attribute__ ((__aligned__)); -# 534 "/usr/include/pthread.h" 3 4 -struct __pthread_cleanup_frame -{ - void (*__cancel_routine) (void *); - void *__cancel_arg; - int __do_it; - int __cancel_type; -}; - - - - -class __pthread_cleanup_class -{ - void (*__cancel_routine) (void *); - void *__cancel_arg; - int __do_it; - int __cancel_type; - - public: - __pthread_cleanup_class (void (*__fct) (void *), void *__arg) - : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } - ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } - void __setdoit (int __newval) { __do_it = __newval; } - void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, - &__cancel_type); } - void __restore () const { pthread_setcanceltype (__cancel_type, 0); } -}; -# 736 "/usr/include/pthread.h" 3 4 -struct __jmp_buf_tag; -extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw (); - - - - - -extern int pthread_mutex_init (pthread_mutex_t *__mutex, - const pthread_mutexattr_t *__mutexattr) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_mutex_lock (pthread_mutex_t *__mutex) - throw () __attribute__ ((__nonnull__ (1))); - - - -extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, - const struct timespec *__restrict - __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); - - - -extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) - throw () __attribute__ ((__nonnull__ (1))); - - - -extern int pthread_mutex_getprioceiling (const pthread_mutex_t * - __restrict __mutex, - int *__restrict __prioceiling) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - -extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, - int __prioceiling, - int *__restrict __old_ceiling) - throw () __attribute__ ((__nonnull__ (1, 3))); - - - - -extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) - throw () __attribute__ ((__nonnull__ (1))); - -extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) - throw () __attribute__ ((__nonnull__ (1))); -# 800 "/usr/include/pthread.h" 3 4 -extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * - __restrict __attr, - int *__restrict __pshared) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, - int __pshared) - throw () __attribute__ ((__nonnull__ (1))); - - - -extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict - __attr, int *__restrict __kind) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - - -extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) - throw () __attribute__ ((__nonnull__ (1))); - - - -extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * - __restrict __attr, - int *__restrict __protocol) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - -extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, - int __protocol) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * - __restrict __attr, - int *__restrict __prioceiling) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, - int __prioceiling) - throw () __attribute__ ((__nonnull__ (1))); - - - -extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, - int *__robustness) - throw () __attribute__ ((__nonnull__ (1, 2))); - -extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr, - int *__robustness) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - -extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, - int __robustness) - throw () __attribute__ ((__nonnull__ (1))); - -extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, - int __robustness) - throw () __attribute__ ((__nonnull__ (1))); -# 882 "/usr/include/pthread.h" 3 4 -extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, - const pthread_rwlockattr_t *__restrict - __attr) throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) - throw () __attribute__ ((__nonnull__ (1))); - - - -extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, - const struct timespec *__restrict - __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); - - - -extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) - throw () __attribute__ ((__nonnull__ (1))); - - - -extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, - const struct timespec *__restrict - __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); - - - -extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) - throw () __attribute__ ((__nonnull__ (1))); - - - - - -extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * - __restrict __attr, - int *__restrict __pshared) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, - int __pshared) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * - __restrict __attr, - int *__restrict __pref) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, - int __pref) throw () __attribute__ ((__nonnull__ (1))); - - - - - - - -extern int pthread_cond_init (pthread_cond_t *__restrict __cond, - const pthread_condattr_t *__restrict __cond_attr) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_cond_destroy (pthread_cond_t *__cond) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_cond_signal (pthread_cond_t *__cond) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_cond_broadcast (pthread_cond_t *__cond) - throw () __attribute__ ((__nonnull__ (1))); - - - - - - -extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, - pthread_mutex_t *__restrict __mutex) - __attribute__ ((__nonnull__ (1, 2))); -# 994 "/usr/include/pthread.h" 3 4 -extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, - pthread_mutex_t *__restrict __mutex, - const struct timespec *__restrict __abstime) - __attribute__ ((__nonnull__ (1, 2, 3))); - - - - -extern int pthread_condattr_init (pthread_condattr_t *__attr) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_condattr_destroy (pthread_condattr_t *__attr) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_condattr_getpshared (const pthread_condattr_t * - __restrict __attr, - int *__restrict __pshared) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, - int __pshared) throw () __attribute__ ((__nonnull__ (1))); - - - -extern int pthread_condattr_getclock (const pthread_condattr_t * - __restrict __attr, - __clockid_t *__restrict __clock_id) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int pthread_condattr_setclock (pthread_condattr_t *__attr, - __clockid_t __clock_id) - throw () __attribute__ ((__nonnull__ (1))); -# 1038 "/usr/include/pthread.h" 3 4 -extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_spin_destroy (pthread_spinlock_t *__lock) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_spin_lock (pthread_spinlock_t *__lock) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_spin_trylock (pthread_spinlock_t *__lock) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_spin_unlock (pthread_spinlock_t *__lock) - throw () __attribute__ ((__nonnull__ (1))); - - - - - - -extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, - const pthread_barrierattr_t *__restrict - __attr, unsigned int __count) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_barrier_wait (pthread_barrier_t *__barrier) - throw () __attribute__ ((__nonnull__ (1))); - - - -extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * - __restrict __attr, - int *__restrict __pshared) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, - int __pshared) - throw () __attribute__ ((__nonnull__ (1))); -# 1105 "/usr/include/pthread.h" 3 4 -extern int pthread_key_create (pthread_key_t *__key, - void (*__destr_function) (void *)) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int pthread_key_delete (pthread_key_t __key) throw (); - - -extern void *pthread_getspecific (pthread_key_t __key) throw (); - - -extern int pthread_setspecific (pthread_key_t __key, - const void *__pointer) throw () ; - - - - -extern int pthread_getcpuclockid (pthread_t __thread_id, - __clockid_t *__clock_id) - throw () __attribute__ ((__nonnull__ (2))); -# 1139 "/usr/include/pthread.h" 3 4 -extern int pthread_atfork (void (*__prepare) (void), - void (*__parent) (void), - void (*__child) (void)) throw (); -# 1153 "/usr/include/pthread.h" 3 4 -} -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h" 2 3 -# 47 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h" 3 -typedef pthread_t __gthread_t; -typedef pthread_key_t __gthread_key_t; -typedef pthread_once_t __gthread_once_t; -typedef pthread_mutex_t __gthread_mutex_t; -typedef pthread_mutex_t __gthread_recursive_mutex_t; -typedef pthread_cond_t __gthread_cond_t; -typedef struct timespec __gthread_time_t; -# 102 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h" 3 -static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once"), __copy__ (pthread_once))); -static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific"), __copy__ (pthread_getspecific))); -static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific"), __copy__ (pthread_setspecific))); - -static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create"), __copy__ (pthread_create))); -static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join"), __copy__ (pthread_join))); -static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal"), __copy__ (pthread_equal))); -static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self"), __copy__ (pthread_self))); -static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach"), __copy__ (pthread_detach))); - -static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel"), __copy__ (pthread_cancel))); - -static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield"), __copy__ (sched_yield))); - -static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock"), __copy__ (pthread_mutex_lock))); -static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock"), __copy__ (pthread_mutex_trylock))); - -static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock"), __copy__ (pthread_mutex_timedlock))); - -static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock"), __copy__ (pthread_mutex_unlock))); -static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init"), __copy__ (pthread_mutex_init))); -static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy"), __copy__ (pthread_mutex_destroy))); - -static __typeof(pthread_cond_init) __gthrw_pthread_cond_init __attribute__ ((__weakref__("pthread_cond_init"), __copy__ (pthread_cond_init))); -static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast"), __copy__ (pthread_cond_broadcast))); -static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal"), __copy__ (pthread_cond_signal))); -static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait"), __copy__ (pthread_cond_wait))); -static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait"), __copy__ (pthread_cond_timedwait))); -static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy"), __copy__ (pthread_cond_destroy))); - -static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create"), __copy__ (pthread_key_create))); -static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete"), __copy__ (pthread_key_delete))); -static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init"), __copy__ (pthread_mutexattr_init))); -static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype"), __copy__ (pthread_mutexattr_settype))); -static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy"), __copy__ (pthread_mutexattr_destroy))); -# 237 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h" 3 -static __typeof(pthread_key_create) __gthrw___pthread_key_create __attribute__ ((__weakref__("__pthread_key_create"), __copy__ (pthread_key_create))); -# 247 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h" 3 -static inline int -__gthread_active_p (void) -{ - static void *const __gthread_active_ptr - = __extension__ (void *) &__gthrw___pthread_key_create; - return __gthread_active_ptr != 0; -} -# 659 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h" 3 -static inline int -__gthread_create (__gthread_t *__threadid, void *(*__func) (void*), - void *__args) -{ - return __gthrw_pthread_create (__threadid, __null, __func, __args); -} - -static inline int -__gthread_join (__gthread_t __threadid, void **__value_ptr) -{ - return __gthrw_pthread_join (__threadid, __value_ptr); -} - -static inline int -__gthread_detach (__gthread_t __threadid) -{ - return __gthrw_pthread_detach (__threadid); -} - -static inline int -__gthread_equal (__gthread_t __t1, __gthread_t __t2) -{ - return __gthrw_pthread_equal (__t1, __t2); -} - -static inline __gthread_t -__gthread_self (void) -{ - return __gthrw_pthread_self (); -} - -static inline int -__gthread_yield (void) -{ - return __gthrw_sched_yield (); -} - -static inline int -__gthread_once (__gthread_once_t *__once, void (*__func) (void)) -{ - if (__gthread_active_p ()) - return __gthrw_pthread_once (__once, __func); - else - return -1; -} - -static inline int -__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) -{ - return __gthrw_pthread_key_create (__key, __dtor); -} - -static inline int -__gthread_key_delete (__gthread_key_t __key) -{ - return __gthrw_pthread_key_delete (__key); -} - -static inline void * -__gthread_getspecific (__gthread_key_t __key) -{ - return __gthrw_pthread_getspecific (__key); -} - -static inline int -__gthread_setspecific (__gthread_key_t __key, const void *__ptr) -{ - return __gthrw_pthread_setspecific (__key, __ptr); -} - -static inline void -__gthread_mutex_init_function (__gthread_mutex_t *__mutex) -{ - if (__gthread_active_p ()) - __gthrw_pthread_mutex_init (__mutex, __null); -} - -static inline int -__gthread_mutex_destroy (__gthread_mutex_t *__mutex) -{ - if (__gthread_active_p ()) - return __gthrw_pthread_mutex_destroy (__mutex); - else - return 0; -} - -static inline int -__gthread_mutex_lock (__gthread_mutex_t *__mutex) -{ - if (__gthread_active_p ()) - return __gthrw_pthread_mutex_lock (__mutex); - else - return 0; -} - -static inline int -__gthread_mutex_trylock (__gthread_mutex_t *__mutex) -{ - if (__gthread_active_p ()) - return __gthrw_pthread_mutex_trylock (__mutex); - else - return 0; -} - - -static inline int -__gthread_mutex_timedlock (__gthread_mutex_t *__mutex, - const __gthread_time_t *__abs_timeout) -{ - if (__gthread_active_p ()) - return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout); - else - return 0; -} - - -static inline int -__gthread_mutex_unlock (__gthread_mutex_t *__mutex) -{ - if (__gthread_active_p ()) - return __gthrw_pthread_mutex_unlock (__mutex); - else - return 0; -} -# 808 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h" 3 -static inline int -__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) -{ - return __gthread_mutex_lock (__mutex); -} - -static inline int -__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) -{ - return __gthread_mutex_trylock (__mutex); -} - - -static inline int -__gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, - const __gthread_time_t *__abs_timeout) -{ - return __gthread_mutex_timedlock (__mutex, __abs_timeout); -} - - -static inline int -__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) -{ - return __gthread_mutex_unlock (__mutex); -} - -static inline int -__gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) -{ - return __gthread_mutex_destroy (__mutex); -} -# 850 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h" 3 -static inline int -__gthread_cond_broadcast (__gthread_cond_t *__cond) -{ - return __gthrw_pthread_cond_broadcast (__cond); -} - -static inline int -__gthread_cond_signal (__gthread_cond_t *__cond) -{ - return __gthrw_pthread_cond_signal (__cond); -} - -static inline int -__gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) -{ - return __gthrw_pthread_cond_wait (__cond, __mutex); -} - -static inline int -__gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, - const __gthread_time_t *__abs_timeout) -{ - return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout); -} - -static inline int -__gthread_cond_wait_recursive (__gthread_cond_t *__cond, - __gthread_recursive_mutex_t *__mutex) -{ - return __gthread_cond_wait (__cond, __mutex); -} - -static inline int -__gthread_cond_destroy (__gthread_cond_t* __cond) -{ - return __gthrw_pthread_cond_destroy (__cond); -} -# 149 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr.h" 2 3 - - -#pragma GCC visibility pop -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/atomicity.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/atomic_word.h" 1 3 -# 32 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/atomic_word.h" 3 -typedef int _Atomic_word; -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/atomicity.h" 2 3 - -namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - - inline _Atomic_word - __attribute__((__always_inline__)) - __exchange_and_add(volatile _Atomic_word* __mem, int __val) - { return __atomic_fetch_add(__mem, __val, 4); } - - inline void - __attribute__((__always_inline__)) - __atomic_add(volatile _Atomic_word* __mem, int __val) - { __atomic_fetch_add(__mem, __val, 4); } -# 64 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/atomicity.h" 3 - inline _Atomic_word - __attribute__((__always_inline__)) - __exchange_and_add_single(_Atomic_word* __mem, int __val) - { - _Atomic_word __result = *__mem; - *__mem += __val; - return __result; - } - - inline void - __attribute__((__always_inline__)) - __atomic_add_single(_Atomic_word* __mem, int __val) - { *__mem += __val; } - - inline _Atomic_word - __attribute__ ((__always_inline__)) - __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) - { - - if (__gthread_active_p()) - return __exchange_and_add(__mem, __val); - - return __exchange_and_add_single(__mem, __val); - } - - inline void - __attribute__ ((__always_inline__)) - __atomic_add_dispatch(_Atomic_word* __mem, int __val) - { - - if (__gthread_active_p()) - { - __atomic_add(__mem, __val); - return; - } - - __atomic_add_single(__mem, __val); - } - - -} -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 2 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/string" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/string" 3 - -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/string" 3 - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/allocator.h" 1 3 -# 46 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/allocator.h" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++allocator.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++allocator.h" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/new_allocator.h" 1 3 -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/new_allocator.h" 3 -namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) -{ - -# 54 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/new_allocator.h" 3 - template - class new_allocator - { - public: - typedef _Tp value_type; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - - typedef _Tp* pointer; - typedef const _Tp* const_pointer; - typedef _Tp& reference; - typedef const _Tp& const_reference; - - template - struct rebind - { typedef new_allocator<_Tp1> other; }; - - - - - - typedef std::true_type propagate_on_container_move_assignment; - - - - new_allocator() noexcept { } - - - new_allocator(const new_allocator&) noexcept { } - - template - - new_allocator(const new_allocator<_Tp1>&) noexcept { } - - - ~new_allocator() noexcept { } - - pointer - address(reference __x) const noexcept - { return std::__addressof(__x); } - - const_pointer - address(const_reference __x) const noexcept - { return std::__addressof(__x); } - - - - - _Tp* - allocate(size_type __n, const void* = static_cast(0)) - { - if (__n > this->_M_max_size()) - std::__throw_bad_alloc(); -# 115 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/new_allocator.h" 3 - return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); - } - - - void - deallocate(_Tp* __p, size_type __t) - { -# 133 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/new_allocator.h" 3 - ::operator delete(__p - - , __t * sizeof(_Tp) - - ); - } - - - size_type - max_size() const noexcept - { return _M_max_size(); } - - - template - void - construct(_Up* __p, _Args&&... __args) - noexcept(std::is_nothrow_constructible<_Up, _Args...>::value) - { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } - - template - void - destroy(_Up* __p) - noexcept(std::is_nothrow_destructible<_Up>::value) - { __p->~_Up(); } -# 169 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/new_allocator.h" 3 - template - friend bool - operator==(const new_allocator&, const new_allocator<_Up>&) - noexcept - { return true; } - - - template - friend bool - operator!=(const new_allocator&, const new_allocator<_Up>&) - noexcept - { return false; } - - - private: - constexpr size_type - _M_max_size() const noexcept - { - - return std::size_t(0x7fffffffffffffffL) / sizeof(_Tp); - - - - } - }; - - -} -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++allocator.h" 2 3 - - -namespace std -{ -# 47 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++allocator.h" 3 - template - using __allocator_base = __gnu_cxx::new_allocator<_Tp>; -} -# 47 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/allocator.h" 2 3 - - - - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - - - template<> - class allocator - { - public: - typedef void value_type; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - - typedef void* pointer; - typedef const void* const_pointer; - - template - struct rebind - { typedef allocator<_Tp1> other; }; -# 89 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/allocator.h" 3 - typedef true_type propagate_on_container_move_assignment; - - typedef true_type is_always_equal; - - template - void - construct(_Up* __p, _Args&&... __args) - noexcept(std::is_nothrow_constructible<_Up, _Args...>::value) - { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } - - template - void - destroy(_Up* __p) - noexcept(std::is_nothrow_destructible<_Up>::value) - { __p->~_Up(); } - - }; -# 115 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/allocator.h" 3 - template - class allocator : public __allocator_base<_Tp> - { - public: - typedef _Tp value_type; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - - typedef _Tp* pointer; - typedef const _Tp* const_pointer; - typedef _Tp& reference; - typedef const _Tp& const_reference; - - template - struct rebind - { typedef allocator<_Tp1> other; }; - - - - - - typedef true_type propagate_on_container_move_assignment; - - typedef true_type is_always_equal; - - - - - - allocator() noexcept { } - - - allocator(const allocator& __a) noexcept - : __allocator_base<_Tp>(__a) { } - - - - allocator& operator=(const allocator&) = default; - - - template - - allocator(const allocator<_Tp1>&) noexcept { } - - - - - ~allocator() noexcept { } -# 191 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/allocator.h" 3 - friend bool - operator==(const allocator&, const allocator&) noexcept - { return true; } - - - friend bool - operator!=(const allocator&, const allocator&) noexcept - { return false; } - - - - }; - - template - inline bool - operator==(const allocator<_T1>&, const allocator<_T2>&) - noexcept - { return true; } - - - template - inline bool - operator!=(const allocator<_T1>&, const allocator<_T2>&) - noexcept - { return false; } - - - - - template - class allocator - { - public: - typedef _Tp value_type; - template allocator(const allocator<_Up>&) { } - }; - - template - class allocator - { - public: - typedef _Tp value_type; - template allocator(const allocator<_Up>&) { } - }; - - template - class allocator - { - public: - typedef _Tp value_type; - template allocator(const allocator<_Up>&) { } - }; - - - - - - - extern template class allocator; - extern template class allocator; - - - - - - - template - struct __alloc_swap - { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } }; - - template - struct __alloc_swap<_Alloc, false> - { - static void - _S_do_it(_Alloc& __one, _Alloc& __two) noexcept - { - - if (__one != __two) - swap(__one, __two); - } - }; - - - template - struct __alloc_neq - { - static bool - _S_do_it(const _Alloc&, const _Alloc&) - { return false; } - }; - - template - struct __alloc_neq<_Alloc, false> - { - static bool - _S_do_it(const _Alloc& __one, const _Alloc& __two) - { return __one != __two; } - }; - - - template, - is_nothrow_move_constructible>::value> - struct __shrink_to_fit_aux - { static bool _S_do_it(_Tp&) noexcept { return false; } }; - - template - struct __shrink_to_fit_aux<_Tp, true> - { - static bool - _S_do_it(_Tp& __c) noexcept - { - - try - { - _Tp(__make_move_if_noexcept_iterator(__c.begin()), - __make_move_if_noexcept_iterator(__c.end()), - __c.get_allocator()).swap(__c); - return true; - } - catch(...) - { return false; } - - - - } - }; - - - -} -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/string" 2 3 - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ostream_insert.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ostream_insert.h" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ostream_insert.h" 3 - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cxxabi_forced.h" 1 3 -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cxxabi_forced.h" 3 - -# 35 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/cxxabi_forced.h" 3 - -#pragma GCC visibility push(default) - - -namespace __cxxabiv1 -{ - - - - - - - - class __forced_unwind - { - virtual ~__forced_unwind() throw(); - - - virtual void __pure_dummy() = 0; - }; -} - - -#pragma GCC visibility pop -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ostream_insert.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - template - inline void - __ostream_write(basic_ostream<_CharT, _Traits>& __out, - const _CharT* __s, streamsize __n) - { - typedef basic_ostream<_CharT, _Traits> __ostream_type; - typedef typename __ostream_type::ios_base __ios_base; - - const streamsize __put = __out.rdbuf()->sputn(__s, __n); - if (__put != __n) - __out.setstate(__ios_base::badbit); - } - - template - inline void - __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) - { - typedef basic_ostream<_CharT, _Traits> __ostream_type; - typedef typename __ostream_type::ios_base __ios_base; - - const _CharT __c = __out.fill(); - for (; __n > 0; --__n) - { - const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); - if (_Traits::eq_int_type(__put, _Traits::eof())) - { - __out.setstate(__ios_base::badbit); - break; - } - } - } - - template - basic_ostream<_CharT, _Traits>& - __ostream_insert(basic_ostream<_CharT, _Traits>& __out, - const _CharT* __s, streamsize __n) - { - typedef basic_ostream<_CharT, _Traits> __ostream_type; - typedef typename __ostream_type::ios_base __ios_base; - - typename __ostream_type::sentry __cerb(__out); - if (__cerb) - { - try - { - const streamsize __w = __out.width(); - if (__w > __n) - { - const bool __left = ((__out.flags() - & __ios_base::adjustfield) - == __ios_base::left); - if (!__left) - __ostream_fill(__out, __w - __n); - if (__out.good()) - __ostream_write(__out, __s, __n); - if (__left && __out.good()) - __ostream_fill(__out, __w - __n); - } - else - __ostream_write(__out, __s, __n); - __out.width(0); - } - catch(__cxxabiv1::__forced_unwind&) - { - __out._M_setstate(__ios_base::badbit); - throw; - } - catch(...) - { __out._M_setstate(__ios_base::badbit); } - } - return __out; - } - - - - - extern template ostream& __ostream_insert(ostream&, const char*, streamsize); - - - extern template wostream& __ostream_insert(wostream&, const wchar_t*, - streamsize); - - - - -} -# 45 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/string" 2 3 - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_function.h" 1 3 -# 63 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_function.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 104 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_function.h" 3 - template - struct unary_function - { - - typedef _Arg argument_type; - - - typedef _Result result_type; - }; - - - - - template - struct binary_function - { - - typedef _Arg1 first_argument_type; - - - typedef _Arg2 second_argument_type; - - - typedef _Result result_type; - }; -# 144 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_function.h" 3 - struct __is_transparent; - - template - struct plus; - - template - struct minus; - - template - struct multiplies; - - template - struct divides; - - template - struct modulus; - - template - struct negate; - - - - template - struct plus : public binary_function<_Tp, _Tp, _Tp> - { - constexpr - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x + __y; } - }; - - - template - struct minus : public binary_function<_Tp, _Tp, _Tp> - { - constexpr - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x - __y; } - }; - - - template - struct multiplies : public binary_function<_Tp, _Tp, _Tp> - { - constexpr - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x * __y; } - }; - - - template - struct divides : public binary_function<_Tp, _Tp, _Tp> - { - constexpr - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x / __y; } - }; - - - template - struct modulus : public binary_function<_Tp, _Tp, _Tp> - { - constexpr - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x % __y; } - }; - - - template - struct negate : public unary_function<_Tp, _Tp> - { - constexpr - _Tp - operator()(const _Tp& __x) const - { return -__x; } - }; - - - - - - template<> - struct plus - { - template - constexpr - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) + std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) + std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) + std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - - template<> - struct minus - { - template - constexpr - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) - std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) - std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) - std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - - template<> - struct multiplies - { - template - constexpr - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) * std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) * std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) * std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - - template<> - struct divides - { - template - constexpr - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) / std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) / std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) / std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - - template<> - struct modulus - { - template - constexpr - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) % std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) % std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) % std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - - template<> - struct negate - { - template - constexpr - auto - operator()(_Tp&& __t) const - noexcept(noexcept(-std::forward<_Tp>(__t))) - -> decltype(-std::forward<_Tp>(__t)) - { return -std::forward<_Tp>(__t); } - - typedef __is_transparent is_transparent; - }; -# 330 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_function.h" 3 - template - struct equal_to; - - template - struct not_equal_to; - - template - struct greater; - - template - struct less; - - template - struct greater_equal; - - template - struct less_equal; - - - - template - struct equal_to : public binary_function<_Tp, _Tp, bool> - { - constexpr - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x == __y; } - }; - - - template - struct not_equal_to : public binary_function<_Tp, _Tp, bool> - { - constexpr - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x != __y; } - }; - - - template - struct greater : public binary_function<_Tp, _Tp, bool> - { - constexpr - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x > __y; } - }; - - - template - struct less : public binary_function<_Tp, _Tp, bool> - { - constexpr - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x < __y; } - }; - - - template - struct greater_equal : public binary_function<_Tp, _Tp, bool> - { - constexpr - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x >= __y; } - }; - - - template - struct less_equal : public binary_function<_Tp, _Tp, bool> - { - constexpr - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x <= __y; } - }; - - - template - struct greater<_Tp*> : public binary_function<_Tp*, _Tp*, bool> - { - constexpr bool - operator()(_Tp* __x, _Tp* __y) const noexcept - { - - - if (__builtin_is_constant_evaluated()) - - - - return __x > __y; - - return (long unsigned int)__x > (long unsigned int)__y; - } - }; - - - template - struct less<_Tp*> : public binary_function<_Tp*, _Tp*, bool> - { - constexpr bool - operator()(_Tp* __x, _Tp* __y) const noexcept - { - - - if (__builtin_is_constant_evaluated()) - - - - return __x < __y; - - return (long unsigned int)__x < (long unsigned int)__y; - } - }; - - - template - struct greater_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> - { - constexpr bool - operator()(_Tp* __x, _Tp* __y) const noexcept - { - - - if (__builtin_is_constant_evaluated()) - - - - return __x >= __y; - - return (long unsigned int)__x >= (long unsigned int)__y; - } - }; - - - template - struct less_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> - { - constexpr bool - operator()(_Tp* __x, _Tp* __y) const noexcept - { - - - if (__builtin_is_constant_evaluated()) - - - - return __x <= __y; - - return (long unsigned int)__x <= (long unsigned int)__y; - } - }; - - - - template<> - struct equal_to - { - template - constexpr auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) == std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) == std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) == std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - - template<> - struct not_equal_to - { - template - constexpr auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) != std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) != std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) != std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - - template<> - struct greater - { - template - constexpr auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) > std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) > std::forward<_Up>(__u)) - { - return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), - __ptr_cmp<_Tp, _Up>{}); - } - - template - constexpr bool - operator()(_Tp* __t, _Up* __u) const noexcept - { return greater>{}(__t, __u); } - - typedef __is_transparent is_transparent; - - private: - template - static constexpr decltype(auto) - _S_cmp(_Tp&& __t, _Up&& __u, false_type) - { return std::forward<_Tp>(__t) > std::forward<_Up>(__u); } - - template - static constexpr bool - _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept - { - return greater{}( - static_cast(std::forward<_Tp>(__t)), - static_cast(std::forward<_Up>(__u))); - } - - - template - struct __not_overloaded2 : true_type { }; - - - template - struct __not_overloaded2<_Tp, _Up, __void_t< - decltype(std::declval<_Tp>().operator>(std::declval<_Up>()))>> - : false_type { }; - - - template - struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; - - - template - struct __not_overloaded<_Tp, _Up, __void_t< - decltype(operator>(std::declval<_Tp>(), std::declval<_Up>()))>> - : false_type { }; - - template - using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, - is_convertible<_Tp, const volatile void*>, - is_convertible<_Up, const volatile void*>>; - }; - - - template<> - struct less - { - template - constexpr auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) < std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) < std::forward<_Up>(__u)) - { - return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), - __ptr_cmp<_Tp, _Up>{}); - } - - template - constexpr bool - operator()(_Tp* __t, _Up* __u) const noexcept - { return less>{}(__t, __u); } - - typedef __is_transparent is_transparent; - - private: - template - static constexpr decltype(auto) - _S_cmp(_Tp&& __t, _Up&& __u, false_type) - { return std::forward<_Tp>(__t) < std::forward<_Up>(__u); } - - template - static constexpr bool - _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept - { - return less{}( - static_cast(std::forward<_Tp>(__t)), - static_cast(std::forward<_Up>(__u))); - } - - - template - struct __not_overloaded2 : true_type { }; - - - template - struct __not_overloaded2<_Tp, _Up, __void_t< - decltype(std::declval<_Tp>().operator<(std::declval<_Up>()))>> - : false_type { }; - - - template - struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; - - - template - struct __not_overloaded<_Tp, _Up, __void_t< - decltype(operator<(std::declval<_Tp>(), std::declval<_Up>()))>> - : false_type { }; - - template - using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, - is_convertible<_Tp, const volatile void*>, - is_convertible<_Up, const volatile void*>>; - }; - - - template<> - struct greater_equal - { - template - constexpr auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) >= std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) >= std::forward<_Up>(__u)) - { - return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), - __ptr_cmp<_Tp, _Up>{}); - } - - template - constexpr bool - operator()(_Tp* __t, _Up* __u) const noexcept - { return greater_equal>{}(__t, __u); } - - typedef __is_transparent is_transparent; - - private: - template - static constexpr decltype(auto) - _S_cmp(_Tp&& __t, _Up&& __u, false_type) - { return std::forward<_Tp>(__t) >= std::forward<_Up>(__u); } - - template - static constexpr bool - _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept - { - return greater_equal{}( - static_cast(std::forward<_Tp>(__t)), - static_cast(std::forward<_Up>(__u))); - } - - - template - struct __not_overloaded2 : true_type { }; - - - template - struct __not_overloaded2<_Tp, _Up, __void_t< - decltype(std::declval<_Tp>().operator>=(std::declval<_Up>()))>> - : false_type { }; - - - template - struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; - - - template - struct __not_overloaded<_Tp, _Up, __void_t< - decltype(operator>=(std::declval<_Tp>(), std::declval<_Up>()))>> - : false_type { }; - - template - using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, - is_convertible<_Tp, const volatile void*>, - is_convertible<_Up, const volatile void*>>; - }; - - - template<> - struct less_equal - { - template - constexpr auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) <= std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) <= std::forward<_Up>(__u)) - { - return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), - __ptr_cmp<_Tp, _Up>{}); - } - - template - constexpr bool - operator()(_Tp* __t, _Up* __u) const noexcept - { return less_equal>{}(__t, __u); } - - typedef __is_transparent is_transparent; - - private: - template - static constexpr decltype(auto) - _S_cmp(_Tp&& __t, _Up&& __u, false_type) - { return std::forward<_Tp>(__t) <= std::forward<_Up>(__u); } - - template - static constexpr bool - _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept - { - return less_equal{}( - static_cast(std::forward<_Tp>(__t)), - static_cast(std::forward<_Up>(__u))); - } - - - template - struct __not_overloaded2 : true_type { }; - - - template - struct __not_overloaded2<_Tp, _Up, __void_t< - decltype(std::declval<_Tp>().operator<=(std::declval<_Up>()))>> - : false_type { }; - - - template - struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; - - - template - struct __not_overloaded<_Tp, _Up, __void_t< - decltype(operator<=(std::declval<_Tp>(), std::declval<_Up>()))>> - : false_type { }; - - template - using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, - is_convertible<_Tp, const volatile void*>, - is_convertible<_Up, const volatile void*>>; - }; -# 774 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_function.h" 3 - template - struct logical_and; - - template - struct logical_or; - - template - struct logical_not; - - - - template - struct logical_and : public binary_function<_Tp, _Tp, bool> - { - constexpr - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x && __y; } - }; - - - template - struct logical_or : public binary_function<_Tp, _Tp, bool> - { - constexpr - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x || __y; } - }; - - - template - struct logical_not : public unary_function<_Tp, bool> - { - constexpr - bool - operator()(const _Tp& __x) const - { return !__x; } - }; - - - - template<> - struct logical_and - { - template - constexpr - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) && std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) && std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) && std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - - template<> - struct logical_or - { - template - constexpr - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) || std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) || std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) || std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - - template<> - struct logical_not - { - template - constexpr - auto - operator()(_Tp&& __t) const - noexcept(noexcept(!std::forward<_Tp>(__t))) - -> decltype(!std::forward<_Tp>(__t)) - { return !std::forward<_Tp>(__t); } - - typedef __is_transparent is_transparent; - }; - - - - - template - struct bit_and; - - template - struct bit_or; - - template - struct bit_xor; - - template - struct bit_not; - - - - - template - struct bit_and : public binary_function<_Tp, _Tp, _Tp> - { - constexpr - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x & __y; } - }; - - template - struct bit_or : public binary_function<_Tp, _Tp, _Tp> - { - constexpr - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x | __y; } - }; - - template - struct bit_xor : public binary_function<_Tp, _Tp, _Tp> - { - constexpr - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x ^ __y; } - }; - - template - struct bit_not : public unary_function<_Tp, _Tp> - { - constexpr - _Tp - operator()(const _Tp& __x) const - { return ~__x; } - }; - - - template <> - struct bit_and - { - template - constexpr - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) & std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) & std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) & std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - template <> - struct bit_or - { - template - constexpr - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) | std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) | std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) | std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - template <> - struct bit_xor - { - template - constexpr - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) ^ std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) ^ std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) ^ std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - template <> - struct bit_not - { - template - constexpr - auto - operator()(_Tp&& __t) const - noexcept(noexcept(~std::forward<_Tp>(__t))) - -> decltype(~std::forward<_Tp>(__t)) - { return ~std::forward<_Tp>(__t); } - - typedef __is_transparent is_transparent; - }; -# 1002 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_function.h" 3 - template - class unary_negate - : public unary_function - { - protected: - _Predicate _M_pred; - - public: - constexpr - explicit - unary_negate(const _Predicate& __x) : _M_pred(__x) { } - - constexpr - bool - operator()(const typename _Predicate::argument_type& __x) const - { return !_M_pred(__x); } - }; - - - template - constexpr - inline unary_negate<_Predicate> - not1(const _Predicate& __pred) - { return unary_negate<_Predicate>(__pred); } - - - template - class binary_negate - : public binary_function - { - protected: - _Predicate _M_pred; - - public: - constexpr - explicit - binary_negate(const _Predicate& __x) : _M_pred(__x) { } - - constexpr - bool - operator()(const typename _Predicate::first_argument_type& __x, - const typename _Predicate::second_argument_type& __y) const - { return !_M_pred(__x, __y); } - }; - - - template - constexpr - inline binary_negate<_Predicate> - not2(const _Predicate& __pred) - { return binary_negate<_Predicate>(__pred); } -# 1079 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_function.h" 3 - template - class pointer_to_unary_function : public unary_function<_Arg, _Result> - { - protected: - _Result (*_M_ptr)(_Arg); - - public: - pointer_to_unary_function() { } - - explicit - pointer_to_unary_function(_Result (*__x)(_Arg)) - : _M_ptr(__x) { } - - _Result - operator()(_Arg __x) const - { return _M_ptr(__x); } - }; - - - template - inline pointer_to_unary_function<_Arg, _Result> - ptr_fun(_Result (*__x)(_Arg)) - { return pointer_to_unary_function<_Arg, _Result>(__x); } - - - template - class pointer_to_binary_function - : public binary_function<_Arg1, _Arg2, _Result> - { - protected: - _Result (*_M_ptr)(_Arg1, _Arg2); - - public: - pointer_to_binary_function() { } - - explicit - pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) - : _M_ptr(__x) { } - - _Result - operator()(_Arg1 __x, _Arg2 __y) const - { return _M_ptr(__x, __y); } - }; - - - template - inline pointer_to_binary_function<_Arg1, _Arg2, _Result> - ptr_fun(_Result (*__x)(_Arg1, _Arg2)) - { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } - - - template - struct _Identity - : public unary_function<_Tp, _Tp> - { - _Tp& - operator()(_Tp& __x) const - { return __x; } - - const _Tp& - operator()(const _Tp& __x) const - { return __x; } - }; - - - template struct _Identity : _Identity<_Tp> { }; - - template - struct _Select1st - : public unary_function<_Pair, typename _Pair::first_type> - { - typename _Pair::first_type& - operator()(_Pair& __x) const - { return __x.first; } - - const typename _Pair::first_type& - operator()(const _Pair& __x) const - { return __x.first; } - - - template - typename _Pair2::first_type& - operator()(_Pair2& __x) const - { return __x.first; } - - template - const typename _Pair2::first_type& - operator()(const _Pair2& __x) const - { return __x.first; } - - }; - - template - struct _Select2nd - : public unary_function<_Pair, typename _Pair::second_type> - { - typename _Pair::second_type& - operator()(_Pair& __x) const - { return __x.second; } - - const typename _Pair::second_type& - operator()(const _Pair& __x) const - { return __x.second; } - }; -# 1202 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_function.h" 3 - template - class mem_fun_t : public unary_function<_Tp*, _Ret> - { - public: - explicit - mem_fun_t(_Ret (_Tp::*__pf)()) - : _M_f(__pf) { } - - _Ret - operator()(_Tp* __p) const - { return (__p->*_M_f)(); } - - private: - _Ret (_Tp::*_M_f)(); - }; - - - - template - class const_mem_fun_t : public unary_function - { - public: - explicit - const_mem_fun_t(_Ret (_Tp::*__pf)() const) - : _M_f(__pf) { } - - _Ret - operator()(const _Tp* __p) const - { return (__p->*_M_f)(); } - - private: - _Ret (_Tp::*_M_f)() const; - }; - - - - template - class mem_fun_ref_t : public unary_function<_Tp, _Ret> - { - public: - explicit - mem_fun_ref_t(_Ret (_Tp::*__pf)()) - : _M_f(__pf) { } - - _Ret - operator()(_Tp& __r) const - { return (__r.*_M_f)(); } - - private: - _Ret (_Tp::*_M_f)(); - }; - - - - template - class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> - { - public: - explicit - const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) - : _M_f(__pf) { } - - _Ret - operator()(const _Tp& __r) const - { return (__r.*_M_f)(); } - - private: - _Ret (_Tp::*_M_f)() const; - }; - - - - template - class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> - { - public: - explicit - mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) - : _M_f(__pf) { } - - _Ret - operator()(_Tp* __p, _Arg __x) const - { return (__p->*_M_f)(__x); } - - private: - _Ret (_Tp::*_M_f)(_Arg); - }; - - - - template - class const_mem_fun1_t : public binary_function - { - public: - explicit - const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) - : _M_f(__pf) { } - - _Ret - operator()(const _Tp* __p, _Arg __x) const - { return (__p->*_M_f)(__x); } - - private: - _Ret (_Tp::*_M_f)(_Arg) const; - }; - - - - template - class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> - { - public: - explicit - mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) - : _M_f(__pf) { } - - _Ret - operator()(_Tp& __r, _Arg __x) const - { return (__r.*_M_f)(__x); } - - private: - _Ret (_Tp::*_M_f)(_Arg); - }; - - - - template - class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> - { - public: - explicit - const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) - : _M_f(__pf) { } - - _Ret - operator()(const _Tp& __r, _Arg __x) const - { return (__r.*_M_f)(__x); } - - private: - _Ret (_Tp::*_M_f)(_Arg) const; - }; - - - - template - inline mem_fun_t<_Ret, _Tp> - mem_fun(_Ret (_Tp::*__f)()) - { return mem_fun_t<_Ret, _Tp>(__f); } - - template - inline const_mem_fun_t<_Ret, _Tp> - mem_fun(_Ret (_Tp::*__f)() const) - { return const_mem_fun_t<_Ret, _Tp>(__f); } - - template - inline mem_fun_ref_t<_Ret, _Tp> - mem_fun_ref(_Ret (_Tp::*__f)()) - { return mem_fun_ref_t<_Ret, _Tp>(__f); } - - template - inline const_mem_fun_ref_t<_Ret, _Tp> - mem_fun_ref(_Ret (_Tp::*__f)() const) - { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } - - template - inline mem_fun1_t<_Ret, _Tp, _Arg> - mem_fun(_Ret (_Tp::*__f)(_Arg)) - { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } - - template - inline const_mem_fun1_t<_Ret, _Tp, _Arg> - mem_fun(_Ret (_Tp::*__f)(_Arg) const) - { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } - - template - inline mem_fun1_ref_t<_Ret, _Tp, _Arg> - mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) - { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } - - template - inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> - mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) - { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } - - - - -} - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/backward/binders.h" 1 3 -# 60 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/backward/binders.h" 3 -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 107 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/backward/binders.h" 3 - template - class binder1st - : public unary_function - { - protected: - _Operation op; - typename _Operation::first_argument_type value; - - public: - binder1st(const _Operation& __x, - const typename _Operation::first_argument_type& __y) - : op(__x), value(__y) { } - - typename _Operation::result_type - operator()(const typename _Operation::second_argument_type& __x) const - { return op(value, __x); } - - - - typename _Operation::result_type - operator()(typename _Operation::second_argument_type& __x) const - { return op(value, __x); } - } __attribute__ ((__deprecated__)); - - - template - inline binder1st<_Operation> - bind1st(const _Operation& __fn, const _Tp& __x) - { - typedef typename _Operation::first_argument_type _Arg1_type; - return binder1st<_Operation>(__fn, _Arg1_type(__x)); - } - - - template - class binder2nd - : public unary_function - { - protected: - _Operation op; - typename _Operation::second_argument_type value; - - public: - binder2nd(const _Operation& __x, - const typename _Operation::second_argument_type& __y) - : op(__x), value(__y) { } - - typename _Operation::result_type - operator()(const typename _Operation::first_argument_type& __x) const - { return op(__x, value); } - - - - typename _Operation::result_type - operator()(typename _Operation::first_argument_type& __x) const - { return op(__x, value); } - } __attribute__ ((__deprecated__)); - - - template - inline binder2nd<_Operation> - bind2nd(const _Operation& __fn, const _Tp& __x) - { - typedef typename _Operation::second_argument_type _Arg2_type; - return binder2nd<_Operation>(__fn, _Arg2_type(__x)); - } - - - -} - -#pragma GCC diagnostic pop -# 1393 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_function.h" 2 3 -# 49 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/string" 2 3 - - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/range_access.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/range_access.h" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/range_access.h" 3 - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/initializer_list" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/initializer_list" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/initializer_list" 3 - - - - - -#pragma GCC visibility push(default) - - - -namespace std -{ - - template - class initializer_list - { - public: - typedef _E value_type; - typedef const _E& reference; - typedef const _E& const_reference; - typedef size_t size_type; - typedef const _E* iterator; - typedef const _E* const_iterator; - - private: - iterator _M_array; - size_type _M_len; - - - constexpr initializer_list(const_iterator __a, size_type __l) - : _M_array(__a), _M_len(__l) { } - - public: - constexpr initializer_list() noexcept - : _M_array(0), _M_len(0) { } - - - constexpr size_type - size() const noexcept { return _M_len; } - - - constexpr const_iterator - begin() const noexcept { return _M_array; } - - - constexpr const_iterator - end() const noexcept { return begin() + size(); } - }; - - - - - - - - template - constexpr const _Tp* - begin(initializer_list<_Tp> __ils) noexcept - { return __ils.begin(); } - - - - - - - - template - constexpr const _Tp* - end(initializer_list<_Tp> __ils) noexcept - { return __ils.end(); } -} - -#pragma GCC visibility pop -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/range_access.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/iterator_concepts.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/iterator_concepts.h" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/iterator_concepts.h" 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/concepts" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/iterator_concepts.h" 2 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/range_cmp.h" 1 3 -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/iterator_concepts.h" 2 3 -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/range_access.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/int_limits.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/int_limits.h" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/int_limits.h" 3 - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -namespace __detail -{ - - - - - - - template::value> - struct __int_limits - { - static_assert(is_integral<_Tp>::value, "unsupported specialization"); - using _Up = typename make_unsigned<_Tp>::type; - static constexpr int digits = sizeof(_Tp) * 8 - 1; - static constexpr _Tp min() noexcept { return _Tp(_Up(1) << digits); } - static constexpr _Tp max() noexcept { return _Tp(_Up(~_Up(0)) >> 1); } - }; - - - template - struct __int_limits<_Tp, false> - { - static_assert(is_integral<_Tp>::value, "unsupported specialization"); - static constexpr int digits = sizeof(_Tp) * 8; - static constexpr _Tp min() noexcept { return 0; } - static constexpr _Tp max() noexcept { return _Tp(-1); } - }; - - template<> struct __int_limits; -} - -} -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/range_access.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - - template - inline auto - begin(_Container& __cont) -> decltype(__cont.begin()) - { return __cont.begin(); } - - - - - - - template - inline auto - begin(const _Container& __cont) -> decltype(__cont.begin()) - { return __cont.begin(); } - - - - - - - template - inline auto - end(_Container& __cont) -> decltype(__cont.end()) - { return __cont.end(); } - - - - - - - template - inline auto - end(const _Container& __cont) -> decltype(__cont.end()) - { return __cont.end(); } - - - - - - template - inline constexpr _Tp* - begin(_Tp (&__arr)[_Nm]) - { return __arr; } - - - - - - - template - inline constexpr _Tp* - end(_Tp (&__arr)[_Nm]) - { return __arr + _Nm; } - - - - template class valarray; - - template _Tp* begin(valarray<_Tp>&); - template const _Tp* begin(const valarray<_Tp>&); - template _Tp* end(valarray<_Tp>&); - template const _Tp* end(const valarray<_Tp>&); - - - - - - - template - inline constexpr auto - cbegin(const _Container& __cont) noexcept(noexcept(std::begin(__cont))) - -> decltype(std::begin(__cont)) - { return std::begin(__cont); } - - - - - - - template - inline constexpr auto - cend(const _Container& __cont) noexcept(noexcept(std::end(__cont))) - -> decltype(std::end(__cont)) - { return std::end(__cont); } - - - - - - - template - inline auto - rbegin(_Container& __cont) -> decltype(__cont.rbegin()) - { return __cont.rbegin(); } - - - - - - - template - inline auto - rbegin(const _Container& __cont) -> decltype(__cont.rbegin()) - { return __cont.rbegin(); } - - - - - - - template - inline auto - rend(_Container& __cont) -> decltype(__cont.rend()) - { return __cont.rend(); } - - - - - - - template - inline auto - rend(const _Container& __cont) -> decltype(__cont.rend()) - { return __cont.rend(); } - - - - - - - template - inline reverse_iterator<_Tp*> - rbegin(_Tp (&__arr)[_Nm]) - { return reverse_iterator<_Tp*>(__arr + _Nm); } - - - - - - - template - inline reverse_iterator<_Tp*> - rend(_Tp (&__arr)[_Nm]) - { return reverse_iterator<_Tp*>(__arr); } - - - - - - - template - inline reverse_iterator - rbegin(initializer_list<_Tp> __il) - { return reverse_iterator(__il.end()); } - - - - - - - template - inline reverse_iterator - rend(initializer_list<_Tp> __il) - { return reverse_iterator(__il.begin()); } - - - - - - - template - inline auto - crbegin(const _Container& __cont) -> decltype(std::rbegin(__cont)) - { return std::rbegin(__cont); } - - - - - - - template - inline auto - crend(const _Container& __cont) -> decltype(std::rend(__cont)) - { return std::rend(__cont); } -# 1143 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/range_access.h" 3 - -} -# 55 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/string" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/alloc_traits.h" 1 3 -# 32 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/alloc_traits.h" 3 - -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/alloc_traits.h" 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_construct.h" 1 3 -# 73 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_construct.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 106 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_construct.h" 3 - template - inline void - _Construct(_Tp* __p, _Args&&... __args) - { ::new(static_cast(__p)) _Tp(std::forward<_Args>(__args)...); } -# 121 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_construct.h" 3 - template - inline void - _Construct_novalue(_T1* __p) - { ::new(static_cast(__p)) _T1; } - - template - void - _Destroy(_ForwardIterator __first, _ForwardIterator __last); - - - - - template - constexpr inline void - _Destroy(_Tp* __pointer) - { - - - - __pointer->~_Tp(); - - } - - template - struct _Destroy_aux - { - template - static void - __destroy(_ForwardIterator __first, _ForwardIterator __last) - { - for (; __first != __last; ++__first) - std::_Destroy(std::__addressof(*__first)); - } - }; - - template<> - struct _Destroy_aux - { - template - static void - __destroy(_ForwardIterator, _ForwardIterator) { } - }; - - - - - - - template - inline void - _Destroy(_ForwardIterator __first, _ForwardIterator __last) - { - typedef typename iterator_traits<_ForwardIterator>::value_type - _Value_type; - - - static_assert(is_destructible<_Value_type>::value, - "value type is destructible"); - - - - - - std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: - __destroy(__first, __last); - } - - template - struct _Destroy_n_aux - { - template - static _ForwardIterator - __destroy_n(_ForwardIterator __first, _Size __count) - { - for (; __count > 0; (void)++__first, --__count) - std::_Destroy(std::__addressof(*__first)); - return __first; - } - }; - - template<> - struct _Destroy_n_aux - { - template - static _ForwardIterator - __destroy_n(_ForwardIterator __first, _Size __count) - { - std::advance(__first, __count); - return __first; - } - }; - - - - - - - template - inline _ForwardIterator - _Destroy_n(_ForwardIterator __first, _Size __count) - { - typedef typename iterator_traits<_ForwardIterator>::value_type - _Value_type; - - - static_assert(is_destructible<_Value_type>::value, - "value type is destructible"); - - - - - - return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>:: - __destroy_n(__first, __count); - } -# 253 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_construct.h" 3 - -} -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 2 3 - - - - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - struct __allocator_traits_base - { - template - struct __rebind : __replace_first_arg<_Tp, _Up> { }; - - template - struct __rebind<_Tp, _Up, - __void_t::other>> - { using type = typename _Tp::template rebind<_Up>::other; }; - - protected: - template - using __pointer = typename _Tp::pointer; - template - using __c_pointer = typename _Tp::const_pointer; - template - using __v_pointer = typename _Tp::void_pointer; - template - using __cv_pointer = typename _Tp::const_void_pointer; - template - using __pocca = typename _Tp::propagate_on_container_copy_assignment; - template - using __pocma = typename _Tp::propagate_on_container_move_assignment; - template - using __pocs = typename _Tp::propagate_on_container_swap; - template - using __equal = typename _Tp::is_always_equal; - }; - - template - using __alloc_rebind - = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type; - - - - - - template - struct allocator_traits : __allocator_traits_base - { - - typedef _Alloc allocator_type; - - typedef typename _Alloc::value_type value_type; - - - - - - - using pointer = __detected_or_t; - - private: - - template class _Func, typename _Tp, typename = void> - struct _Ptr - { - using type = typename pointer_traits::template rebind<_Tp>; - }; - - template class _Func, typename _Tp> - struct _Ptr<_Func, _Tp, __void_t<_Func<_Alloc>>> - { - using type = _Func<_Alloc>; - }; - - - template - struct _Diff - { using type = typename pointer_traits<_PtrT>::difference_type; }; - - template - struct _Diff<_A2, _PtrT, __void_t> - { using type = typename _A2::difference_type; }; - - - template - struct _Size : make_unsigned<_DiffT> { }; - - template - struct _Size<_A2, _DiffT, __void_t> - { using type = typename _A2::size_type; }; - - public: - - - - - - - using const_pointer = typename _Ptr<__c_pointer, const value_type>::type; - - - - - - - - using void_pointer = typename _Ptr<__v_pointer, void>::type; - - - - - - - - using const_void_pointer = typename _Ptr<__cv_pointer, const void>::type; - - - - - - - - using difference_type = typename _Diff<_Alloc, pointer>::type; - - - - - - - - using size_type = typename _Size<_Alloc, difference_type>::type; - - - - - - - - using propagate_on_container_copy_assignment - = __detected_or_t; - - - - - - - - using propagate_on_container_move_assignment - = __detected_or_t; - - - - - - - - using propagate_on_container_swap - = __detected_or_t; - - - - - - - - using is_always_equal - = __detected_or_t::type, __equal, _Alloc>; - - template - using rebind_alloc = __alloc_rebind<_Alloc, _Tp>; - template - using rebind_traits = allocator_traits>; - - private: - template - static constexpr auto - _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint, int) - -> decltype(__a.allocate(__n, __hint)) - { return __a.allocate(__n, __hint); } - - template - static constexpr pointer - _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer, ...) - { return __a.allocate(__n); } - - template - struct __construct_helper - { - template()->construct( - std::declval<_Tp*>(), std::declval<_Args>()...))> - static true_type __test(int); - - template - static false_type __test(...); - - using type = decltype(__test<_Alloc>(0)); - }; - - template - using __has_construct - = typename __construct_helper<_Tp, _Args...>::type; - - template - static constexpr _Require<__has_construct<_Tp, _Args...>> - _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args) - noexcept(noexcept(__a.construct(__p, std::forward<_Args>(__args)...))) - { __a.construct(__p, std::forward<_Args>(__args)...); } - - template - static constexpr - _Require<__and_<__not_<__has_construct<_Tp, _Args...>>, - is_constructible<_Tp, _Args...>>> - _S_construct(_Alloc&, _Tp* __p, _Args&&... __args) - noexcept(std::is_nothrow_constructible<_Tp, _Args...>::value) - { - - ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); - - - - } - - template - static constexpr auto - _S_destroy(_Alloc2& __a, _Tp* __p, int) - noexcept(noexcept(__a.destroy(__p))) - -> decltype(__a.destroy(__p)) - { __a.destroy(__p); } - - template - static constexpr void - _S_destroy(_Alloc2&, _Tp* __p, ...) - noexcept(std::is_nothrow_destructible<_Tp>::value) - { std::_Destroy(__p); } - - template - static constexpr auto - _S_max_size(_Alloc2& __a, int) - -> decltype(__a.max_size()) - { return __a.max_size(); } - - template - static constexpr size_type - _S_max_size(_Alloc2&, ...) - { - - - return __gnu_cxx::__numeric_traits::__max - / sizeof(value_type); - } - - template - static constexpr auto - _S_select(_Alloc2& __a, int) - -> decltype(__a.select_on_container_copy_construction()) - { return __a.select_on_container_copy_construction(); } - - template - static constexpr _Alloc2 - _S_select(_Alloc2& __a, ...) - { return __a; } - - public: -# 312 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 3 - static pointer - allocate(_Alloc& __a, size_type __n) - { return __a.allocate(__n); } -# 327 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 3 - static pointer - allocate(_Alloc& __a, size_type __n, const_void_pointer __hint) - { return _S_allocate(__a, __n, __hint, 0); } -# 339 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 3 - static void - deallocate(_Alloc& __a, pointer __p, size_type __n) - { __a.deallocate(__p, __n); } -# 354 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 3 - template - static auto - construct(_Alloc& __a, _Tp* __p, _Args&&... __args) - noexcept(noexcept(_S_construct(__a, __p, - std::forward<_Args>(__args)...))) - -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...)) - { _S_construct(__a, __p, std::forward<_Args>(__args)...); } -# 370 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 3 - template - static void - destroy(_Alloc& __a, _Tp* __p) - noexcept(noexcept(_S_destroy(__a, __p, 0))) - { _S_destroy(__a, __p, 0); } -# 384 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 3 - static size_type - max_size(const _Alloc& __a) noexcept - { return _S_max_size(__a, 0); } -# 396 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 3 - static _Alloc - select_on_container_copy_construction(const _Alloc& __rhs) - { return _S_select(__rhs, 0); } - }; - - - - - - - template - struct allocator_traits> - { - - using allocator_type = allocator<_Tp>; - - - using value_type = _Tp; - - - using pointer = _Tp*; - - - using const_pointer = const _Tp*; - - - using void_pointer = void*; - - - using const_void_pointer = const void*; - - - using difference_type = std::ptrdiff_t; - - - using size_type = std::size_t; - - - using propagate_on_container_copy_assignment = false_type; - - - using propagate_on_container_move_assignment = true_type; - - - using propagate_on_container_swap = false_type; - - - using is_always_equal = true_type; - - template - using rebind_alloc = allocator<_Up>; - - template - using rebind_traits = allocator_traits>; -# 458 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 3 - static pointer - allocate(allocator_type& __a, size_type __n) - { return __a.allocate(__n); } -# 472 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 3 - static pointer - allocate(allocator_type& __a, size_type __n, const_void_pointer __hint) - { - - return __a.allocate(__n, __hint); - - - - } -# 490 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 3 - static void - deallocate(allocator_type& __a, pointer __p, size_type __n) - { __a.deallocate(__p, __n); } -# 505 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 3 - template - static void - construct(allocator_type& __a __attribute__((__unused__)), _Up* __p, - _Args&&... __args) - noexcept(std::is_nothrow_constructible<_Up, _Args...>::value) - { - - __a.construct(__p, std::forward<_Args>(__args)...); - - - - } -# 525 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 3 - template - static void - destroy(allocator_type& __a __attribute__((__unused__)), _Up* __p) - noexcept(is_nothrow_destructible<_Up>::value) - { - - __a.destroy(__p); - - - - } - - - - - - - static size_type - max_size(const allocator_type& __a __attribute__((__unused__))) noexcept - { - - return __a.max_size(); - - - - } - - - - - - - static allocator_type - select_on_container_copy_construction(const allocator_type& __rhs) - { return __rhs; } - }; - - - template - inline void - __do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type) - { __one = __two; } - - template - inline void - __do_alloc_on_copy(_Alloc&, const _Alloc&, false_type) - { } - - - template - constexpr inline void - __alloc_on_copy(_Alloc& __one, const _Alloc& __two) - { - typedef allocator_traits<_Alloc> __traits; - typedef typename __traits::propagate_on_container_copy_assignment __pocca; - - - - - __do_alloc_on_copy(__one, __two, __pocca()); - - } - - template - constexpr _Alloc - __alloc_on_copy(const _Alloc& __a) - { - typedef allocator_traits<_Alloc> __traits; - return __traits::select_on_container_copy_construction(__a); - } - - - template - inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type) - { __one = std::move(__two); } - - template - inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type) - { } - - - template - constexpr inline void - __alloc_on_move(_Alloc& __one, _Alloc& __two) - { - typedef allocator_traits<_Alloc> __traits; - typedef typename __traits::propagate_on_container_move_assignment __pocma; - - - - - __do_alloc_on_move(__one, __two, __pocma()); - - } - - - template - inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type) - { - using std::swap; - swap(__one, __two); - } - - template - inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type) - { } - - - template - constexpr inline void - __alloc_on_swap(_Alloc& __one, _Alloc& __two) - { - typedef allocator_traits<_Alloc> __traits; - typedef typename __traits::propagate_on_container_swap __pocs; - - - - - - - - __do_alloc_on_swap(__one, __two, __pocs()); - - } - - template, - typename = void> - struct __is_alloc_insertable_impl - : false_type - { }; - - template - struct __is_alloc_insertable_impl<_Alloc, _Tp, _ValueT, - __void_t::construct( - std::declval<_Alloc&>(), std::declval<_ValueT*>(), - std::declval<_Tp>()))>> - : true_type - { }; - - - - - template - struct __is_copy_insertable - : __is_alloc_insertable_impl<_Alloc, - typename _Alloc::value_type const&>::type - { }; - - - template - struct __is_copy_insertable> - : is_copy_constructible<_Tp> - { }; - - - - - template - struct __is_move_insertable - : __is_alloc_insertable_impl<_Alloc, typename _Alloc::value_type>::type - { }; - - - template - struct __is_move_insertable> - : is_move_constructible<_Tp> - { }; - - - template - struct __is_allocator : false_type { }; - - template - struct __is_allocator<_Alloc, - __void_t().allocate(size_t{}))>> - : true_type { }; - - template - using _RequireAllocator - = typename enable_if<__is_allocator<_Alloc>::value, _Alloc>::type; - - template - using _RequireNotAllocator - = typename enable_if::value, _Alloc>::type; -# 719 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h" 3 - template - void - _Destroy(_ForwardIterator __first, _ForwardIterator __last, - _Allocator& __alloc) - { - for (; __first != __last; ++__first) - - - - allocator_traits<_Allocator>::destroy(__alloc, - std::__addressof(*__first)); - - } - - template - inline void - _Destroy(_ForwardIterator __first, _ForwardIterator __last, - allocator<_Tp>&) - { - _Destroy(__first, __last); - } - - -} -# 35 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/alloc_traits.h" 2 3 - - - - -namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) -{ - - - - - - -template - struct __alloc_traits - - : std::allocator_traits<_Alloc> - - { - typedef _Alloc allocator_type; - - typedef std::allocator_traits<_Alloc> _Base_type; - typedef typename _Base_type::value_type value_type; - typedef typename _Base_type::pointer pointer; - typedef typename _Base_type::const_pointer const_pointer; - typedef typename _Base_type::size_type size_type; - typedef typename _Base_type::difference_type difference_type; - - typedef value_type& reference; - typedef const value_type& const_reference; - using _Base_type::allocate; - using _Base_type::deallocate; - using _Base_type::construct; - using _Base_type::destroy; - using _Base_type::max_size; - - private: - template - using __is_custom_pointer - = std::__and_, - std::__not_>>; - - public: - - template - static constexpr - std::__enable_if_t<__is_custom_pointer<_Ptr>::value> - construct(_Alloc& __a, _Ptr __p, _Args&&... __args) - noexcept(noexcept(_Base_type::construct(__a, std::__to_address(__p), - std::forward<_Args>(__args)...))) - { - _Base_type::construct(__a, std::__to_address(__p), - std::forward<_Args>(__args)...); - } - - - template - static constexpr - std::__enable_if_t<__is_custom_pointer<_Ptr>::value> - destroy(_Alloc& __a, _Ptr __p) - noexcept(noexcept(_Base_type::destroy(__a, std::__to_address(__p)))) - { _Base_type::destroy(__a, std::__to_address(__p)); } - - static constexpr _Alloc _S_select_on_copy(const _Alloc& __a) - { return _Base_type::select_on_container_copy_construction(__a); } - - static constexpr void _S_on_swap(_Alloc& __a, _Alloc& __b) - { std::__alloc_on_swap(__a, __b); } - - static constexpr bool _S_propagate_on_copy_assign() - { return _Base_type::propagate_on_container_copy_assignment::value; } - - static constexpr bool _S_propagate_on_move_assign() - { return _Base_type::propagate_on_container_move_assignment::value; } - - static constexpr bool _S_propagate_on_swap() - { return _Base_type::propagate_on_container_swap::value; } - - static constexpr bool _S_always_equal() - { return _Base_type::is_always_equal::value; } - - static constexpr bool _S_nothrow_move() - { return _S_propagate_on_move_assign() || _S_always_equal(); } - - template - struct rebind - { typedef typename _Base_type::template rebind_alloc<_Tp> other; }; -# 166 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/alloc_traits.h" 3 - }; - - -} -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 2 3 -# 52 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - -namespace __cxx11 { -# 76 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template - class basic_string - { - typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template - rebind<_CharT>::other _Char_alloc_type; - typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; - - - public: - typedef _Traits traits_type; - typedef typename _Traits::char_type value_type; - typedef _Char_alloc_type allocator_type; - typedef typename _Alloc_traits::size_type size_type; - typedef typename _Alloc_traits::difference_type difference_type; - typedef typename _Alloc_traits::reference reference; - typedef typename _Alloc_traits::const_reference const_reference; - typedef typename _Alloc_traits::pointer pointer; - typedef typename _Alloc_traits::const_pointer const_pointer; - typedef __gnu_cxx::__normal_iterator iterator; - typedef __gnu_cxx::__normal_iterator - const_iterator; - typedef std::reverse_iterator const_reverse_iterator; - typedef std::reverse_iterator reverse_iterator; - - - static const size_type npos = static_cast(-1); - - protected: - - - - - typedef const_iterator __const_iterator; - - - private: -# 150 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - struct _Alloc_hider : allocator_type - { - - - - - _Alloc_hider(pointer __dat, const _Alloc& __a) - : allocator_type(__a), _M_p(__dat) { } - - _Alloc_hider(pointer __dat, _Alloc&& __a = _Alloc()) - : allocator_type(std::move(__a)), _M_p(__dat) { } - - - pointer _M_p; - }; - - _Alloc_hider _M_dataplus; - size_type _M_string_length; - - enum { _S_local_capacity = 15 / sizeof(_CharT) }; - - union - { - _CharT _M_local_buf[_S_local_capacity + 1]; - size_type _M_allocated_capacity; - }; - - void - _M_data(pointer __p) - { _M_dataplus._M_p = __p; } - - void - _M_length(size_type __length) - { _M_string_length = __length; } - - pointer - _M_data() const - { return _M_dataplus._M_p; } - - pointer - _M_local_data() - { - - return std::pointer_traits::pointer_to(*_M_local_buf); - - - - } - - const_pointer - _M_local_data() const - { - - return std::pointer_traits::pointer_to(*_M_local_buf); - - - - } - - void - _M_capacity(size_type __capacity) - { _M_allocated_capacity = __capacity; } - - void - _M_set_length(size_type __n) - { - _M_length(__n); - traits_type::assign(_M_data()[__n], _CharT()); - } - - bool - _M_is_local() const - { return _M_data() == _M_local_data(); } - - - pointer - _M_create(size_type&, size_type); - - void - _M_dispose() - { - if (!_M_is_local()) - _M_destroy(_M_allocated_capacity); - } - - void - _M_destroy(size_type __size) throw() - { _Alloc_traits::deallocate(_M_get_allocator(), _M_data(), __size + 1); } - - - - template - void - _M_construct_aux(_InIterator __beg, _InIterator __end, - std::__false_type) - { - typedef typename iterator_traits<_InIterator>::iterator_category _Tag; - _M_construct(__beg, __end, _Tag()); - } - - - - template - void - _M_construct_aux(_Integer __beg, _Integer __end, std::__true_type) - { _M_construct_aux_2(static_cast(__beg), __end); } - - void - _M_construct_aux_2(size_type __req, _CharT __c) - { _M_construct(__req, __c); } - - template - void - _M_construct(_InIterator __beg, _InIterator __end) - { - typedef typename std::__is_integer<_InIterator>::__type _Integral; - _M_construct_aux(__beg, __end, _Integral()); - } - - - template - void - _M_construct(_InIterator __beg, _InIterator __end, - std::input_iterator_tag); - - - - template - void - _M_construct(_FwdIterator __beg, _FwdIterator __end, - std::forward_iterator_tag); - - void - _M_construct(size_type __req, _CharT __c); - - allocator_type& - _M_get_allocator() - { return _M_dataplus; } - - const allocator_type& - _M_get_allocator() const - { return _M_dataplus; } - - private: -# 309 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - _M_check(size_type __pos, const char* __s) const - { - if (__pos > this->size()) - __throw_out_of_range_fmt(("%s: __pos (which is %zu) > " "this->size() (which is %zu)") - , - __s, __pos, this->size()); - return __pos; - } - - void - _M_check_length(size_type __n1, size_type __n2, const char* __s) const - { - if (this->max_size() - (this->size() - __n1) < __n2) - __throw_length_error((__s)); - } - - - - size_type - _M_limit(size_type __pos, size_type __off) const noexcept - { - const bool __testoff = __off < this->size() - __pos; - return __testoff ? __off : this->size() - __pos; - } - - - bool - _M_disjunct(const _CharT* __s) const noexcept - { - return (less()(__s, _M_data()) - || less()(_M_data() + this->size(), __s)); - } - - - - static void - _S_copy(_CharT* __d, const _CharT* __s, size_type __n) - { - if (__n == 1) - traits_type::assign(*__d, *__s); - else - traits_type::copy(__d, __s, __n); - } - - static void - _S_move(_CharT* __d, const _CharT* __s, size_type __n) - { - if (__n == 1) - traits_type::assign(*__d, *__s); - else - traits_type::move(__d, __s, __n); - } - - static void - _S_assign(_CharT* __d, size_type __n, _CharT __c) - { - if (__n == 1) - traits_type::assign(*__d, __c); - else - traits_type::assign(__d, __n, __c); - } - - - - template - static void - _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) - { - for (; __k1 != __k2; ++__k1, (void)++__p) - traits_type::assign(*__p, *__k1); - } - - static void - _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) noexcept - { _S_copy_chars(__p, __k1.base(), __k2.base()); } - - static void - _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) - noexcept - { _S_copy_chars(__p, __k1.base(), __k2.base()); } - - static void - _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) noexcept - { _S_copy(__p, __k1, __k2 - __k1); } - - static void - _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) - noexcept - { _S_copy(__p, __k1, __k2 - __k1); } - - static int - _S_compare(size_type __n1, size_type __n2) noexcept - { - const difference_type __d = difference_type(__n1 - __n2); - - if (__d > __gnu_cxx::__numeric_traits::__max) - return __gnu_cxx::__numeric_traits::__max; - else if (__d < __gnu_cxx::__numeric_traits::__min) - return __gnu_cxx::__numeric_traits::__min; - else - return int(__d); - } - - void - _M_assign(const basic_string&); - - void - _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, - size_type __len2); - - void - _M_erase(size_type __pos, size_type __n); - - public: - - - - - - - - basic_string() - noexcept(is_nothrow_default_constructible<_Alloc>::value) - : _M_dataplus(_M_local_data()) - { _M_set_length(0); } - - - - - explicit - basic_string(const _Alloc& __a) noexcept - : _M_dataplus(_M_local_data(), __a) - { _M_set_length(0); } - - - - - - basic_string(const basic_string& __str) - : _M_dataplus(_M_local_data(), - _Alloc_traits::_S_select_on_copy(__str._M_get_allocator())) - { _M_construct(__str._M_data(), __str._M_data() + __str.length()); } -# 461 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string(const basic_string& __str, size_type __pos, - const _Alloc& __a = _Alloc()) - : _M_dataplus(_M_local_data(), __a) - { - const _CharT* __start = __str._M_data() - + __str._M_check(__pos, "basic_string::basic_string"); - _M_construct(__start, __start + __str._M_limit(__pos, npos)); - } - - - - - - - - basic_string(const basic_string& __str, size_type __pos, - size_type __n) - : _M_dataplus(_M_local_data()) - { - const _CharT* __start = __str._M_data() - + __str._M_check(__pos, "basic_string::basic_string"); - _M_construct(__start, __start + __str._M_limit(__pos, __n)); - } -# 492 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string(const basic_string& __str, size_type __pos, - size_type __n, const _Alloc& __a) - : _M_dataplus(_M_local_data(), __a) - { - const _CharT* __start - = __str._M_data() + __str._M_check(__pos, "string::string"); - _M_construct(__start, __start + __str._M_limit(__pos, __n)); - } -# 510 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string(const _CharT* __s, size_type __n, - const _Alloc& __a = _Alloc()) - : _M_dataplus(_M_local_data(), __a) - { _M_construct(__s, __s + __n); } -# 525 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) - : _M_dataplus(_M_local_data(), __a) - { _M_construct(__s, __s ? __s + traits_type::length(__s) : __s+npos); } -# 540 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()) - : _M_dataplus(_M_local_data(), __a) - { _M_construct(__n, __c); } -# 552 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string(basic_string&& __str) noexcept - : _M_dataplus(_M_local_data(), std::move(__str._M_get_allocator())) - { - if (__str._M_is_local()) - { - traits_type::copy(_M_local_buf, __str._M_local_buf, - _S_local_capacity + 1); - } - else - { - _M_data(__str._M_data()); - _M_capacity(__str._M_allocated_capacity); - } - - - - - _M_length(__str.length()); - __str._M_data(__str._M_local_data()); - __str._M_set_length(0); - } - - - - - - - basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()) - : _M_dataplus(_M_local_data(), __a) - { _M_construct(__l.begin(), __l.end()); } - - basic_string(const basic_string& __str, const _Alloc& __a) - : _M_dataplus(_M_local_data(), __a) - { _M_construct(__str.begin(), __str.end()); } - - basic_string(basic_string&& __str, const _Alloc& __a) - noexcept(_Alloc_traits::_S_always_equal()) - : _M_dataplus(_M_local_data(), __a) - { - if (__str._M_is_local()) - { - traits_type::copy(_M_local_buf, __str._M_local_buf, - _S_local_capacity + 1); - _M_length(__str.length()); - __str._M_set_length(0); - } - else if (_Alloc_traits::_S_always_equal() - || __str.get_allocator() == __a) - { - _M_data(__str._M_data()); - _M_length(__str.length()); - _M_capacity(__str._M_allocated_capacity); - __str._M_data(__str._M_local_buf); - __str._M_set_length(0); - } - else - _M_construct(__str.begin(), __str.end()); - } -# 620 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template> - - - - basic_string(_InputIterator __beg, _InputIterator __end, - const _Alloc& __a = _Alloc()) - : _M_dataplus(_M_local_data(), __a) - { _M_construct(__beg, __end); } -# 657 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - ~basic_string() - { _M_dispose(); } - - - - - - basic_string& - operator=(const basic_string& __str) - { - return this->assign(__str); - } - - - - - - basic_string& - operator=(const _CharT* __s) - { return this->assign(__s); } -# 685 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - operator=(_CharT __c) - { - this->assign(1, __c); - return *this; - } -# 702 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - operator=(basic_string&& __str) - noexcept(_Alloc_traits::_S_nothrow_move()) - { - if (!_M_is_local() && _Alloc_traits::_S_propagate_on_move_assign() - && !_Alloc_traits::_S_always_equal() - && _M_get_allocator() != __str._M_get_allocator()) - { - - _M_destroy(_M_allocated_capacity); - _M_data(_M_local_data()); - _M_set_length(0); - } - - std::__alloc_on_move(_M_get_allocator(), __str._M_get_allocator()); - - if (__str._M_is_local()) - { - - if (__str.size()) - this->_S_copy(_M_data(), __str._M_data(), __str.size()); - _M_set_length(__str.size()); - } - else if (_Alloc_traits::_S_propagate_on_move_assign() - || _Alloc_traits::_S_always_equal() - || _M_get_allocator() == __str._M_get_allocator()) - { - - pointer __data = nullptr; - size_type __capacity; - if (!_M_is_local()) - { - if (_Alloc_traits::_S_always_equal()) - { - - __data = _M_data(); - __capacity = _M_allocated_capacity; - } - else - _M_destroy(_M_allocated_capacity); - } - - _M_data(__str._M_data()); - _M_length(__str.length()); - _M_capacity(__str._M_allocated_capacity); - if (__data) - { - __str._M_data(__data); - __str._M_capacity(__capacity); - } - else - __str._M_data(__str._M_local_buf); - } - else - assign(__str); - __str.clear(); - return *this; - } - - - - - - basic_string& - operator=(initializer_list<_CharT> __l) - { - this->assign(__l.begin(), __l.size()); - return *this; - } -# 796 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - iterator - begin() noexcept - { return iterator(_M_data()); } - - - - - - const_iterator - begin() const noexcept - { return const_iterator(_M_data()); } - - - - - - iterator - end() noexcept - { return iterator(_M_data() + this->size()); } - - - - - - const_iterator - end() const noexcept - { return const_iterator(_M_data() + this->size()); } - - - - - - - reverse_iterator - rbegin() noexcept - { return reverse_iterator(this->end()); } - - - - - - - const_reverse_iterator - rbegin() const noexcept - { return const_reverse_iterator(this->end()); } - - - - - - - reverse_iterator - rend() noexcept - { return reverse_iterator(this->begin()); } - - - - - - - const_reverse_iterator - rend() const noexcept - { return const_reverse_iterator(this->begin()); } - - - - - - - const_iterator - cbegin() const noexcept - { return const_iterator(this->_M_data()); } - - - - - - const_iterator - cend() const noexcept - { return const_iterator(this->_M_data() + this->size()); } - - - - - - - const_reverse_iterator - crbegin() const noexcept - { return const_reverse_iterator(this->end()); } - - - - - - - const_reverse_iterator - crend() const noexcept - { return const_reverse_iterator(this->begin()); } - - - public: - - - - size_type - size() const noexcept - { return _M_string_length; } - - - - size_type - length() const noexcept - { return _M_string_length; } - - - size_type - max_size() const noexcept - { return (_Alloc_traits::max_size(_M_get_allocator()) - 1) / 2; } -# 925 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - void - resize(size_type __n, _CharT __c); -# 938 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - void - resize(size_type __n) - { this->resize(__n, _CharT()); } - - - - void - shrink_to_fit() noexcept - { - - if (capacity() > size()) - { - try - { reserve(0); } - catch(...) - { } - } - - } - - - - - - - size_type - capacity() const noexcept - { - return _M_is_local() ? size_type(_S_local_capacity) - : _M_allocated_capacity; - } -# 987 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - void - reserve(size_type __res_arg = 0); - - - - - void - clear() noexcept - { _M_set_length(0); } - - - - - - bool - empty() const noexcept - { return this->size() == 0; } -# 1016 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - const_reference - operator[] (size_type __pos) const noexcept - { - ; - return _M_data()[__pos]; - } -# 1033 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - reference - operator[](size_type __pos) - { - - - ; - - ; - return _M_data()[__pos]; - } -# 1054 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - const_reference - at(size_type __n) const - { - if (__n >= this->size()) - __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") - - , - __n, this->size()); - return _M_data()[__n]; - } -# 1075 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - reference - at(size_type __n) - { - if (__n >= size()) - __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") - - , - __n, this->size()); - return _M_data()[__n]; - } - - - - - - - reference - front() noexcept - { - ; - return operator[](0); - } - - - - - - const_reference - front() const noexcept - { - ; - return operator[](0); - } - - - - - - reference - back() noexcept - { - ; - return operator[](this->size() - 1); - } - - - - - - const_reference - back() const noexcept - { - ; - return operator[](this->size() - 1); - } -# 1138 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - operator+=(const basic_string& __str) - { return this->append(__str); } - - - - - - - basic_string& - operator+=(const _CharT* __s) - { return this->append(__s); } - - - - - - - basic_string& - operator+=(_CharT __c) - { - this->push_back(__c); - return *this; - } - - - - - - - - basic_string& - operator+=(initializer_list<_CharT> __l) - { return this->append(__l.begin(), __l.size()); } -# 1191 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - append(const basic_string& __str) - { return _M_append(__str._M_data(), __str.size()); } -# 1208 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - append(const basic_string& __str, size_type __pos, size_type __n = npos) - { return _M_append(__str._M_data() - + __str._M_check(__pos, "basic_string::append"), - __str._M_limit(__pos, __n)); } - - - - - - - - basic_string& - append(const _CharT* __s, size_type __n) - { - ; - _M_check_length(size_type(0), __n, "basic_string::append"); - return _M_append(__s, __n); - } - - - - - - - basic_string& - append(const _CharT* __s) - { - ; - const size_type __n = traits_type::length(__s); - _M_check_length(size_type(0), __n, "basic_string::append"); - return _M_append(__s, __n); - } -# 1250 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - append(size_type __n, _CharT __c) - { return _M_replace_aux(this->size(), size_type(0), __n, __c); } - - - - - - - - basic_string& - append(initializer_list<_CharT> __l) - { return this->append(__l.begin(), __l.size()); } -# 1274 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template> - - - - basic_string& - append(_InputIterator __first, _InputIterator __last) - { return this->replace(end(), end(), __first, __last); } -# 1319 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - void - push_back(_CharT __c) - { - const size_type __size = this->size(); - if (__size + 1 > this->capacity()) - this->_M_mutate(__size, size_type(0), 0, size_type(1)); - traits_type::assign(this->_M_data()[__size], __c); - this->_M_set_length(__size + 1); - } - - - - - - - basic_string& - assign(const basic_string& __str) - { - - if (_Alloc_traits::_S_propagate_on_copy_assign()) - { - if (!_Alloc_traits::_S_always_equal() && !_M_is_local() - && _M_get_allocator() != __str._M_get_allocator()) - { - - - if (__str.size() <= _S_local_capacity) - { - _M_destroy(_M_allocated_capacity); - _M_data(_M_local_data()); - _M_set_length(0); - } - else - { - const auto __len = __str.size(); - auto __alloc = __str._M_get_allocator(); - - auto __ptr = _Alloc_traits::allocate(__alloc, __len + 1); - _M_destroy(_M_allocated_capacity); - _M_data(__ptr); - _M_capacity(__len); - _M_set_length(__len); - } - } - std::__alloc_on_copy(_M_get_allocator(), __str._M_get_allocator()); - } - - this->_M_assign(__str); - return *this; - } -# 1379 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - assign(basic_string&& __str) - noexcept(_Alloc_traits::_S_nothrow_move()) - { - - - return *this = std::move(__str); - } -# 1402 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - assign(const basic_string& __str, size_type __pos, size_type __n = npos) - { return _M_replace(size_type(0), this->size(), __str._M_data() - + __str._M_check(__pos, "basic_string::assign"), - __str._M_limit(__pos, __n)); } -# 1418 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - assign(const _CharT* __s, size_type __n) - { - ; - return _M_replace(size_type(0), this->size(), __s, __n); - } -# 1434 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - assign(const _CharT* __s) - { - ; - return _M_replace(size_type(0), this->size(), __s, - traits_type::length(__s)); - } -# 1451 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - assign(size_type __n, _CharT __c) - { return _M_replace_aux(size_type(0), this->size(), __n, __c); } -# 1464 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template> - - - - basic_string& - assign(_InputIterator __first, _InputIterator __last) - { return this->replace(begin(), end(), __first, __last); } - - - - - - - - basic_string& - assign(initializer_list<_CharT> __l) - { return this->assign(__l.begin(), __l.size()); } -# 1533 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - iterator - insert(const_iterator __p, size_type __n, _CharT __c) - { - ; - const size_type __pos = __p - begin(); - this->replace(__p, __p, __n, __c); - return iterator(this->_M_data() + __pos); - } -# 1575 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template> - iterator - insert(const_iterator __p, _InputIterator __beg, _InputIterator __end) - { - ; - const size_type __pos = __p - begin(); - this->replace(__p, __p, __beg, __end); - return iterator(this->_M_data() + __pos); - } -# 1611 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - iterator - insert(const_iterator __p, initializer_list<_CharT> __l) - { return this->insert(__p, __l.begin(), __l.end()); } -# 1638 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - insert(size_type __pos1, const basic_string& __str) - { return this->replace(__pos1, size_type(0), - __str._M_data(), __str.size()); } -# 1661 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - insert(size_type __pos1, const basic_string& __str, - size_type __pos2, size_type __n = npos) - { return this->replace(__pos1, size_type(0), __str._M_data() - + __str._M_check(__pos2, "basic_string::insert"), - __str._M_limit(__pos2, __n)); } -# 1684 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - insert(size_type __pos, const _CharT* __s, size_type __n) - { return this->replace(__pos, size_type(0), __s, __n); } -# 1703 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - insert(size_type __pos, const _CharT* __s) - { - ; - return this->replace(__pos, size_type(0), __s, - traits_type::length(__s)); - } -# 1727 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - insert(size_type __pos, size_type __n, _CharT __c) - { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), - size_type(0), __n, __c); } -# 1745 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - iterator - insert(__const_iterator __p, _CharT __c) - { - ; - const size_type __pos = __p - begin(); - _M_replace_aux(__pos, size_type(0), size_type(1), __c); - return iterator(_M_data() + __pos); - } -# 1805 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - erase(size_type __pos = 0, size_type __n = npos) - { - _M_check(__pos, "basic_string::erase"); - if (__n == npos) - this->_M_set_length(__pos); - else if (__n != 0) - this->_M_erase(__pos, _M_limit(__pos, __n)); - return *this; - } -# 1824 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - iterator - erase(__const_iterator __position) - { - - ; - const size_type __pos = __position - begin(); - this->_M_erase(__pos, size_type(1)); - return iterator(_M_data() + __pos); - } -# 1843 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - iterator - erase(__const_iterator __first, __const_iterator __last) - { - - ; - const size_type __pos = __first - begin(); - if (__last == end()) - this->_M_set_length(__pos); - else - this->_M_erase(__pos, __last - __first); - return iterator(this->_M_data() + __pos); - } - - - - - - - - void - pop_back() noexcept - { - ; - _M_erase(size() - 1, 1); - } -# 1887 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - replace(size_type __pos, size_type __n, const basic_string& __str) - { return this->replace(__pos, __n, __str._M_data(), __str.size()); } -# 1909 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - replace(size_type __pos1, size_type __n1, const basic_string& __str, - size_type __pos2, size_type __n2 = npos) - { return this->replace(__pos1, __n1, __str._M_data() - + __str._M_check(__pos2, "basic_string::replace"), - __str._M_limit(__pos2, __n2)); } -# 1934 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - replace(size_type __pos, size_type __n1, const _CharT* __s, - size_type __n2) - { - ; - return _M_replace(_M_check(__pos, "basic_string::replace"), - _M_limit(__pos, __n1), __s, __n2); - } -# 1959 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - replace(size_type __pos, size_type __n1, const _CharT* __s) - { - ; - return this->replace(__pos, __n1, __s, traits_type::length(__s)); - } -# 1983 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) - { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), - _M_limit(__pos, __n1), __n2, __c); } -# 2001 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, - const basic_string& __str) - { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } -# 2021 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, - const _CharT* __s, size_type __n) - { - - ; - return this->replace(__i1 - begin(), __i2 - __i1, __s, __n); - } -# 2043 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, const _CharT* __s) - { - ; - return this->replace(__i1, __i2, __s, traits_type::length(__s)); - } -# 2064 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, size_type __n, - _CharT __c) - { - - ; - return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __c); - } -# 2089 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template> - basic_string& - replace(const_iterator __i1, const_iterator __i2, - _InputIterator __k1, _InputIterator __k2) - { - - ; - ; - return this->_M_replace_dispatch(__i1, __i2, __k1, __k2, - std::__false_type()); - } -# 2121 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, - _CharT* __k1, _CharT* __k2) - { - - ; - ; - return this->replace(__i1 - begin(), __i2 - __i1, - __k1, __k2 - __k1); - } - - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, - const _CharT* __k1, const _CharT* __k2) - { - - ; - ; - return this->replace(__i1 - begin(), __i2 - __i1, - __k1, __k2 - __k1); - } - - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, - iterator __k1, iterator __k2) - { - - ; - ; - return this->replace(__i1 - begin(), __i2 - __i1, - __k1.base(), __k2 - __k1); - } - - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, - const_iterator __k1, const_iterator __k2) - { - - ; - ; - return this->replace(__i1 - begin(), __i2 - __i1, - __k1.base(), __k2 - __k1); - } -# 2180 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string& replace(const_iterator __i1, const_iterator __i2, - initializer_list<_CharT> __l) - { return this->replace(__i1, __i2, __l.begin(), __l.size()); } -# 2240 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - private: - template - basic_string& - _M_replace_dispatch(const_iterator __i1, const_iterator __i2, - _Integer __n, _Integer __val, __true_type) - { return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __val); } - - template - basic_string& - _M_replace_dispatch(const_iterator __i1, const_iterator __i2, - _InputIterator __k1, _InputIterator __k2, - __false_type); - - basic_string& - _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, - _CharT __c); - - basic_string& - _M_replace(size_type __pos, size_type __len1, const _CharT* __s, - const size_type __len2); - - basic_string& - _M_append(const _CharT* __s, size_type __n); - - public: -# 2278 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - copy(_CharT* __s, size_type __n, size_type __pos = 0) const; -# 2288 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - void - swap(basic_string& __s) noexcept; -# 2298 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - const _CharT* - c_str() const noexcept - { return _M_data(); } -# 2310 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - const _CharT* - data() const noexcept - { return _M_data(); } -# 2329 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - allocator_type - get_allocator() const noexcept - { return _M_get_allocator(); } -# 2345 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find(const _CharT* __s, size_type __pos, size_type __n) const - noexcept; -# 2359 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find(const basic_string& __str, size_type __pos = 0) const - noexcept - { return this->find(__str.data(), __pos, __str.size()); } -# 2391 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find(const _CharT* __s, size_type __pos = 0) const noexcept - { - ; - return this->find(__s, __pos, traits_type::length(__s)); - } -# 2408 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find(_CharT __c, size_type __pos = 0) const noexcept; -# 2421 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - rfind(const basic_string& __str, size_type __pos = npos) const - noexcept - { return this->rfind(__str.data(), __pos, __str.size()); } -# 2455 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - rfind(const _CharT* __s, size_type __pos, size_type __n) const - noexcept; -# 2469 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - rfind(const _CharT* __s, size_type __pos = npos) const - { - ; - return this->rfind(__s, __pos, traits_type::length(__s)); - } -# 2486 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - rfind(_CharT __c, size_type __pos = npos) const noexcept; -# 2500 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_first_of(const basic_string& __str, size_type __pos = 0) const - noexcept - { return this->find_first_of(__str.data(), __pos, __str.size()); } -# 2535 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_first_of(const _CharT* __s, size_type __pos, size_type __n) const - noexcept; -# 2549 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_first_of(const _CharT* __s, size_type __pos = 0) const - noexcept - { - ; - return this->find_first_of(__s, __pos, traits_type::length(__s)); - } -# 2569 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_first_of(_CharT __c, size_type __pos = 0) const noexcept - { return this->find(__c, __pos); } -# 2584 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_last_of(const basic_string& __str, size_type __pos = npos) const - noexcept - { return this->find_last_of(__str.data(), __pos, __str.size()); } -# 2619 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_last_of(const _CharT* __s, size_type __pos, size_type __n) const - noexcept; -# 2633 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_last_of(const _CharT* __s, size_type __pos = npos) const - noexcept - { - ; - return this->find_last_of(__s, __pos, traits_type::length(__s)); - } -# 2653 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_last_of(_CharT __c, size_type __pos = npos) const noexcept - { return this->rfind(__c, __pos); } -# 2667 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_first_not_of(const basic_string& __str, size_type __pos = 0) const - noexcept - { return this->find_first_not_of(__str.data(), __pos, __str.size()); } -# 2702 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_first_not_of(const _CharT* __s, size_type __pos, - size_type __n) const noexcept; -# 2716 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_first_not_of(const _CharT* __s, size_type __pos = 0) const - noexcept - { - ; - return this->find_first_not_of(__s, __pos, traits_type::length(__s)); - } -# 2734 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_first_not_of(_CharT __c, size_type __pos = 0) const - noexcept; -# 2749 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_last_not_of(const basic_string& __str, size_type __pos = npos) const - noexcept - { return this->find_last_not_of(__str.data(), __pos, __str.size()); } -# 2784 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_last_not_of(const _CharT* __s, size_type __pos, - size_type __n) const noexcept; -# 2798 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_last_not_of(const _CharT* __s, size_type __pos = npos) const - noexcept - { - ; - return this->find_last_not_of(__s, __pos, traits_type::length(__s)); - } -# 2816 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - size_type - find_last_not_of(_CharT __c, size_type __pos = npos) const - noexcept; -# 2832 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - basic_string - substr(size_type __pos = 0, size_type __n = npos) const - { return basic_string(*this, - _M_check(__pos, "basic_string::substr"), __n); } -# 2851 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - int - compare(const basic_string& __str) const - { - const size_type __size = this->size(); - const size_type __osize = __str.size(); - const size_type __len = std::min(__size, __osize); - - int __r = traits_type::compare(_M_data(), __str.data(), __len); - if (!__r) - __r = _S_compare(__size, __osize); - return __r; - } -# 2944 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - int - compare(size_type __pos, size_type __n, const basic_string& __str) const; -# 2970 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - int - compare(size_type __pos1, size_type __n1, const basic_string& __str, - size_type __pos2, size_type __n2 = npos) const; -# 2988 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - int - compare(const _CharT* __s) const noexcept; -# 3012 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - int - compare(size_type __pos, size_type __n1, const _CharT* __s) const; -# 3039 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - int - compare(size_type __pos, size_type __n1, const _CharT* __s, - size_type __n2) const; -# 3070 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template friend class basic_stringbuf; - }; -} -# 6020 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template - basic_string<_CharT, _Traits, _Alloc> - operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { - basic_string<_CharT, _Traits, _Alloc> __str(__lhs); - __str.append(__rhs); - return __str; - } - - - - - - - - template - basic_string<_CharT,_Traits,_Alloc> - operator+(const _CharT* __lhs, - const basic_string<_CharT,_Traits,_Alloc>& __rhs); - - - - - - - - template - basic_string<_CharT,_Traits,_Alloc> - operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); - - - - - - - - template - inline basic_string<_CharT, _Traits, _Alloc> - operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const _CharT* __rhs) - { - basic_string<_CharT, _Traits, _Alloc> __str(__lhs); - __str.append(__rhs); - return __str; - } - - - - - - - - template - inline basic_string<_CharT, _Traits, _Alloc> - operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) - { - typedef basic_string<_CharT, _Traits, _Alloc> __string_type; - typedef typename __string_type::size_type __size_type; - __string_type __str(__lhs); - __str.append(__size_type(1), __rhs); - return __str; - } - - - template - inline basic_string<_CharT, _Traits, _Alloc> - operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { return std::move(__lhs.append(__rhs)); } - - template - inline basic_string<_CharT, _Traits, _Alloc> - operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - basic_string<_CharT, _Traits, _Alloc>&& __rhs) - { return std::move(__rhs.insert(0, __lhs)); } - - template - inline basic_string<_CharT, _Traits, _Alloc> - operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, - basic_string<_CharT, _Traits, _Alloc>&& __rhs) - { - - using _Alloc_traits = allocator_traits<_Alloc>; - bool __use_rhs = false; - if (typename _Alloc_traits::is_always_equal{}) - __use_rhs = true; - else if (__lhs.get_allocator() == __rhs.get_allocator()) - __use_rhs = true; - if (__use_rhs) - - { - const auto __size = __lhs.size() + __rhs.size(); - if (__size > __lhs.capacity() && __size <= __rhs.capacity()) - return std::move(__rhs.insert(0, __lhs)); - } - return std::move(__lhs.append(__rhs)); - } - - template - inline basic_string<_CharT, _Traits, _Alloc> - operator+(const _CharT* __lhs, - basic_string<_CharT, _Traits, _Alloc>&& __rhs) - { return std::move(__rhs.insert(0, __lhs)); } - - template - inline basic_string<_CharT, _Traits, _Alloc> - operator+(_CharT __lhs, - basic_string<_CharT, _Traits, _Alloc>&& __rhs) - { return std::move(__rhs.insert(0, 1, __lhs)); } - - template - inline basic_string<_CharT, _Traits, _Alloc> - operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, - const _CharT* __rhs) - { return std::move(__lhs.append(__rhs)); } - - template - inline basic_string<_CharT, _Traits, _Alloc> - operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, - _CharT __rhs) - { return std::move(__lhs.append(1, __rhs)); } -# 6151 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template - inline bool - operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - noexcept - { return __lhs.compare(__rhs) == 0; } - - template - inline - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type - operator==(const basic_string<_CharT>& __lhs, - const basic_string<_CharT>& __rhs) noexcept - { return (__lhs.size() == __rhs.size() - && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(), - __lhs.size())); } - - - - - - - - template - inline bool - operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const _CharT* __rhs) - { return __lhs.compare(__rhs) == 0; } -# 6214 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template - inline bool - operator==(const _CharT* __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { return __rhs.compare(__lhs) == 0; } -# 6227 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template - inline bool - operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - noexcept - { return !(__lhs == __rhs); } - - - - - - - - template - inline bool - operator!=(const _CharT* __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { return !(__lhs == __rhs); } - - - - - - - - template - inline bool - operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const _CharT* __rhs) - { return !(__lhs == __rhs); } -# 6265 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template - inline bool - operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - noexcept - { return __lhs.compare(__rhs) < 0; } - - - - - - - - template - inline bool - operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const _CharT* __rhs) - { return __lhs.compare(__rhs) < 0; } - - - - - - - - template - inline bool - operator<(const _CharT* __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { return __rhs.compare(__lhs) > 0; } -# 6303 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template - inline bool - operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - noexcept - { return __lhs.compare(__rhs) > 0; } - - - - - - - - template - inline bool - operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const _CharT* __rhs) - { return __lhs.compare(__rhs) > 0; } - - - - - - - - template - inline bool - operator>(const _CharT* __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { return __rhs.compare(__lhs) < 0; } -# 6341 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template - inline bool - operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - noexcept - { return __lhs.compare(__rhs) <= 0; } - - - - - - - - template - inline bool - operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const _CharT* __rhs) - { return __lhs.compare(__rhs) <= 0; } - - - - - - - - template - inline bool - operator<=(const _CharT* __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { return __rhs.compare(__lhs) >= 0; } -# 6379 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template - inline bool - operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - noexcept - { return __lhs.compare(__rhs) >= 0; } - - - - - - - - template - inline bool - operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const _CharT* __rhs) - { return __lhs.compare(__rhs) >= 0; } - - - - - - - - template - inline bool - operator>=(const _CharT* __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { return __rhs.compare(__lhs) <= 0; } -# 6418 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template - inline void - swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, - basic_string<_CharT, _Traits, _Alloc>& __rhs) - noexcept(noexcept(__lhs.swap(__rhs))) - { __lhs.swap(__rhs); } -# 6438 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, - basic_string<_CharT, _Traits, _Alloc>& __str); - - template<> - basic_istream& - operator>>(basic_istream& __is, basic_string& __str); -# 6456 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template - inline basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, - const basic_string<_CharT, _Traits, _Alloc>& __str) - { - - - return __ostream_insert(__os, __str.data(), __str.size()); - } -# 6479 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template - basic_istream<_CharT, _Traits>& - getline(basic_istream<_CharT, _Traits>& __is, - basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); -# 6496 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template - inline basic_istream<_CharT, _Traits>& - getline(basic_istream<_CharT, _Traits>& __is, - basic_string<_CharT, _Traits, _Alloc>& __str) - { return std::getline(__is, __str, __is.widen('\n')); } - - - - template - inline basic_istream<_CharT, _Traits>& - getline(basic_istream<_CharT, _Traits>&& __is, - basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) - { return std::getline(__is, __str, __delim); } - - - template - inline basic_istream<_CharT, _Traits>& - getline(basic_istream<_CharT, _Traits>&& __is, - basic_string<_CharT, _Traits, _Alloc>& __str) - { return std::getline(__is, __str); } - - - template<> - basic_istream& - getline(basic_istream& __in, basic_string& __str, - char __delim); - - - template<> - basic_istream& - getline(basic_istream& __in, basic_string& __str, - wchar_t __delim); - - - -} - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/string_conversions.h" 1 3 -# 32 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/string_conversions.h" 3 - -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/string_conversions.h" 3 -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/string_conversions.h" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdlib" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdlib" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdlib" 3 -# 75 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdlib" 3 -# 1 "/usr/include/stdlib.h" 1 3 4 -# 32 "/usr/include/stdlib.h" 3 4 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 1 3 4 -# 33 "/usr/include/stdlib.h" 2 3 4 - -extern "C" { - - - - - - -# 1 "/usr/include/bits/waitflags.h" 1 3 4 -# 42 "/usr/include/stdlib.h" 2 3 4 -# 1 "/usr/include/bits/waitstatus.h" 1 3 4 -# 66 "/usr/include/bits/waitstatus.h" 3 4 -union wait - { - int w_status; - struct - { - - unsigned int __w_termsig:7; - unsigned int __w_coredump:1; - unsigned int __w_retcode:8; - unsigned int:16; - - - - - - - - } __wait_terminated; - struct - { - - unsigned int __w_stopval:8; - unsigned int __w_stopsig:8; - unsigned int:16; - - - - - - - } __wait_stopped; - }; -# 43 "/usr/include/stdlib.h" 2 3 4 -# 95 "/usr/include/stdlib.h" 3 4 - - -typedef struct - { - int quot; - int rem; - } div_t; - - - -typedef struct - { - long int quot; - long int rem; - } ldiv_t; - - - - - - - -__extension__ typedef struct - { - long long int quot; - long long int rem; - } lldiv_t; - - -# 139 "/usr/include/stdlib.h" 3 4 -extern size_t __ctype_get_mb_cur_max (void) throw () ; - - - - -extern double atof (const char *__nptr) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; - -extern int atoi (const char *__nptr) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; - -extern long int atol (const char *__nptr) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; - - - - - -__extension__ extern long long int atoll (const char *__nptr) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; - - - - - -extern double strtod (const char *__restrict __nptr, - char **__restrict __endptr) - throw () __attribute__ ((__nonnull__ (1))); - - - - - -extern float strtof (const char *__restrict __nptr, - char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); - -extern long double strtold (const char *__restrict __nptr, - char **__restrict __endptr) - throw () __attribute__ ((__nonnull__ (1))); - - - - - -extern long int strtol (const char *__restrict __nptr, - char **__restrict __endptr, int __base) - throw () __attribute__ ((__nonnull__ (1))); - -extern unsigned long int strtoul (const char *__restrict __nptr, - char **__restrict __endptr, int __base) - throw () __attribute__ ((__nonnull__ (1))); - - - - -__extension__ -extern long long int strtoq (const char *__restrict __nptr, - char **__restrict __endptr, int __base) - throw () __attribute__ ((__nonnull__ (1))); - -__extension__ -extern unsigned long long int strtouq (const char *__restrict __nptr, - char **__restrict __endptr, int __base) - throw () __attribute__ ((__nonnull__ (1))); - - - - - -__extension__ -extern long long int strtoll (const char *__restrict __nptr, - char **__restrict __endptr, int __base) - throw () __attribute__ ((__nonnull__ (1))); - -__extension__ -extern unsigned long long int strtoull (const char *__restrict __nptr, - char **__restrict __endptr, int __base) - throw () __attribute__ ((__nonnull__ (1))); - -# 239 "/usr/include/stdlib.h" 3 4 -extern long int strtol_l (const char *__restrict __nptr, - char **__restrict __endptr, int __base, - __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); - -extern unsigned long int strtoul_l (const char *__restrict __nptr, - char **__restrict __endptr, - int __base, __locale_t __loc) - throw () __attribute__ ((__nonnull__ (1, 4))); - -__extension__ -extern long long int strtoll_l (const char *__restrict __nptr, - char **__restrict __endptr, int __base, - __locale_t __loc) - throw () __attribute__ ((__nonnull__ (1, 4))); - -__extension__ -extern unsigned long long int strtoull_l (const char *__restrict __nptr, - char **__restrict __endptr, - int __base, __locale_t __loc) - throw () __attribute__ ((__nonnull__ (1, 4))); - -extern double strtod_l (const char *__restrict __nptr, - char **__restrict __endptr, __locale_t __loc) - throw () __attribute__ ((__nonnull__ (1, 3))); - -extern float strtof_l (const char *__restrict __nptr, - char **__restrict __endptr, __locale_t __loc) - throw () __attribute__ ((__nonnull__ (1, 3))); - -extern long double strtold_l (const char *__restrict __nptr, - char **__restrict __endptr, - __locale_t __loc) - throw () __attribute__ ((__nonnull__ (1, 3))); -# 305 "/usr/include/stdlib.h" 3 4 -extern char *l64a (long int __n) throw () ; - - -extern long int a64l (const char *__s) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; - - - - -# 1 "/usr/include/sys/types.h" 1 3 4 -# 27 "/usr/include/sys/types.h" 3 4 -extern "C" { - - - - - -typedef __u_char u_char; -typedef __u_short u_short; -typedef __u_int u_int; -typedef __u_long u_long; -typedef __quad_t quad_t; -typedef __u_quad_t u_quad_t; -typedef __fsid_t fsid_t; - - - - -typedef __loff_t loff_t; - - - -typedef __ino_t ino_t; - - - - - - -typedef __ino64_t ino64_t; - - - - -typedef __dev_t dev_t; - - - - -typedef __gid_t gid_t; - - - - -typedef __mode_t mode_t; - - - - -typedef __nlink_t nlink_t; - - - - -typedef __uid_t uid_t; - - - - - -typedef __off_t off_t; - - - - - - -typedef __off64_t off64_t; -# 104 "/usr/include/sys/types.h" 3 4 -typedef __id_t id_t; - - - - -typedef __ssize_t ssize_t; - - - - - -typedef __daddr_t daddr_t; -typedef __caddr_t caddr_t; - - - - - -typedef __key_t key_t; -# 136 "/usr/include/sys/types.h" 3 4 -typedef __useconds_t useconds_t; - - - -typedef __suseconds_t suseconds_t; - - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 1 3 4 -# 147 "/usr/include/sys/types.h" 2 3 4 - - - -typedef unsigned long int ulong; -typedef unsigned short int ushort; -typedef unsigned int uint; -# 200 "/usr/include/sys/types.h" 3 4 -typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); -typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); -typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); -typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); - -typedef int register_t __attribute__ ((__mode__ (__word__))); -# 219 "/usr/include/sys/types.h" 3 4 -# 1 "/usr/include/sys/select.h" 1 3 4 -# 30 "/usr/include/sys/select.h" 3 4 -# 1 "/usr/include/bits/select.h" 1 3 4 -# 22 "/usr/include/bits/select.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 23 "/usr/include/bits/select.h" 2 3 4 -# 31 "/usr/include/sys/select.h" 2 3 4 - - -# 1 "/usr/include/bits/sigset.h" 1 3 4 -# 23 "/usr/include/bits/sigset.h" 3 4 -typedef int __sig_atomic_t; - - - - -typedef struct - { - unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; - } __sigset_t; -# 34 "/usr/include/sys/select.h" 2 3 4 - - - -typedef __sigset_t sigset_t; - - - - - - - -# 1 "/usr/include/bits/time.h" 1 3 4 -# 46 "/usr/include/sys/select.h" 2 3 4 -# 54 "/usr/include/sys/select.h" 3 4 -typedef long int __fd_mask; -# 64 "/usr/include/sys/select.h" 3 4 -typedef struct - { - - - - __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; - - - - - - } fd_set; - - - - - - -typedef __fd_mask fd_mask; -# 96 "/usr/include/sys/select.h" 3 4 -extern "C" { -# 106 "/usr/include/sys/select.h" 3 4 -extern int select (int __nfds, fd_set *__restrict __readfds, - fd_set *__restrict __writefds, - fd_set *__restrict __exceptfds, - struct timeval *__restrict __timeout); -# 118 "/usr/include/sys/select.h" 3 4 -extern int pselect (int __nfds, fd_set *__restrict __readfds, - fd_set *__restrict __writefds, - fd_set *__restrict __exceptfds, - const struct timespec *__restrict __timeout, - const __sigset_t *__restrict __sigmask); -# 131 "/usr/include/sys/select.h" 3 4 -} -# 220 "/usr/include/sys/types.h" 2 3 4 - - -# 1 "/usr/include/sys/sysmacros.h" 1 3 4 -# 29 "/usr/include/sys/sysmacros.h" 3 4 -extern "C" { - -__extension__ -extern unsigned int gnu_dev_major (unsigned long long int __dev) - throw () __attribute__ ((__const__)); -__extension__ -extern unsigned int gnu_dev_minor (unsigned long long int __dev) - throw () __attribute__ ((__const__)); -__extension__ -extern unsigned long long int gnu_dev_makedev (unsigned int __major, - unsigned int __minor) - throw () __attribute__ ((__const__)); -# 63 "/usr/include/sys/sysmacros.h" 3 4 -} -# 223 "/usr/include/sys/types.h" 2 3 4 - - - - - -typedef __blksize_t blksize_t; - - - - - - -typedef __blkcnt_t blkcnt_t; - - - -typedef __fsblkcnt_t fsblkcnt_t; - - - -typedef __fsfilcnt_t fsfilcnt_t; -# 262 "/usr/include/sys/types.h" 3 4 -typedef __blkcnt64_t blkcnt64_t; -typedef __fsblkcnt64_t fsblkcnt64_t; -typedef __fsfilcnt64_t fsfilcnt64_t; -# 273 "/usr/include/sys/types.h" 3 4 -} -# 315 "/usr/include/stdlib.h" 2 3 4 - - - - - - -extern long int random (void) throw (); - - -extern void srandom (unsigned int __seed) throw (); - - - - - -extern char *initstate (unsigned int __seed, char *__statebuf, - size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); - - - -extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); - - - - - - - -struct random_data - { - int32_t *fptr; - int32_t *rptr; - int32_t *state; - int rand_type; - int rand_deg; - int rand_sep; - int32_t *end_ptr; - }; - -extern int random_r (struct random_data *__restrict __buf, - int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); - -extern int srandom_r (unsigned int __seed, struct random_data *__buf) - throw () __attribute__ ((__nonnull__ (2))); - -extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, - size_t __statelen, - struct random_data *__restrict __buf) - throw () __attribute__ ((__nonnull__ (2, 4))); - -extern int setstate_r (char *__restrict __statebuf, - struct random_data *__restrict __buf) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - - - - -extern int rand (void) throw (); - -extern void srand (unsigned int __seed) throw (); - - - - -extern int rand_r (unsigned int *__seed) throw (); - - - - - - - -extern double drand48 (void) throw (); -extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); - - -extern long int lrand48 (void) throw (); -extern long int nrand48 (unsigned short int __xsubi[3]) - throw () __attribute__ ((__nonnull__ (1))); - - -extern long int mrand48 (void) throw (); -extern long int jrand48 (unsigned short int __xsubi[3]) - throw () __attribute__ ((__nonnull__ (1))); - - -extern void srand48 (long int __seedval) throw (); -extern unsigned short int *seed48 (unsigned short int __seed16v[3]) - throw () __attribute__ ((__nonnull__ (1))); -extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); - - - - - -struct drand48_data - { - unsigned short int __x[3]; - unsigned short int __old_x[3]; - unsigned short int __c; - unsigned short int __init; - unsigned long long int __a; - }; - - -extern int drand48_r (struct drand48_data *__restrict __buffer, - double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); -extern int erand48_r (unsigned short int __xsubi[3], - struct drand48_data *__restrict __buffer, - double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int lrand48_r (struct drand48_data *__restrict __buffer, - long int *__restrict __result) - throw () __attribute__ ((__nonnull__ (1, 2))); -extern int nrand48_r (unsigned short int __xsubi[3], - struct drand48_data *__restrict __buffer, - long int *__restrict __result) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int mrand48_r (struct drand48_data *__restrict __buffer, - long int *__restrict __result) - throw () __attribute__ ((__nonnull__ (1, 2))); -extern int jrand48_r (unsigned short int __xsubi[3], - struct drand48_data *__restrict __buffer, - long int *__restrict __result) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int srand48_r (long int __seedval, struct drand48_data *__buffer) - throw () __attribute__ ((__nonnull__ (2))); - -extern int seed48_r (unsigned short int __seed16v[3], - struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); - -extern int lcong48_r (unsigned short int __param[7], - struct drand48_data *__buffer) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - - - - - - - -extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ; - -extern void *calloc (size_t __nmemb, size_t __size) - throw () __attribute__ ((__malloc__)) ; - - - - - - - - - - -extern void *realloc (void *__ptr, size_t __size) - throw () __attribute__ ((__warn_unused_result__)); - -extern void free (void *__ptr) throw (); - - - - -extern void cfree (void *__ptr) throw (); - - - -# 1 "/usr/include/alloca.h" 1 3 4 -# 24 "/usr/include/alloca.h" 3 4 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 1 3 4 -# 25 "/usr/include/alloca.h" 2 3 4 - -extern "C" { - - - - - -extern void *alloca (size_t __size) throw (); - - - - - -} -# 492 "/usr/include/stdlib.h" 2 3 4 - - - - - -extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ; - - - - -extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) - throw () __attribute__ ((__nonnull__ (1))) ; - - - - -extern void *aligned_alloc (size_t __alignment, size_t __size) - throw () __attribute__ ((__malloc__, __alloc_size__ (2))); - - - - -extern void abort (void) throw () __attribute__ ((__noreturn__)); - - - -extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); - - - - -extern "C++" int at_quick_exit (void (*__func) (void)) - throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); - - - - - - - - - -extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) - throw () __attribute__ ((__nonnull__ (1))); - - - - - - -extern void exit (int __status) throw () __attribute__ ((__noreturn__)); - - - - - -extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); - - - - - - - -extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); - - - - - - -extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) ; - - - - - -extern char *secure_getenv (const char *__name) - throw () __attribute__ ((__nonnull__ (1))) ; - - - - - - -extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); - - - - - -extern int setenv (const char *__name, const char *__value, int __replace) - throw () __attribute__ ((__nonnull__ (2))); - - -extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))); - - - - - - -extern int clearenv (void) throw (); -# 605 "/usr/include/stdlib.h" 3 4 -extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); -# 619 "/usr/include/stdlib.h" 3 4 -extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; -# 629 "/usr/include/stdlib.h" 3 4 -extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; -# 641 "/usr/include/stdlib.h" 3 4 -extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; -# 651 "/usr/include/stdlib.h" 3 4 -extern int mkstemps64 (char *__template, int __suffixlen) - __attribute__ ((__nonnull__ (1))) ; -# 662 "/usr/include/stdlib.h" 3 4 -extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ; -# 673 "/usr/include/stdlib.h" 3 4 -extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; -# 683 "/usr/include/stdlib.h" 3 4 -extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; -# 693 "/usr/include/stdlib.h" 3 4 -extern int mkostemps (char *__template, int __suffixlen, int __flags) - __attribute__ ((__nonnull__ (1))) ; -# 705 "/usr/include/stdlib.h" 3 4 -extern int mkostemps64 (char *__template, int __suffixlen, int __flags) - __attribute__ ((__nonnull__ (1))) ; - - - - - - - - - -extern int system (const char *__command) ; - - - - - - -extern char *canonicalize_file_name (const char *__name) - throw () __attribute__ ((__nonnull__ (1))) ; -# 733 "/usr/include/stdlib.h" 3 4 -extern char *realpath (const char *__restrict __name, - char *__restrict __resolved) throw () ; - - - - - - -typedef int (*__compar_fn_t) (const void *, const void *); - - -typedef __compar_fn_t comparison_fn_t; - - - -typedef int (*__compar_d_fn_t) (const void *, const void *, void *); - - - - - -extern void *bsearch (const void *__key, const void *__base, - size_t __nmemb, size_t __size, __compar_fn_t __compar) - __attribute__ ((__nonnull__ (1, 2, 5))) ; - - - -extern void qsort (void *__base, size_t __nmemb, size_t __size, - __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); - -extern void qsort_r (void *__base, size_t __nmemb, size_t __size, - __compar_d_fn_t __compar, void *__arg) - __attribute__ ((__nonnull__ (1, 4))); - - - - -extern int abs (int __x) throw () __attribute__ ((__const__)) ; -extern long int labs (long int __x) throw () __attribute__ ((__const__)) ; - - - -__extension__ extern long long int llabs (long long int __x) - throw () __attribute__ ((__const__)) ; - - - - - - - -extern div_t div (int __numer, int __denom) - throw () __attribute__ ((__const__)) ; -extern ldiv_t ldiv (long int __numer, long int __denom) - throw () __attribute__ ((__const__)) ; - - - - -__extension__ extern lldiv_t lldiv (long long int __numer, - long long int __denom) - throw () __attribute__ ((__const__)) ; - -# 807 "/usr/include/stdlib.h" 3 4 -extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, - int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; - - - - -extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, - int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; - - - - -extern char *gcvt (double __value, int __ndigit, char *__buf) - throw () __attribute__ ((__nonnull__ (3))) ; - - - - -extern char *qecvt (long double __value, int __ndigit, - int *__restrict __decpt, int *__restrict __sign) - throw () __attribute__ ((__nonnull__ (3, 4))) ; -extern char *qfcvt (long double __value, int __ndigit, - int *__restrict __decpt, int *__restrict __sign) - throw () __attribute__ ((__nonnull__ (3, 4))) ; -extern char *qgcvt (long double __value, int __ndigit, char *__buf) - throw () __attribute__ ((__nonnull__ (3))) ; - - - - -extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, - int *__restrict __sign, char *__restrict __buf, - size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); -extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, - int *__restrict __sign, char *__restrict __buf, - size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); - -extern int qecvt_r (long double __value, int __ndigit, - int *__restrict __decpt, int *__restrict __sign, - char *__restrict __buf, size_t __len) - throw () __attribute__ ((__nonnull__ (3, 4, 5))); -extern int qfcvt_r (long double __value, int __ndigit, - int *__restrict __decpt, int *__restrict __sign, - char *__restrict __buf, size_t __len) - throw () __attribute__ ((__nonnull__ (3, 4, 5))); - - - - - - - -extern int mblen (const char *__s, size_t __n) throw () ; - - -extern int mbtowc (wchar_t *__restrict __pwc, - const char *__restrict __s, size_t __n) throw () ; - - -extern int wctomb (char *__s, wchar_t __wchar) throw () ; - - - -extern size_t mbstowcs (wchar_t *__restrict __pwcs, - const char *__restrict __s, size_t __n) throw (); - -extern size_t wcstombs (char *__restrict __s, - const wchar_t *__restrict __pwcs, size_t __n) - throw (); - - - - - - - - -extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) ; -# 895 "/usr/include/stdlib.h" 3 4 -extern int getsubopt (char **__restrict __optionp, - char *const *__restrict __tokens, - char **__restrict __valuep) - throw () __attribute__ ((__nonnull__ (1, 2, 3))) ; - - - - - -extern void setkey (const char *__key) throw () __attribute__ ((__nonnull__ (1))); - - - - - - - -extern int posix_openpt (int __oflag) ; - - - - - - - -extern int grantpt (int __fd) throw (); - - - -extern int unlockpt (int __fd) throw (); - - - - -extern char *ptsname (int __fd) throw () ; - - - - - - -extern int ptsname_r (int __fd, char *__buf, size_t __buflen) - throw () __attribute__ ((__nonnull__ (2))); - - -extern int getpt (void); - - - - - - -extern int getloadavg (double __loadavg[], int __nelem) - throw () __attribute__ ((__nonnull__ (1))); - - -# 1 "/usr/include/bits/stdlib-float.h" 1 3 4 -# 952 "/usr/include/stdlib.h" 2 3 4 -# 964 "/usr/include/stdlib.h" 3 4 -} -# 76 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdlib" 2 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/std_abs.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/std_abs.h" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/std_abs.h" 3 -# 46 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/std_abs.h" 3 -extern "C++" -{ -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - using ::abs; - - - inline long - abs(long __i) { return __builtin_labs(__i); } - - - - inline long long - abs(long long __x) { return __builtin_llabs (__x); } -# 70 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/std_abs.h" 3 - inline constexpr double - abs(double __x) - { return __builtin_fabs(__x); } - - inline constexpr float - abs(float __x) - { return __builtin_fabsf(__x); } - - inline constexpr long double - abs(long double __x) - { return __builtin_fabsl(__x); } - - - - inline constexpr __int128 - abs(__int128 __x) { return __x >= 0 ? __x : -__x; } -# 101 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/std_abs.h" 3 - inline constexpr - __float128 - abs(__float128 __x) - { return __x < 0 ? -__x : __x; } - - - -} -} -# 78 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdlib" 2 3 -# 121 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdlib" 3 -extern "C++" -{ -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - using ::div_t; - using ::ldiv_t; - - using ::abort; - - - - using ::atexit; - - - using ::at_quick_exit; - - - using ::atof; - using ::atoi; - using ::atol; - using ::bsearch; - using ::calloc; - using ::div; - using ::exit; - using ::free; - using ::getenv; - using ::labs; - using ::ldiv; - using ::malloc; - - using ::mblen; - using ::mbstowcs; - using ::mbtowc; - - using ::qsort; - - - using ::quick_exit; - - - using ::rand; - using ::realloc; - using ::srand; - using ::strtod; - using ::strtol; - using ::strtoul; - using ::system; - - using ::wcstombs; - using ::wctomb; - - - - inline ldiv_t - div(long __i, long __j) { return ldiv(__i, __j); } - - - - -} -# 195 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdlib" 3 -namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) -{ - - - - using ::lldiv_t; - - - - - - using ::_Exit; - - - - using ::llabs; - - inline lldiv_t - div(long long __n, long long __d) - { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } - - using ::lldiv; -# 227 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdlib" 3 - using ::atoll; - using ::strtoll; - using ::strtoull; - - using ::strtof; - using ::strtold; - - -} - -namespace std -{ - - using ::__gnu_cxx::lldiv_t; - - using ::__gnu_cxx::_Exit; - - using ::__gnu_cxx::llabs; - using ::__gnu_cxx::div; - using ::__gnu_cxx::lldiv; - - using ::__gnu_cxx::atoll; - using ::__gnu_cxx::strtof; - using ::__gnu_cxx::strtoll; - using ::__gnu_cxx::strtoull; - using ::__gnu_cxx::strtold; -} - - - -} -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/string_conversions.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 3 - - - - -# 1 "/usr/include/wchar.h" 1 3 4 -# 45 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwchar" 2 3 -# 43 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/string_conversions.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdio" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdio" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdio" 3 - - -# 1 "/usr/include/stdio.h" 1 3 4 -# 29 "/usr/include/stdio.h" 3 4 -extern "C" { - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 1 3 4 -# 34 "/usr/include/stdio.h" 2 3 4 -# 74 "/usr/include/stdio.h" 3 4 -# 1 "/usr/include/libio.h" 1 3 4 -# 32 "/usr/include/libio.h" 3 4 -# 1 "/usr/include/_G_config.h" 1 3 4 -# 15 "/usr/include/_G_config.h" 3 4 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 1 3 4 -# 16 "/usr/include/_G_config.h" 2 3 4 - - - - -# 1 "/usr/include/wchar.h" 1 3 4 -# 21 "/usr/include/_G_config.h" 2 3 4 -typedef struct -{ - __off_t __pos; - __mbstate_t __state; -} _G_fpos_t; -typedef struct -{ - __off64_t __pos; - __mbstate_t __state; -} _G_fpos64_t; -# 33 "/usr/include/libio.h" 2 3 4 -# 50 "/usr/include/libio.h" 3 4 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stdarg.h" 1 3 4 -# 51 "/usr/include/libio.h" 2 3 4 -# 145 "/usr/include/libio.h" 3 4 -struct _IO_jump_t; struct _IO_FILE; -# 155 "/usr/include/libio.h" 3 4 -typedef void _IO_lock_t; - - - - - -struct _IO_marker { - struct _IO_marker *_next; - struct _IO_FILE *_sbuf; - - - - int _pos; -# 178 "/usr/include/libio.h" 3 4 -}; - - -enum __codecvt_result -{ - __codecvt_ok, - __codecvt_partial, - __codecvt_error, - __codecvt_noconv -}; -# 246 "/usr/include/libio.h" 3 4 -struct _IO_FILE { - int _flags; - - - - - char* _IO_read_ptr; - char* _IO_read_end; - char* _IO_read_base; - char* _IO_write_base; - char* _IO_write_ptr; - char* _IO_write_end; - char* _IO_buf_base; - char* _IO_buf_end; - - char *_IO_save_base; - char *_IO_backup_base; - char *_IO_save_end; - - struct _IO_marker *_markers; - - struct _IO_FILE *_chain; - - int _fileno; - - - - int _flags2; - - __off_t _old_offset; - - - - unsigned short _cur_column; - signed char _vtable_offset; - char _shortbuf[1]; - - - - _IO_lock_t *_lock; -# 294 "/usr/include/libio.h" 3 4 - __off64_t _offset; -# 303 "/usr/include/libio.h" 3 4 - void *__pad1; - void *__pad2; - void *__pad3; - void *__pad4; - size_t __pad5; - - int _mode; - - char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; - -}; - - - - - -struct _IO_FILE_plus; - -extern struct _IO_FILE_plus _IO_2_1_stdin_; -extern struct _IO_FILE_plus _IO_2_1_stdout_; -extern struct _IO_FILE_plus _IO_2_1_stderr_; -# 339 "/usr/include/libio.h" 3 4 -typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); - - - - - - - -typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf, - size_t __n); - - - - - - - -typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); - - -typedef int __io_close_fn (void *__cookie); - - - - -typedef __io_read_fn cookie_read_function_t; -typedef __io_write_fn cookie_write_function_t; -typedef __io_seek_fn cookie_seek_function_t; -typedef __io_close_fn cookie_close_function_t; - - -typedef struct -{ - __io_read_fn *read; - __io_write_fn *write; - __io_seek_fn *seek; - __io_close_fn *close; -} _IO_cookie_io_functions_t; -typedef _IO_cookie_io_functions_t cookie_io_functions_t; - -struct _IO_cookie_file; - - -extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, - void *__cookie, _IO_cookie_io_functions_t __fns); - - - - -extern "C" { - - -extern int __underflow (_IO_FILE *); -extern int __uflow (_IO_FILE *); -extern int __overflow (_IO_FILE *, int); -# 435 "/usr/include/libio.h" 3 4 -extern int _IO_getc (_IO_FILE *__fp); -extern int _IO_putc (int __c, _IO_FILE *__fp); -extern int _IO_feof (_IO_FILE *__fp) throw (); -extern int _IO_ferror (_IO_FILE *__fp) throw (); - -extern int _IO_peekc_locked (_IO_FILE *__fp); - - - - - -extern void _IO_flockfile (_IO_FILE *) throw (); -extern void _IO_funlockfile (_IO_FILE *) throw (); -extern int _IO_ftrylockfile (_IO_FILE *) throw (); -# 465 "/usr/include/libio.h" 3 4 -extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, - __gnuc_va_list, int *__restrict); -extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, - __gnuc_va_list); -extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); -extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); - -extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); -extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); - -extern void _IO_free_backup_area (_IO_FILE *) throw (); -# 527 "/usr/include/libio.h" 3 4 -} -# 75 "/usr/include/stdio.h" 2 3 4 - - - - -typedef __gnuc_va_list va_list; -# 108 "/usr/include/stdio.h" 3 4 - - -typedef _G_fpos_t fpos_t; - - - - - -typedef _G_fpos64_t fpos64_t; -# 164 "/usr/include/stdio.h" 3 4 -# 1 "/usr/include/bits/stdio_lim.h" 1 3 4 -# 165 "/usr/include/stdio.h" 2 3 4 - - - -extern struct _IO_FILE *stdin; -extern struct _IO_FILE *stdout; -extern struct _IO_FILE *stderr; - - - - - - - -extern int remove (const char *__filename) throw (); - -extern int rename (const char *__old, const char *__new) throw (); - - - - -extern int renameat (int __oldfd, const char *__old, int __newfd, - const char *__new) throw (); - - - - - - - - -extern FILE *tmpfile (void) ; -# 205 "/usr/include/stdio.h" 3 4 -extern FILE *tmpfile64 (void) ; - - - -extern char *tmpnam (char *__s) throw () ; - - - - - -extern char *tmpnam_r (char *__s) throw () ; -# 227 "/usr/include/stdio.h" 3 4 -extern char *tempnam (const char *__dir, const char *__pfx) - throw () __attribute__ ((__malloc__)) ; - - - - - - - - -extern int fclose (FILE *__stream); - - - - -extern int fflush (FILE *__stream); - -# 252 "/usr/include/stdio.h" 3 4 -extern int fflush_unlocked (FILE *__stream); -# 262 "/usr/include/stdio.h" 3 4 -extern int fcloseall (void); - - - - - - - - - -extern FILE *fopen (const char *__restrict __filename, - const char *__restrict __modes) ; - - - - -extern FILE *freopen (const char *__restrict __filename, - const char *__restrict __modes, - FILE *__restrict __stream) ; -# 295 "/usr/include/stdio.h" 3 4 - - -extern FILE *fopen64 (const char *__restrict __filename, - const char *__restrict __modes) ; -extern FILE *freopen64 (const char *__restrict __filename, - const char *__restrict __modes, - FILE *__restrict __stream) ; - - - - -extern FILE *fdopen (int __fd, const char *__modes) throw () ; - - - - - -extern FILE *fopencookie (void *__restrict __magic_cookie, - const char *__restrict __modes, - _IO_cookie_io_functions_t __io_funcs) throw () ; - - - - -extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) - throw () ; - - - - -extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ; - - - - - - -extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); - - - -extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, - int __modes, size_t __n) throw (); - - - - - -extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, - size_t __size) throw (); - - -extern void setlinebuf (FILE *__stream) throw (); - - - - - - - - -extern int fprintf (FILE *__restrict __stream, - const char *__restrict __format, ...); - - - - -extern int printf (const char *__restrict __format, ...); - -extern int sprintf (char *__restrict __s, - const char *__restrict __format, ...) throw (); - - - - - -extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, - __gnuc_va_list __arg); - - - - -extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); - -extern int vsprintf (char *__restrict __s, const char *__restrict __format, - __gnuc_va_list __arg) throw (); - - - - - -extern int snprintf (char *__restrict __s, size_t __maxlen, - const char *__restrict __format, ...) - throw () __attribute__ ((__format__ (__printf__, 3, 4))); - -extern int vsnprintf (char *__restrict __s, size_t __maxlen, - const char *__restrict __format, __gnuc_va_list __arg) - throw () __attribute__ ((__format__ (__printf__, 3, 0))); - - - - - - -extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, - __gnuc_va_list __arg) - throw () __attribute__ ((__format__ (__printf__, 2, 0))) ; -extern int __asprintf (char **__restrict __ptr, - const char *__restrict __fmt, ...) - throw () __attribute__ ((__format__ (__printf__, 2, 3))) ; -extern int asprintf (char **__restrict __ptr, - const char *__restrict __fmt, ...) - throw () __attribute__ ((__format__ (__printf__, 2, 3))) ; - - - - -extern int vdprintf (int __fd, const char *__restrict __fmt, - __gnuc_va_list __arg) - __attribute__ ((__format__ (__printf__, 2, 0))); -extern int dprintf (int __fd, const char *__restrict __fmt, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); - - - - - - - - -extern int fscanf (FILE *__restrict __stream, - const char *__restrict __format, ...) ; - - - - -extern int scanf (const char *__restrict __format, ...) ; - -extern int sscanf (const char *__restrict __s, - const char *__restrict __format, ...) throw (); -# 463 "/usr/include/stdio.h" 3 4 - - - - - - - - -extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, - __gnuc_va_list __arg) - __attribute__ ((__format__ (__scanf__, 2, 0))) ; - - - - - -extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) - __attribute__ ((__format__ (__scanf__, 1, 0))) ; - - -extern int vsscanf (const char *__restrict __s, - const char *__restrict __format, __gnuc_va_list __arg) - throw () __attribute__ ((__format__ (__scanf__, 2, 0))); -# 522 "/usr/include/stdio.h" 3 4 - - - - - - - - - -extern int fgetc (FILE *__stream); -extern int getc (FILE *__stream); - - - - - -extern int getchar (void); - -# 550 "/usr/include/stdio.h" 3 4 -extern int getc_unlocked (FILE *__stream); -extern int getchar_unlocked (void); -# 561 "/usr/include/stdio.h" 3 4 -extern int fgetc_unlocked (FILE *__stream); - - - - - - - - - - - -extern int fputc (int __c, FILE *__stream); -extern int putc (int __c, FILE *__stream); - - - - - -extern int putchar (int __c); - -# 594 "/usr/include/stdio.h" 3 4 -extern int fputc_unlocked (int __c, FILE *__stream); - - - - - - - -extern int putc_unlocked (int __c, FILE *__stream); -extern int putchar_unlocked (int __c); - - - - - - -extern int getw (FILE *__stream); - - -extern int putw (int __w, FILE *__stream); - - - - - - - - -extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) - ; -# 640 "/usr/include/stdio.h" 3 4 - -# 649 "/usr/include/stdio.h" 3 4 -extern char *fgets_unlocked (char *__restrict __s, int __n, - FILE *__restrict __stream) ; -# 665 "/usr/include/stdio.h" 3 4 -extern __ssize_t __getdelim (char **__restrict __lineptr, - size_t *__restrict __n, int __delimiter, - FILE *__restrict __stream) ; -extern __ssize_t getdelim (char **__restrict __lineptr, - size_t *__restrict __n, int __delimiter, - FILE *__restrict __stream) ; - - - - - - - -extern __ssize_t getline (char **__restrict __lineptr, - size_t *__restrict __n, - FILE *__restrict __stream) ; - - - - - - - - -extern int fputs (const char *__restrict __s, FILE *__restrict __stream); - - - - - -extern int puts (const char *__s); - - - - - - -extern int ungetc (int __c, FILE *__stream); - - - - - - -extern size_t fread (void *__restrict __ptr, size_t __size, - size_t __n, FILE *__restrict __stream) ; - - - - -extern size_t fwrite (const void *__restrict __ptr, size_t __size, - size_t __n, FILE *__restrict __s); - -# 726 "/usr/include/stdio.h" 3 4 -extern int fputs_unlocked (const char *__restrict __s, - FILE *__restrict __stream); -# 737 "/usr/include/stdio.h" 3 4 -extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, - size_t __n, FILE *__restrict __stream) ; -extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, - size_t __n, FILE *__restrict __stream); - - - - - - - - -extern int fseek (FILE *__stream, long int __off, int __whence); - - - - -extern long int ftell (FILE *__stream) ; - - - - -extern void rewind (FILE *__stream); - -# 773 "/usr/include/stdio.h" 3 4 -extern int fseeko (FILE *__stream, __off_t __off, int __whence); - - - - -extern __off_t ftello (FILE *__stream) ; -# 792 "/usr/include/stdio.h" 3 4 - - - - - - -extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); - - - - -extern int fsetpos (FILE *__stream, const fpos_t *__pos); -# 815 "/usr/include/stdio.h" 3 4 - - - -extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); -extern __off64_t ftello64 (FILE *__stream) ; -extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); -extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); - - - - -extern void clearerr (FILE *__stream) throw (); - -extern int feof (FILE *__stream) throw () ; - -extern int ferror (FILE *__stream) throw () ; - - - - -extern void clearerr_unlocked (FILE *__stream) throw (); -extern int feof_unlocked (FILE *__stream) throw () ; -extern int ferror_unlocked (FILE *__stream) throw () ; - - - - - - - - -extern void perror (const char *__s); - - - - - - -# 1 "/usr/include/bits/sys_errlist.h" 1 3 4 -# 26 "/usr/include/bits/sys_errlist.h" 3 4 -extern int sys_nerr; -extern const char *const sys_errlist[]; - - -extern int _sys_nerr; -extern const char *const _sys_errlist[]; -# 854 "/usr/include/stdio.h" 2 3 4 - - - - -extern int fileno (FILE *__stream) throw () ; - - - - -extern int fileno_unlocked (FILE *__stream) throw () ; -# 873 "/usr/include/stdio.h" 3 4 -extern FILE *popen (const char *__command, const char *__modes) ; - - - - - -extern int pclose (FILE *__stream); - - - - - -extern char *ctermid (char *__s) throw (); - - - - - -extern char *cuserid (char *__s); - - - - -struct obstack; - - -extern int obstack_printf (struct obstack *__restrict __obstack, - const char *__restrict __format, ...) - throw () __attribute__ ((__format__ (__printf__, 2, 3))); -extern int obstack_vprintf (struct obstack *__restrict __obstack, - const char *__restrict __format, - __gnuc_va_list __args) - throw () __attribute__ ((__format__ (__printf__, 2, 0))); - - - - - - - -extern void flockfile (FILE *__stream) throw (); - - - -extern int ftrylockfile (FILE *__stream) throw () ; - - -extern void funlockfile (FILE *__stream) throw (); -# 943 "/usr/include/stdio.h" 3 4 -} -# 43 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdio" 2 3 -# 96 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdio" 3 -namespace std -{ - using ::FILE; - using ::fpos_t; - - using ::clearerr; - using ::fclose; - using ::feof; - using ::ferror; - using ::fflush; - using ::fgetc; - using ::fgetpos; - using ::fgets; - using ::fopen; - using ::fprintf; - using ::fputc; - using ::fputs; - using ::fread; - using ::freopen; - using ::fscanf; - using ::fseek; - using ::fsetpos; - using ::ftell; - using ::fwrite; - using ::getc; - using ::getchar; - - - - - using ::perror; - using ::printf; - using ::putc; - using ::putchar; - using ::puts; - using ::remove; - using ::rename; - using ::rewind; - using ::scanf; - using ::setbuf; - using ::setvbuf; - using ::sprintf; - using ::sscanf; - using ::tmpfile; - - using ::tmpnam; - - using ::ungetc; - using ::vfprintf; - using ::vprintf; - using ::vsprintf; -} -# 157 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdio" 3 -namespace __gnu_cxx -{ -# 175 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdio" 3 - using ::snprintf; - using ::vfscanf; - using ::vscanf; - using ::vsnprintf; - using ::vsscanf; - -} - -namespace std -{ - using ::__gnu_cxx::snprintf; - using ::__gnu_cxx::vfscanf; - using ::__gnu_cxx::vscanf; - using ::__gnu_cxx::vsnprintf; - using ::__gnu_cxx::vsscanf; -} -# 44 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/string_conversions.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cerrno" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cerrno" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cerrno" 3 - - -# 1 "/usr/include/errno.h" 1 3 4 -# 31 "/usr/include/errno.h" 3 4 -extern "C" { - - - -# 1 "/usr/include/bits/errno.h" 1 3 4 -# 24 "/usr/include/bits/errno.h" 3 4 -# 1 "/usr/include/linux/errno.h" 1 3 4 -# 1 "/usr/include/asm/errno.h" 1 3 4 -# 1 "/usr/include/asm-generic/errno.h" 1 3 4 - - - -# 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 -# 5 "/usr/include/asm-generic/errno.h" 2 3 4 -# 2 "/usr/include/asm/errno.h" 2 3 4 -# 2 "/usr/include/linux/errno.h" 2 3 4 -# 25 "/usr/include/bits/errno.h" 2 3 4 -# 50 "/usr/include/bits/errno.h" 3 4 -extern int *__errno_location (void) throw () __attribute__ ((__const__)); -# 36 "/usr/include/errno.h" 2 3 4 -# 54 "/usr/include/errno.h" 3 4 -extern char *program_invocation_name, *program_invocation_short_name; - - - -} -# 68 "/usr/include/errno.h" 3 4 -typedef int error_t; -# 43 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cerrno" 2 3 -# 45 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/string_conversions.h" 2 3 - -namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) -{ - - - - template - _Ret - __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...), - const char* __name, const _CharT* __str, std::size_t* __idx, - _Base... __base) - { - _Ret __ret; - - _CharT* __endptr; - - struct _Save_errno { - _Save_errno() : _M_errno((*__errno_location ())) { (*__errno_location ()) = 0; } - ~_Save_errno() { if ((*__errno_location ()) == 0) (*__errno_location ()) = _M_errno; } - int _M_errno; - } const __save_errno; - - struct _Range_chk { - static bool - _S_chk(_TRet, std::false_type) { return false; } - - static bool - _S_chk(_TRet __val, std::true_type) - { - return __val < _TRet(__numeric_traits::__min) - || __val > _TRet(__numeric_traits::__max); - } - }; - - const _TRet __tmp = __convf(__str, &__endptr, __base...); - - if (__endptr == __str) - std::__throw_invalid_argument(__name); - else if ((*__errno_location ()) == 34 - || _Range_chk::_S_chk(__tmp, std::is_same<_Ret, int>{})) - std::__throw_out_of_range(__name); - else - __ret = __tmp; - - if (__idx) - *__idx = __endptr - __str; - - return __ret; - } - - - template - _String - __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*, - __builtin_va_list), std::size_t __n, - const _CharT* __fmt, ...) - { - - - _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) - * __n)); - - __builtin_va_list __args; - __builtin_va_start(__args, __fmt); - - const int __len = __convf(__s, __n, __fmt, __args); - - __builtin_va_end(__args); - - return _String(__s, __s + __len); - } - - -} -# 6536 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/charconv.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/charconv.h" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/charconv.h" 3 - - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -namespace __detail -{ - - template - constexpr unsigned - __to_chars_len(_Tp __value, int __base = 10) noexcept - { - static_assert(is_integral<_Tp>::value, "implementation bug"); - static_assert(is_unsigned<_Tp>::value, "implementation bug"); - - unsigned __n = 1; - const unsigned __b2 = __base * __base; - const unsigned __b3 = __b2 * __base; - const unsigned long __b4 = __b3 * __base; - for (;;) - { - if (__value < (unsigned)__base) return __n; - if (__value < __b2) return __n + 1; - if (__value < __b3) return __n + 2; - if (__value < __b4) return __n + 3; - __value /= __b4; - __n += 4; - } - } - - - - - template - void - __to_chars_10_impl(char* __first, unsigned __len, _Tp __val) noexcept - { - static_assert(is_integral<_Tp>::value, "implementation bug"); - static_assert(is_unsigned<_Tp>::value, "implementation bug"); - - static constexpr char __digits[201] = - "0001020304050607080910111213141516171819" - "2021222324252627282930313233343536373839" - "4041424344454647484950515253545556575859" - "6061626364656667686970717273747576777879" - "8081828384858687888990919293949596979899"; - unsigned __pos = __len - 1; - while (__val >= 100) - { - auto const __num = (__val % 100) * 2; - __val /= 100; - __first[__pos] = __digits[__num + 1]; - __first[__pos - 1] = __digits[__num]; - __pos -= 2; - } - if (__val >= 10) - { - auto const __num = __val * 2; - __first[1] = __digits[__num + 1]; - __first[0] = __digits[__num]; - } - else - __first[0] = '0' + __val; - } - -} - -} -# 6537 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -namespace __cxx11 { - - - - inline int - stoi(const string& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), - __idx, __base); } - - inline long - stol(const string& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(), - __idx, __base); } - - inline unsigned long - stoul(const string& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(), - __idx, __base); } - - inline long long - stoll(const string& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(), - __idx, __base); } - - inline unsigned long long - stoull(const string& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(), - __idx, __base); } - - - inline float - stof(const string& __str, size_t* __idx = 0) - { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); } - - inline double - stod(const string& __str, size_t* __idx = 0) - { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); } - - inline long double - stold(const string& __str, size_t* __idx = 0) - { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); } - - - - - inline string - to_string(int __val) - { - const bool __neg = __val < 0; - const unsigned __uval = __neg ? (unsigned)~__val + 1u : __val; - const auto __len = __detail::__to_chars_len(__uval); - string __str(__neg + __len, '-'); - __detail::__to_chars_10_impl(&__str[__neg], __len, __uval); - return __str; - } - - inline string - to_string(unsigned __val) - { - string __str(__detail::__to_chars_len(__val), '\0'); - __detail::__to_chars_10_impl(&__str[0], __str.size(), __val); - return __str; - } - - inline string - to_string(long __val) - { - const bool __neg = __val < 0; - const unsigned long __uval = __neg ? (unsigned long)~__val + 1ul : __val; - const auto __len = __detail::__to_chars_len(__uval); - string __str(__neg + __len, '-'); - __detail::__to_chars_10_impl(&__str[__neg], __len, __uval); - return __str; - } - - inline string - to_string(unsigned long __val) - { - string __str(__detail::__to_chars_len(__val), '\0'); - __detail::__to_chars_10_impl(&__str[0], __str.size(), __val); - return __str; - } - - inline string - to_string(long long __val) - { - const bool __neg = __val < 0; - const unsigned long long __uval - = __neg ? (unsigned long long)~__val + 1ull : __val; - const auto __len = __detail::__to_chars_len(__uval); - string __str(__neg + __len, '-'); - __detail::__to_chars_10_impl(&__str[__neg], __len, __uval); - return __str; - } - - inline string - to_string(unsigned long long __val) - { - string __str(__detail::__to_chars_len(__val), '\0'); - __detail::__to_chars_10_impl(&__str[0], __str.size(), __val); - return __str; - } - - - - - inline string - to_string(float __val) - { - const int __n = - __gnu_cxx::__numeric_traits::__max_exponent10 + 20; - return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, - "%f", __val); - } - - inline string - to_string(double __val) - { - const int __n = - __gnu_cxx::__numeric_traits::__max_exponent10 + 20; - return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, - "%f", __val); - } - - inline string - to_string(long double __val) - { - const int __n = - __gnu_cxx::__numeric_traits::__max_exponent10 + 20; - return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, - "%Lf", __val); - } - - - - inline int - stoi(const wstring& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::wcstol, "stoi", __str.c_str(), - __idx, __base); } - - inline long - stol(const wstring& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(), - __idx, __base); } - - inline unsigned long - stoul(const wstring& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(), - __idx, __base); } - - inline long long - stoll(const wstring& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(), - __idx, __base); } - - inline unsigned long long - stoull(const wstring& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(), - __idx, __base); } - - - inline float - stof(const wstring& __str, size_t* __idx = 0) - { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); } - - inline double - stod(const wstring& __str, size_t* __idx = 0) - { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); } - - inline long double - stold(const wstring& __str, size_t* __idx = 0) - { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); } - - - - inline wstring - to_wstring(int __val) - { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(int), - L"%d", __val); } - - inline wstring - to_wstring(unsigned __val) - { return __gnu_cxx::__to_xstring(&std::vswprintf, - 4 * sizeof(unsigned), - L"%u", __val); } - - inline wstring - to_wstring(long __val) - { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(long), - L"%ld", __val); } - - inline wstring - to_wstring(unsigned long __val) - { return __gnu_cxx::__to_xstring(&std::vswprintf, - 4 * sizeof(unsigned long), - L"%lu", __val); } - - inline wstring - to_wstring(long long __val) - { return __gnu_cxx::__to_xstring(&std::vswprintf, - 4 * sizeof(long long), - L"%lld", __val); } - - inline wstring - to_wstring(unsigned long long __val) - { return __gnu_cxx::__to_xstring(&std::vswprintf, - 4 * sizeof(unsigned long long), - L"%llu", __val); } - - inline wstring - to_wstring(float __val) - { - const int __n = - __gnu_cxx::__numeric_traits::__max_exponent10 + 20; - return __gnu_cxx::__to_xstring(&std::vswprintf, __n, - L"%f", __val); - } - - inline wstring - to_wstring(double __val) - { - const int __n = - __gnu_cxx::__numeric_traits::__max_exponent10 + 20; - return __gnu_cxx::__to_xstring(&std::vswprintf, __n, - L"%f", __val); - } - - inline wstring - to_wstring(long double __val) - { - const int __n = - __gnu_cxx::__numeric_traits::__max_exponent10 + 20; - return __gnu_cxx::__to_xstring(&std::vswprintf, __n, - L"%Lf", __val); - } - - - -} - -} - - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/functional_hash.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/functional_hash.h" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/functional_hash.h" 3 - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 49 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/functional_hash.h" 3 - template - struct __hash_base - { - typedef _Result result_type ; - typedef _Arg argument_type ; - }; - - - template - struct hash; - - template - struct __poison_hash - { - static constexpr bool __enable_hash_call = false; - private: - - __poison_hash(__poison_hash&&); - ~__poison_hash(); - }; - - template - struct __poison_hash<_Tp, __void_t()(declval<_Tp>()))>> - { - static constexpr bool __enable_hash_call = true; - }; - - - template::value> - struct __hash_enum - { - private: - - __hash_enum(__hash_enum&&); - ~__hash_enum(); - }; - - - template - struct __hash_enum<_Tp, true> : public __hash_base - { - size_t - operator()(_Tp __val) const noexcept - { - using __type = typename underlying_type<_Tp>::type; - return hash<__type>{}(static_cast<__type>(__val)); - } - }; - - - - template - struct hash : __hash_enum<_Tp> - { }; - - - template - struct hash<_Tp*> : public __hash_base - { - size_t - operator()(_Tp* __p) const noexcept - { return reinterpret_cast(__p); } - }; -# 124 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/functional_hash.h" 3 - template<> struct hash : public __hash_base { size_t operator()(bool __val) const noexcept { return static_cast(__val); } }; - - - template<> struct hash : public __hash_base { size_t operator()(char __val) const noexcept { return static_cast(__val); } }; - - - template<> struct hash : public __hash_base { size_t operator()(signed char __val) const noexcept { return static_cast(__val); } }; - - - template<> struct hash : public __hash_base { size_t operator()(unsigned char __val) const noexcept { return static_cast(__val); } }; - - - template<> struct hash : public __hash_base { size_t operator()(wchar_t __val) const noexcept { return static_cast(__val); } }; - - - - - - - - template<> struct hash : public __hash_base { size_t operator()(char16_t __val) const noexcept { return static_cast(__val); } }; - - - template<> struct hash : public __hash_base { size_t operator()(char32_t __val) const noexcept { return static_cast(__val); } }; - - - template<> struct hash : public __hash_base { size_t operator()(short __val) const noexcept { return static_cast(__val); } }; - - - template<> struct hash : public __hash_base { size_t operator()(int __val) const noexcept { return static_cast(__val); } }; - - - template<> struct hash : public __hash_base { size_t operator()(long __val) const noexcept { return static_cast(__val); } }; - - - template<> struct hash : public __hash_base { size_t operator()(long long __val) const noexcept { return static_cast(__val); } }; - - - template<> struct hash : public __hash_base { size_t operator()(unsigned short __val) const noexcept { return static_cast(__val); } }; - - - template<> struct hash : public __hash_base { size_t operator()(unsigned int __val) const noexcept { return static_cast(__val); } }; - - - template<> struct hash : public __hash_base { size_t operator()(unsigned long __val) const noexcept { return static_cast(__val); } }; - - - template<> struct hash : public __hash_base { size_t operator()(unsigned long long __val) const noexcept { return static_cast(__val); } }; - - - template<> struct hash<__int128> : public __hash_base { size_t operator()(__int128 __val) const noexcept { return static_cast(__val); } }; - template<> struct hash<__int128 unsigned> : public __hash_base { size_t operator()(__int128 unsigned __val) const noexcept { return static_cast(__val); } }; -# 192 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/functional_hash.h" 3 - struct _Hash_impl - { - static size_t - hash(const void* __ptr, size_t __clength, - size_t __seed = static_cast(0xc70f6907UL)) - { return _Hash_bytes(__ptr, __clength, __seed); } - - template - static size_t - hash(const _Tp& __val) - { return hash(&__val, sizeof(__val)); } - - template - static size_t - __hash_combine(const _Tp& __val, size_t __hash) - { return hash(&__val, sizeof(__val), __hash); } - }; - - - struct _Fnv_hash_impl - { - static size_t - hash(const void* __ptr, size_t __clength, - size_t __seed = static_cast(2166136261UL)) - { return _Fnv_hash_bytes(__ptr, __clength, __seed); } - - template - static size_t - hash(const _Tp& __val) - { return hash(&__val, sizeof(__val)); } - - template - static size_t - __hash_combine(const _Tp& __val, size_t __hash) - { return hash(&__val, sizeof(__val), __hash); } - }; - - - template<> - struct hash : public __hash_base - { - size_t - operator()(float __val) const noexcept - { - - return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0; - } - }; - - - template<> - struct hash : public __hash_base - { - size_t - operator()(double __val) const noexcept - { - - return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0; - } - }; - - - template<> - struct hash - : public __hash_base - { - __attribute__ ((__pure__)) size_t - operator()(long double __val) const noexcept; - }; -# 278 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/functional_hash.h" 3 - template - struct __is_fast_hash : public std::true_type - { }; - - template<> - struct __is_fast_hash> : public std::false_type - { }; - - -} -# 6788 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - template<> - struct hash - : public __hash_base - { - size_t - operator()(const string& __s) const noexcept - { return std::_Hash_impl::hash(__s.data(), __s.length()); } - }; - - template<> - struct __is_fast_hash> : std::false_type - { }; - - - - template<> - struct hash - : public __hash_base - { - size_t - operator()(const wstring& __s) const noexcept - { return std::_Hash_impl::hash(__s.data(), - __s.length() * sizeof(wchar_t)); } - }; - - template<> - struct __is_fast_hash> : std::false_type - { }; -# 6846 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - template<> - struct hash - : public __hash_base - { - size_t - operator()(const u16string& __s) const noexcept - { return std::_Hash_impl::hash(__s.data(), - __s.length() * sizeof(char16_t)); } - }; - - template<> - struct __is_fast_hash> : std::false_type - { }; - - - template<> - struct hash - : public __hash_base - { - size_t - operator()(const u32string& __s) const noexcept - { return std::_Hash_impl::hash(__s.data(), - __s.length() * sizeof(char32_t)); } - }; - - template<> - struct __is_fast_hash> : std::false_type - { }; - - - - - - inline namespace literals - { - inline namespace string_literals - { -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wliteral-suffix" - __attribute ((__abi_tag__ ("cxx11"))) - inline basic_string - operator""s(const char* __str, size_t __len) - { return basic_string{__str, __len}; } - - - __attribute ((__abi_tag__ ("cxx11"))) - inline basic_string - operator""s(const wchar_t* __str, size_t __len) - { return basic_string{__str, __len}; } -# 6904 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - __attribute ((__abi_tag__ ("cxx11"))) - inline basic_string - operator""s(const char16_t* __str, size_t __len) - { return basic_string{__str, __len}; } - - __attribute ((__abi_tag__ ("cxx11"))) - inline basic_string - operator""s(const char32_t* __str, size_t __len) - { return basic_string{__str, __len}; } - -#pragma GCC diagnostic pop - } - } -# 6936 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.h" 3 - -} -# 56 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/string" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.tcc" 1 3 -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.tcc" 3 - -# 43 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.tcc" 3 - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - template - const typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>::npos; - - template - void - basic_string<_CharT, _Traits, _Alloc>:: - swap(basic_string& __s) noexcept - { - if (this == &__s) - return; - - _Alloc_traits::_S_on_swap(_M_get_allocator(), __s._M_get_allocator()); - - if (_M_is_local()) - if (__s._M_is_local()) - { - if (length() && __s.length()) - { - _CharT __tmp_data[_S_local_capacity + 1]; - traits_type::copy(__tmp_data, __s._M_local_buf, - _S_local_capacity + 1); - traits_type::copy(__s._M_local_buf, _M_local_buf, - _S_local_capacity + 1); - traits_type::copy(_M_local_buf, __tmp_data, - _S_local_capacity + 1); - } - else if (__s.length()) - { - traits_type::copy(_M_local_buf, __s._M_local_buf, - _S_local_capacity + 1); - _M_length(__s.length()); - __s._M_set_length(0); - return; - } - else if (length()) - { - traits_type::copy(__s._M_local_buf, _M_local_buf, - _S_local_capacity + 1); - __s._M_length(length()); - _M_set_length(0); - return; - } - } - else - { - const size_type __tmp_capacity = __s._M_allocated_capacity; - traits_type::copy(__s._M_local_buf, _M_local_buf, - _S_local_capacity + 1); - _M_data(__s._M_data()); - __s._M_data(__s._M_local_buf); - _M_capacity(__tmp_capacity); - } - else - { - const size_type __tmp_capacity = _M_allocated_capacity; - if (__s._M_is_local()) - { - traits_type::copy(_M_local_buf, __s._M_local_buf, - _S_local_capacity + 1); - __s._M_data(_M_data()); - _M_data(_M_local_buf); - } - else - { - pointer __tmp_ptr = _M_data(); - _M_data(__s._M_data()); - __s._M_data(__tmp_ptr); - _M_capacity(__s._M_allocated_capacity); - } - __s._M_capacity(__tmp_capacity); - } - - const size_type __tmp_length = length(); - _M_length(__s.length()); - __s._M_length(__tmp_length); - } - - template - typename basic_string<_CharT, _Traits, _Alloc>::pointer - basic_string<_CharT, _Traits, _Alloc>:: - _M_create(size_type& __capacity, size_type __old_capacity) - { - - - if (__capacity > max_size()) - std::__throw_length_error(("basic_string::_M_create")); - - - - - if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) - { - __capacity = 2 * __old_capacity; - - if (__capacity > max_size()) - __capacity = max_size(); - } - - - - return _Alloc_traits::allocate(_M_get_allocator(), __capacity + 1); - } - - - - - - template - template - void - basic_string<_CharT, _Traits, _Alloc>:: - _M_construct(_InIterator __beg, _InIterator __end, - std::input_iterator_tag) - { - size_type __len = 0; - size_type __capacity = size_type(_S_local_capacity); - - while (__beg != __end && __len < __capacity) - { - _M_data()[__len++] = *__beg; - ++__beg; - } - - try - { - while (__beg != __end) - { - if (__len == __capacity) - { - - __capacity = __len + 1; - pointer __another = _M_create(__capacity, __len); - this->_S_copy(__another, _M_data(), __len); - _M_dispose(); - _M_data(__another); - _M_capacity(__capacity); - } - _M_data()[__len++] = *__beg; - ++__beg; - } - } - catch(...) - { - _M_dispose(); - throw; - } - - _M_set_length(__len); - } - - template - template - void - basic_string<_CharT, _Traits, _Alloc>:: - _M_construct(_InIterator __beg, _InIterator __end, - std::forward_iterator_tag) - { - - if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end) - std::__throw_logic_error(("basic_string::" "_M_construct null not valid") - ); - - size_type __dnew = static_cast(std::distance(__beg, __end)); - - if (__dnew > size_type(_S_local_capacity)) - { - _M_data(_M_create(__dnew, size_type(0))); - _M_capacity(__dnew); - } - - - try - { this->_S_copy_chars(_M_data(), __beg, __end); } - catch(...) - { - _M_dispose(); - throw; - } - - _M_set_length(__dnew); - } - - template - void - basic_string<_CharT, _Traits, _Alloc>:: - _M_construct(size_type __n, _CharT __c) - { - if (__n > size_type(_S_local_capacity)) - { - _M_data(_M_create(__n, size_type(0))); - _M_capacity(__n); - } - - if (__n) - this->_S_assign(_M_data(), __n, __c); - - _M_set_length(__n); - } - - template - void - basic_string<_CharT, _Traits, _Alloc>:: - _M_assign(const basic_string& __str) - { - if (this != &__str) - { - const size_type __rsize = __str.length(); - const size_type __capacity = capacity(); - - if (__rsize > __capacity) - { - size_type __new_capacity = __rsize; - pointer __tmp = _M_create(__new_capacity, __capacity); - _M_dispose(); - _M_data(__tmp); - _M_capacity(__new_capacity); - } - - if (__rsize) - this->_S_copy(_M_data(), __str._M_data(), __rsize); - - _M_set_length(__rsize); - } - } - - template - void - basic_string<_CharT, _Traits, _Alloc>:: - reserve(size_type __res) - { - - if (__res < length()) - __res = length(); - - const size_type __capacity = capacity(); - if (__res != __capacity) - { - if (__res > __capacity - || __res > size_type(_S_local_capacity)) - { - pointer __tmp = _M_create(__res, __capacity); - this->_S_copy(__tmp, _M_data(), length() + 1); - _M_dispose(); - _M_data(__tmp); - _M_capacity(__res); - } - else if (!_M_is_local()) - { - this->_S_copy(_M_local_data(), _M_data(), length() + 1); - _M_destroy(__capacity); - _M_data(_M_local_data()); - } - } - } - - template - void - basic_string<_CharT, _Traits, _Alloc>:: - _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, - size_type __len2) - { - const size_type __how_much = length() - __pos - __len1; - - size_type __new_capacity = length() + __len2 - __len1; - pointer __r = _M_create(__new_capacity, capacity()); - - if (__pos) - this->_S_copy(__r, _M_data(), __pos); - if (__s && __len2) - this->_S_copy(__r + __pos, __s, __len2); - if (__how_much) - this->_S_copy(__r + __pos + __len2, - _M_data() + __pos + __len1, __how_much); - - _M_dispose(); - _M_data(__r); - _M_capacity(__new_capacity); - } - - template - void - basic_string<_CharT, _Traits, _Alloc>:: - _M_erase(size_type __pos, size_type __n) - { - const size_type __how_much = length() - __pos - __n; - - if (__how_much && __n) - this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much); - - _M_set_length(length() - __n); - } - - template - void - basic_string<_CharT, _Traits, _Alloc>:: - resize(size_type __n, _CharT __c) - { - const size_type __size = this->size(); - if (__size < __n) - this->append(__n - __size, __c); - else if (__n < __size) - this->_M_set_length(__n); - } - - template - basic_string<_CharT, _Traits, _Alloc>& - basic_string<_CharT, _Traits, _Alloc>:: - _M_append(const _CharT* __s, size_type __n) - { - const size_type __len = __n + this->size(); - - if (__len <= this->capacity()) - { - if (__n) - this->_S_copy(this->_M_data() + this->size(), __s, __n); - } - else - this->_M_mutate(this->size(), size_type(0), __s, __n); - - this->_M_set_length(__len); - return *this; - } - - template - template - basic_string<_CharT, _Traits, _Alloc>& - basic_string<_CharT, _Traits, _Alloc>:: - _M_replace_dispatch(const_iterator __i1, const_iterator __i2, - _InputIterator __k1, _InputIterator __k2, - std::__false_type) - { - - - const basic_string __s(__k1, __k2, this->get_allocator()); - const size_type __n1 = __i2 - __i1; - return _M_replace(__i1 - begin(), __n1, __s._M_data(), - __s.size()); - } - - template - basic_string<_CharT, _Traits, _Alloc>& - basic_string<_CharT, _Traits, _Alloc>:: - _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, - _CharT __c) - { - _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); - - const size_type __old_size = this->size(); - const size_type __new_size = __old_size + __n2 - __n1; - - if (__new_size <= this->capacity()) - { - pointer __p = this->_M_data() + __pos1; - - const size_type __how_much = __old_size - __pos1 - __n1; - if (__how_much && __n1 != __n2) - this->_S_move(__p + __n2, __p + __n1, __how_much); - } - else - this->_M_mutate(__pos1, __n1, 0, __n2); - - if (__n2) - this->_S_assign(this->_M_data() + __pos1, __n2, __c); - - this->_M_set_length(__new_size); - return *this; - } - - template - basic_string<_CharT, _Traits, _Alloc>& - basic_string<_CharT, _Traits, _Alloc>:: - _M_replace(size_type __pos, size_type __len1, const _CharT* __s, - const size_type __len2) - { - _M_check_length(__len1, __len2, "basic_string::_M_replace"); - - const size_type __old_size = this->size(); - const size_type __new_size = __old_size + __len2 - __len1; - - if (__new_size <= this->capacity()) - { - pointer __p = this->_M_data() + __pos; - - const size_type __how_much = __old_size - __pos - __len1; - if (_M_disjunct(__s)) - { - if (__how_much && __len1 != __len2) - this->_S_move(__p + __len2, __p + __len1, __how_much); - if (__len2) - this->_S_copy(__p, __s, __len2); - } - else - { - - if (__len2 && __len2 <= __len1) - this->_S_move(__p, __s, __len2); - if (__how_much && __len1 != __len2) - this->_S_move(__p + __len2, __p + __len1, __how_much); - if (__len2 > __len1) - { - if (__s + __len2 <= __p + __len1) - this->_S_move(__p, __s, __len2); - else if (__s >= __p + __len1) - this->_S_copy(__p, __s + __len2 - __len1, __len2); - else - { - const size_type __nleft = (__p + __len1) - __s; - this->_S_move(__p, __s, __nleft); - this->_S_copy(__p + __nleft, __p + __len2, - __len2 - __nleft); - } - } - } - } - else - this->_M_mutate(__pos, __len1, __s, __len2); - - this->_M_set_length(__new_size); - return *this; - } - - template - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - copy(_CharT* __s, size_type __n, size_type __pos) const - { - _M_check(__pos, "basic_string::copy"); - __n = _M_limit(__pos, __n); - ; - if (__n) - _S_copy(__s, _M_data() + __pos, __n); - - return __n; - } -# 1158 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.tcc" 3 - template - basic_string<_CharT, _Traits, _Alloc> - operator+(const _CharT* __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { - ; - typedef basic_string<_CharT, _Traits, _Alloc> __string_type; - typedef typename __string_type::size_type __size_type; - typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template - rebind<_CharT>::other _Char_alloc_type; - typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; - const __size_type __len = _Traits::length(__lhs); - __string_type __str(_Alloc_traits::_S_select_on_copy( - __rhs.get_allocator())); - __str.reserve(__len + __rhs.size()); - __str.append(__lhs, __len); - __str.append(__rhs); - return __str; - } - - template - basic_string<_CharT, _Traits, _Alloc> - operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { - typedef basic_string<_CharT, _Traits, _Alloc> __string_type; - typedef typename __string_type::size_type __size_type; - typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template - rebind<_CharT>::other _Char_alloc_type; - typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; - __string_type __str(_Alloc_traits::_S_select_on_copy( - __rhs.get_allocator())); - const __size_type __len = __rhs.size(); - __str.reserve(__len + 1); - __str.append(__size_type(1), __lhs); - __str.append(__rhs); - return __str; - } - - template - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find(const _CharT* __s, size_type __pos, size_type __n) const - noexcept - { - ; - const size_type __size = this->size(); - - if (__n == 0) - return __pos <= __size ? __pos : npos; - if (__pos >= __size) - return npos; - - const _CharT __elem0 = __s[0]; - const _CharT* const __data = data(); - const _CharT* __first = __data + __pos; - const _CharT* const __last = __data + __size; - size_type __len = __size - __pos; - - while (__len >= __n) - { - - __first = traits_type::find(__first, __len - __n + 1, __elem0); - if (!__first) - return npos; - - - - if (traits_type::compare(__first, __s, __n) == 0) - return __first - __data; - __len = __last - ++__first; - } - return npos; - } - - template - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find(_CharT __c, size_type __pos) const noexcept - { - size_type __ret = npos; - const size_type __size = this->size(); - if (__pos < __size) - { - const _CharT* __data = _M_data(); - const size_type __n = __size - __pos; - const _CharT* __p = traits_type::find(__data + __pos, __n, __c); - if (__p) - __ret = __p - __data; - } - return __ret; - } - - template - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - rfind(const _CharT* __s, size_type __pos, size_type __n) const - noexcept - { - ; - const size_type __size = this->size(); - if (__n <= __size) - { - __pos = std::min(size_type(__size - __n), __pos); - const _CharT* __data = _M_data(); - do - { - if (traits_type::compare(__data + __pos, __s, __n) == 0) - return __pos; - } - while (__pos-- > 0); - } - return npos; - } - - template - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - rfind(_CharT __c, size_type __pos) const noexcept - { - size_type __size = this->size(); - if (__size) - { - if (--__size > __pos) - __size = __pos; - for (++__size; __size-- > 0; ) - if (traits_type::eq(_M_data()[__size], __c)) - return __size; - } - return npos; - } - - template - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find_first_of(const _CharT* __s, size_type __pos, size_type __n) const - noexcept - { - ; - for (; __n && __pos < this->size(); ++__pos) - { - const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); - if (__p) - return __pos; - } - return npos; - } - - template - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find_last_of(const _CharT* __s, size_type __pos, size_type __n) const - noexcept - { - ; - size_type __size = this->size(); - if (__size && __n) - { - if (--__size > __pos) - __size = __pos; - do - { - if (traits_type::find(__s, __n, _M_data()[__size])) - return __size; - } - while (__size-- != 0); - } - return npos; - } - - template - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const - noexcept - { - ; - for (; __pos < this->size(); ++__pos) - if (!traits_type::find(__s, __n, _M_data()[__pos])) - return __pos; - return npos; - } - - template - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find_first_not_of(_CharT __c, size_type __pos) const noexcept - { - for (; __pos < this->size(); ++__pos) - if (!traits_type::eq(_M_data()[__pos], __c)) - return __pos; - return npos; - } - - template - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const - noexcept - { - ; - size_type __size = this->size(); - if (__size) - { - if (--__size > __pos) - __size = __pos; - do - { - if (!traits_type::find(__s, __n, _M_data()[__size])) - return __size; - } - while (__size--); - } - return npos; - } - - template - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find_last_not_of(_CharT __c, size_type __pos) const noexcept - { - size_type __size = this->size(); - if (__size) - { - if (--__size > __pos) - __size = __pos; - do - { - if (!traits_type::eq(_M_data()[__size], __c)) - return __size; - } - while (__size--); - } - return npos; - } - - template - int - basic_string<_CharT, _Traits, _Alloc>:: - compare(size_type __pos, size_type __n, const basic_string& __str) const - { - _M_check(__pos, "basic_string::compare"); - __n = _M_limit(__pos, __n); - const size_type __osize = __str.size(); - const size_type __len = std::min(__n, __osize); - int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); - if (!__r) - __r = _S_compare(__n, __osize); - return __r; - } - - template - int - basic_string<_CharT, _Traits, _Alloc>:: - compare(size_type __pos1, size_type __n1, const basic_string& __str, - size_type __pos2, size_type __n2) const - { - _M_check(__pos1, "basic_string::compare"); - __str._M_check(__pos2, "basic_string::compare"); - __n1 = _M_limit(__pos1, __n1); - __n2 = __str._M_limit(__pos2, __n2); - const size_type __len = std::min(__n1, __n2); - int __r = traits_type::compare(_M_data() + __pos1, - __str.data() + __pos2, __len); - if (!__r) - __r = _S_compare(__n1, __n2); - return __r; - } - - template - int - basic_string<_CharT, _Traits, _Alloc>:: - compare(const _CharT* __s) const noexcept - { - ; - const size_type __size = this->size(); - const size_type __osize = traits_type::length(__s); - const size_type __len = std::min(__size, __osize); - int __r = traits_type::compare(_M_data(), __s, __len); - if (!__r) - __r = _S_compare(__size, __osize); - return __r; - } - - template - int - basic_string <_CharT, _Traits, _Alloc>:: - compare(size_type __pos, size_type __n1, const _CharT* __s) const - { - ; - _M_check(__pos, "basic_string::compare"); - __n1 = _M_limit(__pos, __n1); - const size_type __osize = traits_type::length(__s); - const size_type __len = std::min(__n1, __osize); - int __r = traits_type::compare(_M_data() + __pos, __s, __len); - if (!__r) - __r = _S_compare(__n1, __osize); - return __r; - } - - template - int - basic_string <_CharT, _Traits, _Alloc>:: - compare(size_type __pos, size_type __n1, const _CharT* __s, - size_type __n2) const - { - ; - _M_check(__pos, "basic_string::compare"); - __n1 = _M_limit(__pos, __n1); - const size_type __len = std::min(__n1, __n2); - int __r = traits_type::compare(_M_data() + __pos, __s, __len); - if (!__r) - __r = _S_compare(__n1, __n2); - return __r; - } - - - template - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __in, - basic_string<_CharT, _Traits, _Alloc>& __str) - { - typedef basic_istream<_CharT, _Traits> __istream_type; - typedef basic_string<_CharT, _Traits, _Alloc> __string_type; - typedef typename __istream_type::ios_base __ios_base; - typedef typename __istream_type::int_type __int_type; - typedef typename __string_type::size_type __size_type; - typedef ctype<_CharT> __ctype_type; - typedef typename __ctype_type::ctype_base __ctype_base; - - __size_type __extracted = 0; - typename __ios_base::iostate __err = __ios_base::goodbit; - typename __istream_type::sentry __cerb(__in, false); - if (__cerb) - { - try - { - - __str.erase(); - _CharT __buf[128]; - __size_type __len = 0; - const streamsize __w = __in.width(); - const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) - : __str.max_size(); - const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); - const __int_type __eof = _Traits::eof(); - __int_type __c = __in.rdbuf()->sgetc(); - - while (__extracted < __n - && !_Traits::eq_int_type(__c, __eof) - && !__ct.is(__ctype_base::space, - _Traits::to_char_type(__c))) - { - if (__len == sizeof(__buf) / sizeof(_CharT)) - { - __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); - __len = 0; - } - __buf[__len++] = _Traits::to_char_type(__c); - ++__extracted; - __c = __in.rdbuf()->snextc(); - } - __str.append(__buf, __len); - - if (_Traits::eq_int_type(__c, __eof)) - __err |= __ios_base::eofbit; - __in.width(0); - } - catch(__cxxabiv1::__forced_unwind&) - { - __in._M_setstate(__ios_base::badbit); - throw; - } - catch(...) - { - - - - __in._M_setstate(__ios_base::badbit); - } - } - - if (!__extracted) - __err |= __ios_base::failbit; - if (__err) - __in.setstate(__err); - return __in; - } - - template - basic_istream<_CharT, _Traits>& - getline(basic_istream<_CharT, _Traits>& __in, - basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) - { - typedef basic_istream<_CharT, _Traits> __istream_type; - typedef basic_string<_CharT, _Traits, _Alloc> __string_type; - typedef typename __istream_type::ios_base __ios_base; - typedef typename __istream_type::int_type __int_type; - typedef typename __string_type::size_type __size_type; - - __size_type __extracted = 0; - const __size_type __n = __str.max_size(); - typename __ios_base::iostate __err = __ios_base::goodbit; - typename __istream_type::sentry __cerb(__in, true); - if (__cerb) - { - try - { - __str.erase(); - const __int_type __idelim = _Traits::to_int_type(__delim); - const __int_type __eof = _Traits::eof(); - __int_type __c = __in.rdbuf()->sgetc(); - - while (__extracted < __n - && !_Traits::eq_int_type(__c, __eof) - && !_Traits::eq_int_type(__c, __idelim)) - { - __str += _Traits::to_char_type(__c); - ++__extracted; - __c = __in.rdbuf()->snextc(); - } - - if (_Traits::eq_int_type(__c, __eof)) - __err |= __ios_base::eofbit; - else if (_Traits::eq_int_type(__c, __idelim)) - { - ++__extracted; - __in.rdbuf()->sbumpc(); - } - else - __err |= __ios_base::failbit; - } - catch(__cxxabiv1::__forced_unwind&) - { - __in._M_setstate(__ios_base::badbit); - throw; - } - catch(...) - { - - - - __in._M_setstate(__ios_base::badbit); - } - } - if (!__extracted) - __err |= __ios_base::failbit; - if (__err) - __in.setstate(__err); - return __in; - } -# 1618 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_string.tcc" 3 - extern template class basic_string; - - - - - - - - extern template - basic_istream& - operator>>(basic_istream&, string&); - extern template - basic_ostream& - operator<<(basic_ostream&, const string&); - extern template - basic_istream& - getline(basic_istream&, string&, char); - extern template - basic_istream& - getline(basic_istream&, string&); - - - - extern template class basic_string; - - - - - - extern template - basic_istream& - operator>>(basic_istream&, wstring&); - extern template - basic_ostream& - operator<<(basic_ostream&, const wstring&); - extern template - basic_istream& - getline(basic_istream&, wstring&, wchar_t); - extern template - basic_istream& - getline(basic_istream&, wstring&); - - - - -} -# 57 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/string" 2 3 -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 2 3 - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 62 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - class locale - { - public: - - - typedef int category; - - - class facet; - class id; - class _Impl; - - friend class facet; - friend class _Impl; - - template - friend bool - has_facet(const locale&) throw(); - - template - friend const _Facet& - use_facet(const locale&); - - template - friend struct __use_cache; -# 98 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - static const category none = 0; - static const category ctype = 1L << 0; - static const category numeric = 1L << 1; - static const category collate = 1L << 2; - static const category time = 1L << 3; - static const category monetary = 1L << 4; - static const category messages = 1L << 5; - static const category all = (ctype | numeric | collate | - time | monetary | messages); -# 117 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - locale() throw(); -# 126 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - locale(const locale& __other) throw(); -# 136 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - explicit - locale(const char* __s); -# 151 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - locale(const locale& __base, const char* __s, category __cat); -# 162 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - explicit - locale(const std::string& __s) : locale(__s.c_str()) { } -# 177 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - locale(const locale& __base, const std::string& __s, category __cat) - : locale(__base, __s.c_str(), __cat) { } -# 192 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - locale(const locale& __base, const locale& __add, category __cat); -# 205 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - template - locale(const locale& __other, _Facet* __f); - - - ~locale() throw(); -# 219 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - const locale& - operator=(const locale& __other) throw(); -# 234 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - template - locale - combine(const locale& __other) const; - - - - - - - __attribute ((__abi_tag__ ("cxx11"))) - string - name() const; -# 254 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - bool - operator==(const locale& __other) const throw(); -# 264 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - bool - operator!=(const locale& __other) const throw() - { return !(this->operator==(__other)); } -# 284 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - template - bool - operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, - const basic_string<_Char, _Traits, _Alloc>& __s2) const; -# 300 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - static locale - global(const locale& __loc); - - - - - static const locale& - classic(); - - private: - - _Impl* _M_impl; - - - static _Impl* _S_classic; - - - static _Impl* _S_global; - - - - - - static const char* const* const _S_categories; -# 335 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - enum { _S_categories_size = 6 + 6 }; - - - static __gthread_once_t _S_once; - - - explicit - locale(_Impl*) throw(); - - static void - _S_initialize(); - - static void - _S_initialize_once() throw(); - - static category - _S_normalize_category(category); - - void - _M_coalesce(const locale& __base, const locale& __add, category __cat); - - - static const id* const _S_twinned_facets[]; - - }; -# 373 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - class locale::facet - { - private: - friend class locale; - friend class locale::_Impl; - - mutable _Atomic_word _M_refcount; - - - static __c_locale _S_c_locale; - - - static const char _S_c_name[2]; - - - static __gthread_once_t _S_once; - - - static void - _S_initialize_once(); - - protected: -# 404 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - explicit - facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0) - { } - - - virtual - ~facet(); - - static void - _S_create_c_locale(__c_locale& __cloc, const char* __s, - __c_locale __old = 0); - - static __c_locale - _S_clone_c_locale(__c_locale& __cloc) throw(); - - static void - _S_destroy_c_locale(__c_locale& __cloc); - - static __c_locale - _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s); - - - - static __c_locale - _S_get_c_locale(); - - __attribute__ ((__const__)) static const char* - _S_get_c_name() throw(); -# 440 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - facet(const facet&) = delete; - - facet& - operator=(const facet&) = delete; - - - private: - void - _M_add_reference() const throw() - { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } - - void - _M_remove_reference() const throw() - { - - ; - if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) - { - ; - try - { delete this; } - catch(...) - { } - } - } - - const facet* _M_sso_shim(const id*) const; - const facet* _M_cow_shim(const id*) const; - - protected: - class __shim; - }; -# 485 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - class locale::id - { - private: - friend class locale; - friend class locale::_Impl; - - template - friend const _Facet& - use_facet(const locale&); - - template - friend bool - has_facet(const locale&) throw(); - - - - - mutable size_t _M_index; - - - static _Atomic_word _S_refcount; - - void - operator=(const id&); - - id(const id&); - - public: - - - - id() { } - - size_t - _M_id() const throw(); - }; - - - - class locale::_Impl - { - public: - - friend class locale; - friend class locale::facet; - - template - friend bool - has_facet(const locale&) throw(); - - template - friend const _Facet& - use_facet(const locale&); - - template - friend struct __use_cache; - - private: - - _Atomic_word _M_refcount; - const facet** _M_facets; - size_t _M_facets_size; - const facet** _M_caches; - char** _M_names; - static const locale::id* const _S_id_ctype[]; - static const locale::id* const _S_id_numeric[]; - static const locale::id* const _S_id_collate[]; - static const locale::id* const _S_id_time[]; - static const locale::id* const _S_id_monetary[]; - static const locale::id* const _S_id_messages[]; - static const locale::id* const* const _S_facet_categories[]; - - void - _M_add_reference() throw() - { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } - - void - _M_remove_reference() throw() - { - - ; - if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) - { - ; - try - { delete this; } - catch(...) - { } - } - } - - _Impl(const _Impl&, size_t); - _Impl(const char*, size_t); - _Impl(size_t) throw(); - - ~_Impl() throw(); - - _Impl(const _Impl&); - - void - operator=(const _Impl&); - - bool - _M_check_same_name() - { - bool __ret = true; - if (_M_names[1]) - - for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i) - __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0; - return __ret; - } - - void - _M_replace_categories(const _Impl*, category); - - void - _M_replace_category(const _Impl*, const locale::id* const*); - - void - _M_replace_facet(const _Impl*, const locale::id*); - - void - _M_install_facet(const locale::id*, const facet*); - - template - void - _M_init_facet(_Facet* __facet) - { _M_install_facet(&_Facet::id, __facet); } - - template - void - _M_init_facet_unchecked(_Facet* __facet) - { - __facet->_M_add_reference(); - _M_facets[_Facet::id._M_id()] = __facet; - } - - void - _M_install_cache(const facet*, size_t); - - void _M_init_extra(facet**); - void _M_init_extra(void*, void*, const char*, const char*); - }; -# 643 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - template - class __cxx11:: collate : public locale::facet - { - public: - - - - typedef _CharT char_type; - typedef basic_string<_CharT> string_type; - - - protected: - - - __c_locale _M_c_locale_collate; - - public: - - static locale::id id; -# 670 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - explicit - collate(size_t __refs = 0) - : facet(__refs), _M_c_locale_collate(_S_get_c_locale()) - { } -# 684 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - explicit - collate(__c_locale __cloc, size_t __refs = 0) - : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc)) - { } -# 701 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - int - compare(const _CharT* __lo1, const _CharT* __hi1, - const _CharT* __lo2, const _CharT* __hi2) const - { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } -# 720 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - string_type - transform(const _CharT* __lo, const _CharT* __hi) const - { return this->do_transform(__lo, __hi); } -# 734 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - long - hash(const _CharT* __lo, const _CharT* __hi) const - { return this->do_hash(__lo, __hi); } - - - int - _M_compare(const _CharT*, const _CharT*) const throw(); - - size_t - _M_transform(_CharT*, const _CharT*, size_t) const throw(); - - protected: - - virtual - ~collate() - { _S_destroy_c_locale(_M_c_locale_collate); } -# 763 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - virtual int - do_compare(const _CharT* __lo1, const _CharT* __hi1, - const _CharT* __lo2, const _CharT* __hi2) const; -# 777 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - virtual string_type - do_transform(const _CharT* __lo, const _CharT* __hi) const; -# 790 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 3 - virtual long - do_hash(const _CharT* __lo, const _CharT* __hi) const; - }; - - template - locale::id collate<_CharT>::id; - - - template<> - int - collate::_M_compare(const char*, const char*) const throw(); - - template<> - size_t - collate::_M_transform(char*, const char*, size_t) const throw(); - - - template<> - int - collate::_M_compare(const wchar_t*, const wchar_t*) const throw(); - - template<> - size_t - collate::_M_transform(wchar_t*, const wchar_t*, size_t) const throw(); - - - - template - class __cxx11:: collate_byname : public collate<_CharT> - { - public: - - - typedef _CharT char_type; - typedef basic_string<_CharT> string_type; - - - explicit - collate_byname(const char* __s, size_t __refs = 0) - : collate<_CharT>(__refs) - { - if (__builtin_strcmp(__s, "C") != 0 - && __builtin_strcmp(__s, "POSIX") != 0) - { - this->_S_destroy_c_locale(this->_M_c_locale_collate); - this->_S_create_c_locale(this->_M_c_locale_collate, __s); - } - } - - - explicit - collate_byname(const string& __s, size_t __refs = 0) - : collate_byname(__s.c_str(), __refs) { } - - - protected: - virtual - ~collate_byname() { } - }; - - -} - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.tcc" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.tcc" 3 - -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.tcc" 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - template - locale:: - locale(const locale& __other, _Facet* __f) - { - _M_impl = new _Impl(*__other._M_impl, 1); - - try - { _M_impl->_M_install_facet(&_Facet::id, __f); } - catch(...) - { - _M_impl->_M_remove_reference(); - throw; - } - delete [] _M_impl->_M_names[0]; - _M_impl->_M_names[0] = 0; - } - - template - locale - locale:: - combine(const locale& __other) const - { - _Impl* __tmp = new _Impl(*_M_impl, 1); - try - { - __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); - } - catch(...) - { - __tmp->_M_remove_reference(); - throw; - } - return locale(__tmp); - } - - template - bool - locale:: - operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, - const basic_string<_CharT, _Traits, _Alloc>& __s2) const - { - typedef std::collate<_CharT> __collate_type; - const __collate_type& __collate = use_facet<__collate_type>(*this); - return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), - __s2.data(), __s2.data() + __s2.length()) < 0); - } -# 102 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.tcc" 3 - template - bool - has_facet(const locale& __loc) throw() - { - const size_t __i = _Facet::id._M_id(); - const locale::facet** __facets = __loc._M_impl->_M_facets; - return (__i < __loc._M_impl->_M_facets_size - - && dynamic_cast(__facets[__i])); - - - - } -# 130 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.tcc" 3 - template - const _Facet& - use_facet(const locale& __loc) - { - const size_t __i = _Facet::id._M_id(); - const locale::facet** __facets = __loc._M_impl->_M_facets; - if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i]) - __throw_bad_cast(); - - return dynamic_cast(*__facets[__i]); - - - - } - - - - template - int - collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw () - { return 0; } - - - template - size_t - collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw () - { return 0; } - - template - int - collate<_CharT>:: - do_compare(const _CharT* __lo1, const _CharT* __hi1, - const _CharT* __lo2, const _CharT* __hi2) const - { - - - const string_type __one(__lo1, __hi1); - const string_type __two(__lo2, __hi2); - - const _CharT* __p = __one.c_str(); - const _CharT* __pend = __one.data() + __one.length(); - const _CharT* __q = __two.c_str(); - const _CharT* __qend = __two.data() + __two.length(); - - - - - for (;;) - { - const int __res = _M_compare(__p, __q); - if (__res) - return __res; - - __p += char_traits<_CharT>::length(__p); - __q += char_traits<_CharT>::length(__q); - if (__p == __pend && __q == __qend) - return 0; - else if (__p == __pend) - return -1; - else if (__q == __qend) - return 1; - - __p++; - __q++; - } - } - - template - typename collate<_CharT>::string_type - collate<_CharT>:: - do_transform(const _CharT* __lo, const _CharT* __hi) const - { - string_type __ret; - - - const string_type __str(__lo, __hi); - - const _CharT* __p = __str.c_str(); - const _CharT* __pend = __str.data() + __str.length(); - - size_t __len = (__hi - __lo) * 2; - - _CharT* __c = new _CharT[__len]; - - try - { - - - - for (;;) - { - - size_t __res = _M_transform(__c, __p, __len); - - - if (__res >= __len) - { - __len = __res + 1; - delete [] __c, __c = 0; - __c = new _CharT[__len]; - __res = _M_transform(__c, __p, __len); - } - - __ret.append(__c, __res); - __p += char_traits<_CharT>::length(__p); - if (__p == __pend) - break; - - __p++; - __ret.push_back(_CharT()); - } - } - catch(...) - { - delete [] __c; - throw; - } - - delete [] __c; - - return __ret; - } - - template - long - collate<_CharT>:: - do_hash(const _CharT* __lo, const _CharT* __hi) const - { - unsigned long __val = 0; - for (; __lo < __hi; ++__lo) - __val = - *__lo + ((__val << 7) - | (__val >> (__gnu_cxx::__numeric_traits:: - __digits - 7))); - return static_cast(__val); - } - - - - - extern template class collate; - extern template class collate_byname; - - extern template - const collate& - use_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - - extern template class collate; - extern template class collate_byname; - - extern template - const collate& - use_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - - - -} -# 854 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_classes.h" 2 3 -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 2 3 - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/system_error" 1 3 -# 32 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/system_error" 3 - -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/system_error" 3 - - - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/error_constants.h" 1 3 -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/error_constants.h" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cerrno" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cerrno" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cerrno" 3 - - -# 1 "/usr/include/errno.h" 1 3 4 -# 43 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cerrno" 2 3 -# 35 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/error_constants.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - enum class errc - { - address_family_not_supported = 97, - address_in_use = 98, - address_not_available = 99, - already_connected = 106, - argument_list_too_long = 7, - argument_out_of_domain = 33, - bad_address = 14, - bad_file_descriptor = 9, - - - bad_message = 74, - - - broken_pipe = 32, - connection_aborted = 103, - connection_already_in_progress = 114, - connection_refused = 111, - connection_reset = 104, - cross_device_link = 18, - destination_address_required = 89, - device_or_resource_busy = 16, - directory_not_empty = 39, - executable_format_error = 8, - file_exists = 17, - file_too_large = 27, - filename_too_long = 36, - function_not_supported = 38, - host_unreachable = 113, - - - identifier_removed = 43, - - - illegal_byte_sequence = 84, - inappropriate_io_control_operation = 25, - interrupted = 4, - invalid_argument = 22, - invalid_seek = 29, - io_error = 5, - is_a_directory = 21, - message_size = 90, - network_down = 100, - network_reset = 102, - network_unreachable = 101, - no_buffer_space = 105, - no_child_process = 10, - - - no_link = 67, - - - no_lock_available = 37, - - - no_message_available = 61, - - - no_message = 42, - no_protocol_option = 92, - no_space_on_device = 28, - - - no_stream_resources = 63, - - - no_such_device_or_address = 6, - no_such_device = 19, - no_such_file_or_directory = 2, - no_such_process = 3, - not_a_directory = 20, - not_a_socket = 88, - - - not_a_stream = 60, - - - not_connected = 107, - not_enough_memory = 12, - - - not_supported = 95, - - - - operation_canceled = 125, - - - operation_in_progress = 115, - operation_not_permitted = 1, - operation_not_supported = 95, - operation_would_block = 11, - - - owner_dead = 130, - - - permission_denied = 13, - - - protocol_error = 71, - - - protocol_not_supported = 93, - read_only_file_system = 30, - resource_deadlock_would_occur = 35, - resource_unavailable_try_again = 11, - result_out_of_range = 34, - - - state_not_recoverable = 131, - - - - stream_timeout = 62, - - - - text_file_busy = 26, - - - timed_out = 110, - too_many_files_open_in_system = 23, - too_many_files_open = 24, - too_many_links = 31, - too_many_symbolic_link_levels = 40, - - - value_too_large = 75, - - - wrong_protocol_type = 91 - }; - - -} -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/system_error" 2 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/stdexcept" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/stdexcept" 3 - -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/stdexcept" 3 - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - struct __cow_string - { - union { - const char* _M_p; - char _M_bytes[sizeof(const char*)]; - }; - - __cow_string(); - __cow_string(const std::string&); - __cow_string(const char*, size_t); - __cow_string(const __cow_string&) noexcept; - __cow_string& operator=(const __cow_string&) noexcept; - ~__cow_string(); - - __cow_string(__cow_string&&) noexcept; - __cow_string& operator=(__cow_string&&) noexcept; - - }; - - typedef basic_string __sso_string; -# 113 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/stdexcept" 3 - class logic_error : public exception - { - __cow_string _M_msg; - - public: - - explicit - logic_error(const string& __arg) ; - - - explicit - logic_error(const char*) ; - - logic_error(logic_error&&) noexcept; - logic_error& operator=(logic_error&&) noexcept; - - - - logic_error(const logic_error&) noexcept; - logic_error& operator=(const logic_error&) noexcept; - - - - - - virtual ~logic_error() noexcept; - - - - virtual const char* - what() const noexcept; - - - - - - }; - - - - class domain_error : public logic_error - { - public: - explicit domain_error(const string& __arg) ; - - explicit domain_error(const char*) ; - domain_error(const domain_error&) = default; - domain_error& operator=(const domain_error&) = default; - domain_error(domain_error&&) = default; - domain_error& operator=(domain_error&&) = default; - - virtual ~domain_error() noexcept; - }; - - - class invalid_argument : public logic_error - { - public: - explicit invalid_argument(const string& __arg) ; - - explicit invalid_argument(const char*) ; - invalid_argument(const invalid_argument&) = default; - invalid_argument& operator=(const invalid_argument&) = default; - invalid_argument(invalid_argument&&) = default; - invalid_argument& operator=(invalid_argument&&) = default; - - virtual ~invalid_argument() noexcept; - }; - - - - class length_error : public logic_error - { - public: - explicit length_error(const string& __arg) ; - - explicit length_error(const char*) ; - length_error(const length_error&) = default; - length_error& operator=(const length_error&) = default; - length_error(length_error&&) = default; - length_error& operator=(length_error&&) = default; - - virtual ~length_error() noexcept; - }; - - - - class out_of_range : public logic_error - { - public: - explicit out_of_range(const string& __arg) ; - - explicit out_of_range(const char*) ; - out_of_range(const out_of_range&) = default; - out_of_range& operator=(const out_of_range&) = default; - out_of_range(out_of_range&&) = default; - out_of_range& operator=(out_of_range&&) = default; - - virtual ~out_of_range() noexcept; - }; - - - - - - - class runtime_error : public exception - { - __cow_string _M_msg; - - public: - - explicit - runtime_error(const string& __arg) ; - - - explicit - runtime_error(const char*) ; - - runtime_error(runtime_error&&) noexcept; - runtime_error& operator=(runtime_error&&) noexcept; - - - - runtime_error(const runtime_error&) noexcept; - runtime_error& operator=(const runtime_error&) noexcept; - - - - - - virtual ~runtime_error() noexcept; - - - - virtual const char* - what() const noexcept; - - - - - - }; - - - class range_error : public runtime_error - { - public: - explicit range_error(const string& __arg) ; - - explicit range_error(const char*) ; - range_error(const range_error&) = default; - range_error& operator=(const range_error&) = default; - range_error(range_error&&) = default; - range_error& operator=(range_error&&) = default; - - virtual ~range_error() noexcept; - }; - - - class overflow_error : public runtime_error - { - public: - explicit overflow_error(const string& __arg) ; - - explicit overflow_error(const char*) ; - overflow_error(const overflow_error&) = default; - overflow_error& operator=(const overflow_error&) = default; - overflow_error(overflow_error&&) = default; - overflow_error& operator=(overflow_error&&) = default; - - virtual ~overflow_error() noexcept; - }; - - - class underflow_error : public runtime_error - { - public: - explicit underflow_error(const string& __arg) ; - - explicit underflow_error(const char*) ; - underflow_error(const underflow_error&) = default; - underflow_error& operator=(const underflow_error&) = default; - underflow_error(underflow_error&&) = default; - underflow_error& operator=(underflow_error&&) = default; - - virtual ~underflow_error() noexcept; - }; - - - - -} -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/system_error" 2 3 - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - class error_code; - class error_condition; - class system_error; - - - template - struct is_error_code_enum : public false_type { }; - - - template - struct is_error_condition_enum : public false_type { }; - - template<> - struct is_error_condition_enum - : public true_type { }; -# 78 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/system_error" 3 - inline namespace _V2 { -# 89 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/system_error" 3 - class error_category - { - public: - constexpr error_category() noexcept = default; - - virtual ~error_category(); - - error_category(const error_category&) = delete; - error_category& operator=(const error_category&) = delete; - - virtual const char* - name() const noexcept = 0; - - - - - - - private: - __attribute ((__abi_tag__ ("cxx11"))) - virtual __cow_string - _M_message(int) const; - - public: - __attribute ((__abi_tag__ ("cxx11"))) - virtual string - message(int) const = 0; -# 125 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/system_error" 3 - public: - virtual error_condition - default_error_condition(int __i) const noexcept; - - virtual bool - equivalent(int __i, const error_condition& __cond) const noexcept; - - virtual bool - equivalent(const error_code& __code, int __i) const noexcept; - - bool - operator==(const error_category& __other) const noexcept - { return this == &__other; } - - - - - - - bool - operator!=(const error_category& __other) const noexcept - { return this != &__other; } - - bool - operator<(const error_category& __other) const noexcept - { return less()(this, &__other); } - - }; - - - - - __attribute__ ((__const__)) const error_category& generic_category() noexcept; - - - __attribute__ ((__const__)) const error_category& system_category() noexcept; - - } - - error_code make_error_code(errc) noexcept; -# 180 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/system_error" 3 - struct error_code - { - error_code() noexcept - : _M_value(0), _M_cat(&system_category()) { } - - error_code(int __v, const error_category& __cat) noexcept - : _M_value(__v), _M_cat(&__cat) { } - - template::value>::type> - error_code(_ErrorCodeEnum __e) noexcept - { *this = make_error_code(__e); } - - void - assign(int __v, const error_category& __cat) noexcept - { - _M_value = __v; - _M_cat = &__cat; - } - - void - clear() noexcept - { assign(0, system_category()); } - - - template - typename enable_if::value, - error_code&>::type - operator=(_ErrorCodeEnum __e) noexcept - { return *this = make_error_code(__e); } - - int - value() const noexcept { return _M_value; } - - const error_category& - category() const noexcept { return *_M_cat; } - - error_condition - default_error_condition() const noexcept; - - __attribute ((__abi_tag__ ("cxx11"))) - string - message() const - { return category().message(value()); } - - explicit operator bool() const noexcept - { return _M_value != 0; } - - - private: - int _M_value; - const error_category* _M_cat; - }; - - - - - - inline error_code - make_error_code(errc __e) noexcept - { return error_code(static_cast(__e), generic_category()); } -# 251 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/system_error" 3 - inline bool - operator<(const error_code& __lhs, const error_code& __rhs) noexcept - { - return (__lhs.category() < __rhs.category() - || (__lhs.category() == __rhs.category() - && __lhs.value() < __rhs.value())); - } - - - template - basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e) - { return (__os << __e.category().name() << ':' << __e.value()); } - - - - error_condition make_error_condition(errc) noexcept; -# 278 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/system_error" 3 - struct error_condition - { - error_condition() noexcept - : _M_value(0), _M_cat(&generic_category()) { } - - error_condition(int __v, const error_category& __cat) noexcept - : _M_value(__v), _M_cat(&__cat) { } - - template::value>::type> - error_condition(_ErrorConditionEnum __e) noexcept - { *this = make_error_condition(__e); } - - void - assign(int __v, const error_category& __cat) noexcept - { - _M_value = __v; - _M_cat = &__cat; - } - - - template - typename enable_if::value, error_condition&>::type - operator=(_ErrorConditionEnum __e) noexcept - { return *this = make_error_condition(__e); } - - void - clear() noexcept - { assign(0, generic_category()); } - - - int - value() const noexcept { return _M_value; } - - const error_category& - category() const noexcept { return *_M_cat; } - - __attribute ((__abi_tag__ ("cxx11"))) - string - message() const - { return category().message(value()); } - - explicit operator bool() const noexcept - { return _M_value != 0; } - - - private: - int _M_value; - const error_category* _M_cat; - }; - - - - - - inline error_condition - make_error_condition(errc __e) noexcept - { return error_condition(static_cast(__e), generic_category()); } - - - - - inline bool - operator==(const error_code& __lhs, const error_code& __rhs) noexcept - { return (__lhs.category() == __rhs.category() - && __lhs.value() == __rhs.value()); } - - - - inline bool - operator==(const error_code& __lhs, const error_condition& __rhs) noexcept - { - return (__lhs.category().equivalent(__lhs.value(), __rhs) - || __rhs.category().equivalent(__lhs, __rhs.value())); - } - - - inline bool - operator==(const error_condition& __lhs, - const error_condition& __rhs) noexcept - { - return (__lhs.category() == __rhs.category() - && __lhs.value() == __rhs.value()); - } -# 378 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/system_error" 3 - inline bool - operator<(const error_condition& __lhs, - const error_condition& __rhs) noexcept - { - return (__lhs.category() < __rhs.category() - || (__lhs.category() == __rhs.category() - && __lhs.value() < __rhs.value())); - } - - - - inline bool - operator==(const error_condition& __lhs, const error_code& __rhs) noexcept - { - return (__rhs.category().equivalent(__rhs.value(), __lhs) - || __lhs.category().equivalent(__rhs, __lhs.value())); - } - - - inline bool - operator!=(const error_code& __lhs, const error_code& __rhs) noexcept - { return !(__lhs == __rhs); } - - - - inline bool - operator!=(const error_code& __lhs, const error_condition& __rhs) noexcept - { return !(__lhs == __rhs); } - - - - inline bool - operator!=(const error_condition& __lhs, const error_code& __rhs) noexcept - { return !(__lhs == __rhs); } - - - inline bool - operator!=(const error_condition& __lhs, - const error_condition& __rhs) noexcept - { return !(__lhs == __rhs); } -# 428 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/system_error" 3 - class system_error : public std::runtime_error - { - private: - error_code _M_code; - - public: - system_error(error_code __ec = error_code()) - : runtime_error(__ec.message()), _M_code(__ec) { } - - system_error(error_code __ec, const string& __what) - : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { } - - system_error(error_code __ec, const char* __what) - : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { } - - system_error(int __v, const error_category& __ecat, const char* __what) - : system_error(error_code(__v, __ecat), __what) { } - - system_error(int __v, const error_category& __ecat) - : runtime_error(error_code(__v, __ecat).message()), - _M_code(__v, __ecat) { } - - system_error(int __v, const error_category& __ecat, const string& __what) - : runtime_error(__what + ": " + error_code(__v, __ecat).message()), - _M_code(__v, __ecat) { } - - - system_error (const system_error &) = default; - system_error &operator= (const system_error &) = default; - - - virtual ~system_error() noexcept; - - const error_code& - code() const noexcept { return _M_code; } - }; - - -} - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - template<> - struct hash - : public __hash_base - { - size_t - operator()(const error_code& __e) const noexcept - { - const size_t __tmp = std::_Hash_impl::hash(__e.value()); - return std::_Hash_impl::__hash_combine(&__e.category(), __tmp); - } - }; -# 508 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/system_error" 3 - -} -# 47 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 2 3 - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - enum _Ios_Fmtflags - { - _S_boolalpha = 1L << 0, - _S_dec = 1L << 1, - _S_fixed = 1L << 2, - _S_hex = 1L << 3, - _S_internal = 1L << 4, - _S_left = 1L << 5, - _S_oct = 1L << 6, - _S_right = 1L << 7, - _S_scientific = 1L << 8, - _S_showbase = 1L << 9, - _S_showpoint = 1L << 10, - _S_showpos = 1L << 11, - _S_skipws = 1L << 12, - _S_unitbuf = 1L << 13, - _S_uppercase = 1L << 14, - _S_adjustfield = _S_left | _S_right | _S_internal, - _S_basefield = _S_dec | _S_oct | _S_hex, - _S_floatfield = _S_scientific | _S_fixed, - _S_ios_fmtflags_end = 1L << 16, - _S_ios_fmtflags_max = 0x7fffffff, - _S_ios_fmtflags_min = ~0x7fffffff - }; - - inline constexpr _Ios_Fmtflags - operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) - { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); } - - inline constexpr _Ios_Fmtflags - operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) - { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); } - - inline constexpr _Ios_Fmtflags - operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) - { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } - - inline constexpr _Ios_Fmtflags - operator~(_Ios_Fmtflags __a) - { return _Ios_Fmtflags(~static_cast(__a)); } - - inline const _Ios_Fmtflags& - operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) - { return __a = __a | __b; } - - inline const _Ios_Fmtflags& - operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) - { return __a = __a & __b; } - - inline const _Ios_Fmtflags& - operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) - { return __a = __a ^ __b; } - - - enum _Ios_Openmode - { - _S_app = 1L << 0, - _S_ate = 1L << 1, - _S_bin = 1L << 2, - _S_in = 1L << 3, - _S_out = 1L << 4, - _S_trunc = 1L << 5, - _S_ios_openmode_end = 1L << 16, - _S_ios_openmode_max = 0x7fffffff, - _S_ios_openmode_min = ~0x7fffffff - }; - - inline constexpr _Ios_Openmode - operator&(_Ios_Openmode __a, _Ios_Openmode __b) - { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); } - - inline constexpr _Ios_Openmode - operator|(_Ios_Openmode __a, _Ios_Openmode __b) - { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); } - - inline constexpr _Ios_Openmode - operator^(_Ios_Openmode __a, _Ios_Openmode __b) - { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } - - inline constexpr _Ios_Openmode - operator~(_Ios_Openmode __a) - { return _Ios_Openmode(~static_cast(__a)); } - - inline const _Ios_Openmode& - operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) - { return __a = __a | __b; } - - inline const _Ios_Openmode& - operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) - { return __a = __a & __b; } - - inline const _Ios_Openmode& - operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) - { return __a = __a ^ __b; } - - - enum _Ios_Iostate - { - _S_goodbit = 0, - _S_badbit = 1L << 0, - _S_eofbit = 1L << 1, - _S_failbit = 1L << 2, - _S_ios_iostate_end = 1L << 16, - _S_ios_iostate_max = 0x7fffffff, - _S_ios_iostate_min = ~0x7fffffff - }; - - inline constexpr _Ios_Iostate - operator&(_Ios_Iostate __a, _Ios_Iostate __b) - { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); } - - inline constexpr _Ios_Iostate - operator|(_Ios_Iostate __a, _Ios_Iostate __b) - { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); } - - inline constexpr _Ios_Iostate - operator^(_Ios_Iostate __a, _Ios_Iostate __b) - { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } - - inline constexpr _Ios_Iostate - operator~(_Ios_Iostate __a) - { return _Ios_Iostate(~static_cast(__a)); } - - inline const _Ios_Iostate& - operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) - { return __a = __a | __b; } - - inline const _Ios_Iostate& - operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) - { return __a = __a & __b; } - - inline const _Ios_Iostate& - operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) - { return __a = __a ^ __b; } - - - enum _Ios_Seekdir - { - _S_beg = 0, - _S_cur = 1, - _S_end = 2, - _S_ios_seekdir_end = 1L << 16 - }; - - - - enum class io_errc { stream = 1 }; - - template <> struct is_error_code_enum : public true_type { }; - - const error_category& iostream_category() noexcept; - - inline error_code - make_error_code(io_errc __e) noexcept - { return error_code(static_cast(__e), iostream_category()); } - - inline error_condition - make_error_condition(io_errc __e) noexcept - { return error_condition(static_cast(__e), iostream_category()); } -# 228 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - class ios_base - { -# 246 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - public: -# 255 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - class __attribute ((__abi_tag__ ("cxx11"))) failure : public system_error - { - public: - explicit - failure(const string& __str); - - - explicit - failure(const string&, const error_code&); - - explicit - failure(const char*, const error_code& = io_errc::stream); - - - virtual - ~failure() throw(); - - virtual const char* - what() const throw(); - }; -# 323 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - typedef _Ios_Fmtflags fmtflags; - - - static const fmtflags boolalpha = _S_boolalpha; - - - static const fmtflags dec = _S_dec; - - - static const fmtflags fixed = _S_fixed; - - - static const fmtflags hex = _S_hex; - - - - - static const fmtflags internal = _S_internal; - - - - static const fmtflags left = _S_left; - - - static const fmtflags oct = _S_oct; - - - - static const fmtflags right = _S_right; - - - static const fmtflags scientific = _S_scientific; - - - - static const fmtflags showbase = _S_showbase; - - - - static const fmtflags showpoint = _S_showpoint; - - - static const fmtflags showpos = _S_showpos; - - - static const fmtflags skipws = _S_skipws; - - - static const fmtflags unitbuf = _S_unitbuf; - - - - static const fmtflags uppercase = _S_uppercase; - - - static const fmtflags adjustfield = _S_adjustfield; - - - static const fmtflags basefield = _S_basefield; - - - static const fmtflags floatfield = _S_floatfield; -# 398 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - typedef _Ios_Iostate iostate; - - - - static const iostate badbit = _S_badbit; - - - static const iostate eofbit = _S_eofbit; - - - - - static const iostate failbit = _S_failbit; - - - static const iostate goodbit = _S_goodbit; -# 429 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - typedef _Ios_Openmode openmode; - - - static const openmode app = _S_app; - - - static const openmode ate = _S_ate; - - - - - static const openmode binary = _S_bin; - - - static const openmode in = _S_in; - - - static const openmode out = _S_out; - - - static const openmode trunc = _S_trunc; -# 461 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - typedef _Ios_Seekdir seekdir; - - - static const seekdir beg = _S_beg; - - - static const seekdir cur = _S_cur; - - - static const seekdir end = _S_end; - - - - typedef int io_state; - typedef int open_mode; - typedef int seek_dir; - - typedef std::streampos streampos; - typedef std::streamoff streamoff; -# 489 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - enum event - { - erase_event, - imbue_event, - copyfmt_event - }; -# 506 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - typedef void (*event_callback) (event __e, ios_base& __b, int __i); -# 518 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - void - register_callback(event_callback __fn, int __index); - - protected: - streamsize _M_precision; - streamsize _M_width; - fmtflags _M_flags; - iostate _M_exception; - iostate _M_streambuf_state; - - - - struct _Callback_list - { - - _Callback_list* _M_next; - ios_base::event_callback _M_fn; - int _M_index; - _Atomic_word _M_refcount; - - _Callback_list(ios_base::event_callback __fn, int __index, - _Callback_list* __cb) - : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } - - void - _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } - - - int - _M_remove_reference() - { - - ; - int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); - if (__res == 0) - { - ; - } - return __res; - } - }; - - _Callback_list* _M_callbacks; - - void - _M_call_callbacks(event __ev) throw(); - - void - _M_dispose_callbacks(void) throw(); - - - struct _Words - { - void* _M_pword; - long _M_iword; - _Words() : _M_pword(0), _M_iword(0) { } - }; - - - _Words _M_word_zero; - - - - enum { _S_local_word_size = 8 }; - _Words _M_local_word[_S_local_word_size]; - - - int _M_word_size; - _Words* _M_word; - - _Words& - _M_grow_words(int __index, bool __iword); - - - locale _M_ios_locale; - - void - _M_init() throw(); - - public: - - - - - - class Init - { - friend class ios_base; - public: - Init(); - ~Init(); - - - Init(const Init&) = default; - Init& operator=(const Init&) = default; - - - private: - static _Atomic_word _S_refcount; - static bool _S_synced_with_stdio; - }; - - - - - - - fmtflags - flags() const - { return _M_flags; } -# 636 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - fmtflags - flags(fmtflags __fmtfl) - { - fmtflags __old = _M_flags; - _M_flags = __fmtfl; - return __old; - } -# 652 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - fmtflags - setf(fmtflags __fmtfl) - { - fmtflags __old = _M_flags; - _M_flags |= __fmtfl; - return __old; - } -# 669 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - fmtflags - setf(fmtflags __fmtfl, fmtflags __mask) - { - fmtflags __old = _M_flags; - _M_flags &= ~__mask; - _M_flags |= (__fmtfl & __mask); - return __old; - } - - - - - - - - void - unsetf(fmtflags __mask) - { _M_flags &= ~__mask; } -# 695 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - streamsize - precision() const - { return _M_precision; } - - - - - - - streamsize - precision(streamsize __prec) - { - streamsize __old = _M_precision; - _M_precision = __prec; - return __old; - } - - - - - - - - streamsize - width() const - { return _M_width; } - - - - - - - streamsize - width(streamsize __wide) - { - streamsize __old = _M_width; - _M_width = __wide; - return __old; - } -# 746 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - static bool - sync_with_stdio(bool __sync = true); -# 758 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - locale - imbue(const locale& __loc) throw(); -# 769 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - locale - getloc() const - { return _M_ios_locale; } -# 780 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - const locale& - _M_getloc() const - { return _M_ios_locale; } -# 799 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - static int - xalloc() throw(); -# 815 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - long& - iword(int __ix) - { - _Words& __word = ((unsigned)__ix < (unsigned)_M_word_size) - ? _M_word[__ix] : _M_grow_words(__ix, true); - return __word._M_iword; - } -# 836 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - void*& - pword(int __ix) - { - _Words& __word = ((unsigned)__ix < (unsigned)_M_word_size) - ? _M_word[__ix] : _M_grow_words(__ix, false); - return __word._M_pword; - } -# 853 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - virtual ~ios_base(); - - protected: - ios_base() throw (); -# 867 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ios_base.h" 3 - public: - ios_base(const ios_base&) = delete; - - ios_base& - operator=(const ios_base&) = delete; - - protected: - void - _M_move(ios_base&) noexcept; - - void - _M_swap(ios_base& __rhs) noexcept; - - }; - - - - inline ios_base& - boolalpha(ios_base& __base) - { - __base.setf(ios_base::boolalpha); - return __base; - } - - - inline ios_base& - noboolalpha(ios_base& __base) - { - __base.unsetf(ios_base::boolalpha); - return __base; - } - - - inline ios_base& - showbase(ios_base& __base) - { - __base.setf(ios_base::showbase); - return __base; - } - - - inline ios_base& - noshowbase(ios_base& __base) - { - __base.unsetf(ios_base::showbase); - return __base; - } - - - inline ios_base& - showpoint(ios_base& __base) - { - __base.setf(ios_base::showpoint); - return __base; - } - - - inline ios_base& - noshowpoint(ios_base& __base) - { - __base.unsetf(ios_base::showpoint); - return __base; - } - - - inline ios_base& - showpos(ios_base& __base) - { - __base.setf(ios_base::showpos); - return __base; - } - - - inline ios_base& - noshowpos(ios_base& __base) - { - __base.unsetf(ios_base::showpos); - return __base; - } - - - inline ios_base& - skipws(ios_base& __base) - { - __base.setf(ios_base::skipws); - return __base; - } - - - inline ios_base& - noskipws(ios_base& __base) - { - __base.unsetf(ios_base::skipws); - return __base; - } - - - inline ios_base& - uppercase(ios_base& __base) - { - __base.setf(ios_base::uppercase); - return __base; - } - - - inline ios_base& - nouppercase(ios_base& __base) - { - __base.unsetf(ios_base::uppercase); - return __base; - } - - - inline ios_base& - unitbuf(ios_base& __base) - { - __base.setf(ios_base::unitbuf); - return __base; - } - - - inline ios_base& - nounitbuf(ios_base& __base) - { - __base.unsetf(ios_base::unitbuf); - return __base; - } - - - - inline ios_base& - internal(ios_base& __base) - { - __base.setf(ios_base::internal, ios_base::adjustfield); - return __base; - } - - - inline ios_base& - left(ios_base& __base) - { - __base.setf(ios_base::left, ios_base::adjustfield); - return __base; - } - - - inline ios_base& - right(ios_base& __base) - { - __base.setf(ios_base::right, ios_base::adjustfield); - return __base; - } - - - - inline ios_base& - dec(ios_base& __base) - { - __base.setf(ios_base::dec, ios_base::basefield); - return __base; - } - - - inline ios_base& - hex(ios_base& __base) - { - __base.setf(ios_base::hex, ios_base::basefield); - return __base; - } - - - inline ios_base& - oct(ios_base& __base) - { - __base.setf(ios_base::oct, ios_base::basefield); - return __base; - } - - - - inline ios_base& - fixed(ios_base& __base) - { - __base.setf(ios_base::fixed, ios_base::floatfield); - return __base; - } - - - inline ios_base& - scientific(ios_base& __base) - { - __base.setf(ios_base::scientific, ios_base::floatfield); - return __base; - } - - - - - - - inline ios_base& - hexfloat(ios_base& __base) - { - __base.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield); - return __base; - } - - - inline ios_base& - defaultfloat(ios_base& __base) - { - __base.unsetf(ios_base::floatfield); - return __base; - } - - - -} -# 43 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ios" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 -# 45 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - template - streamsize - __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*, - basic_streambuf<_CharT, _Traits>*, bool&); -# 121 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - template - class basic_streambuf - { - public: - - - - - - - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - - - - typedef basic_streambuf __streambuf_type; - - - friend class basic_ios; - friend class basic_istream; - friend class basic_ostream; - friend class istreambuf_iterator; - friend class ostreambuf_iterator; - - friend streamsize - __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*, bool&); - - template - friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, - _CharT2*>::__type - __copy_move_a2(istreambuf_iterator<_CharT2>, - istreambuf_iterator<_CharT2>, _CharT2*); - - template - friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, - istreambuf_iterator<_CharT2> >::__type - find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, - const _CharT2&); - - template - friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, - void>::__type - advance(istreambuf_iterator<_CharT2>&, _Distance); - - template - friend basic_istream<_CharT2, _Traits2>& - operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*); - - template - friend basic_istream<_CharT2, _Traits2>& - operator>>(basic_istream<_CharT2, _Traits2>&, - basic_string<_CharT2, _Traits2, _Alloc>&); - - template - friend basic_istream<_CharT2, _Traits2>& - getline(basic_istream<_CharT2, _Traits2>&, - basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2); - - protected: - - - - - - - - char_type* _M_in_beg; - char_type* _M_in_cur; - char_type* _M_in_end; - char_type* _M_out_beg; - char_type* _M_out_cur; - char_type* _M_out_end; - - - locale _M_buf_locale; - - public: - - virtual - ~basic_streambuf() - { } -# 215 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - locale - pubimbue(const locale& __loc) - { - locale __tmp(this->getloc()); - this->imbue(__loc); - _M_buf_locale = __loc; - return __tmp; - } -# 232 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - locale - getloc() const - { return _M_buf_locale; } -# 245 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - basic_streambuf* - pubsetbuf(char_type* __s, streamsize __n) - { return this->setbuf(__s, __n); } -# 257 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - pos_type - pubseekoff(off_type __off, ios_base::seekdir __way, - ios_base::openmode __mode = ios_base::in | ios_base::out) - { return this->seekoff(__off, __way, __mode); } -# 269 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - pos_type - pubseekpos(pos_type __sp, - ios_base::openmode __mode = ios_base::in | ios_base::out) - { return this->seekpos(__sp, __mode); } - - - - - int - pubsync() { return this->sync(); } -# 290 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - streamsize - in_avail() - { - const streamsize __ret = this->egptr() - this->gptr(); - return __ret ? __ret : this->showmanyc(); - } -# 304 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - int_type - snextc() - { - int_type __ret = traits_type::eof(); - if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(), - __ret), true)) - __ret = this->sgetc(); - return __ret; - } -# 322 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - int_type - sbumpc() - { - int_type __ret; - if (__builtin_expect(this->gptr() < this->egptr(), true)) - { - __ret = traits_type::to_int_type(*this->gptr()); - this->gbump(1); - } - else - __ret = this->uflow(); - return __ret; - } -# 344 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - int_type - sgetc() - { - int_type __ret; - if (__builtin_expect(this->gptr() < this->egptr(), true)) - __ret = traits_type::to_int_type(*this->gptr()); - else - __ret = this->underflow(); - return __ret; - } -# 363 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - streamsize - sgetn(char_type* __s, streamsize __n) - { return this->xsgetn(__s, __n); } -# 378 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - int_type - sputbackc(char_type __c) - { - int_type __ret; - const bool __testpos = this->eback() < this->gptr(); - if (__builtin_expect(!__testpos || - !traits_type::eq(__c, this->gptr()[-1]), false)) - __ret = this->pbackfail(traits_type::to_int_type(__c)); - else - { - this->gbump(-1); - __ret = traits_type::to_int_type(*this->gptr()); - } - return __ret; - } -# 403 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - int_type - sungetc() - { - int_type __ret; - if (__builtin_expect(this->eback() < this->gptr(), true)) - { - this->gbump(-1); - __ret = traits_type::to_int_type(*this->gptr()); - } - else - __ret = this->pbackfail(); - return __ret; - } -# 430 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - int_type - sputc(char_type __c) - { - int_type __ret; - if (__builtin_expect(this->pptr() < this->epptr(), true)) - { - *this->pptr() = __c; - this->pbump(1); - __ret = traits_type::to_int_type(__c); - } - else - __ret = this->overflow(traits_type::to_int_type(__c)); - return __ret; - } -# 456 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - streamsize - sputn(const char_type* __s, streamsize __n) - { return this->xsputn(__s, __n); } - - protected: -# 470 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - basic_streambuf() - : _M_in_beg(0), _M_in_cur(0), _M_in_end(0), - _M_out_beg(0), _M_out_cur(0), _M_out_end(0), - _M_buf_locale(locale()) - { } -# 488 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - char_type* - eback() const { return _M_in_beg; } - - char_type* - gptr() const { return _M_in_cur; } - - char_type* - egptr() const { return _M_in_end; } -# 504 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - void - gbump(int __n) { _M_in_cur += __n; } -# 515 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - void - setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) - { - _M_in_beg = __gbeg; - _M_in_cur = __gnext; - _M_in_end = __gend; - } -# 535 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - char_type* - pbase() const { return _M_out_beg; } - - char_type* - pptr() const { return _M_out_cur; } - - char_type* - epptr() const { return _M_out_end; } -# 551 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - void - pbump(int __n) { _M_out_cur += __n; } -# 561 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - void - setp(char_type* __pbeg, char_type* __pend) - { - _M_out_beg = _M_out_cur = __pbeg; - _M_out_end = __pend; - } -# 582 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - virtual void - imbue(const locale& __loc __attribute__ ((__unused__))) - { } -# 597 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - virtual basic_streambuf* - setbuf(char_type*, streamsize) - { return this; } -# 608 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - virtual pos_type - seekoff(off_type, ios_base::seekdir, - ios_base::openmode = ios_base::in | ios_base::out) - { return pos_type(off_type(-1)); } -# 620 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - virtual pos_type - seekpos(pos_type, - ios_base::openmode = ios_base::in | ios_base::out) - { return pos_type(off_type(-1)); } -# 633 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - virtual int - sync() { return 0; } -# 655 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - virtual streamsize - showmanyc() { return 0; } -# 671 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - virtual streamsize - xsgetn(char_type* __s, streamsize __n); -# 693 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - virtual int_type - underflow() - { return traits_type::eof(); } -# 706 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - virtual int_type - uflow() - { - int_type __ret = traits_type::eof(); - const bool __testeof = traits_type::eq_int_type(this->underflow(), - __ret); - if (!__testeof) - { - __ret = traits_type::to_int_type(*this->gptr()); - this->gbump(1); - } - return __ret; - } -# 730 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - virtual int_type - pbackfail(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) - { return traits_type::eof(); } -# 748 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - virtual streamsize - xsputn(const char_type* __s, streamsize __n); -# 774 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - virtual int_type - overflow(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) - { return traits_type::eof(); } - - - - public: -# 790 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 3 - [[__deprecated__("stossc is deprecated, use sbumpc instead")]] - - void - stossc() - { - if (this->gptr() < this->egptr()) - this->gbump(1); - else - this->uflow(); - } - - - - void - __safe_gbump(streamsize __n) { _M_in_cur += __n; } - - void - __safe_pbump(streamsize __n) { _M_out_cur += __n; } - - - - - protected: - - basic_streambuf(const basic_streambuf&); - - basic_streambuf& - operator=(const basic_streambuf&); - - - void - swap(basic_streambuf& __sb) - { - std::swap(_M_in_beg, __sb._M_in_beg); - std::swap(_M_in_cur, __sb._M_in_cur); - std::swap(_M_in_end, __sb._M_in_end); - std::swap(_M_out_beg, __sb._M_out_beg); - std::swap(_M_out_cur, __sb._M_out_cur); - std::swap(_M_out_end, __sb._M_out_end); - std::swap(_M_buf_locale, __sb._M_buf_locale); - } - - }; - - - template - std::basic_streambuf<_CharT, _Traits>:: - basic_streambuf(const basic_streambuf&) = default; - - template - std::basic_streambuf<_CharT, _Traits>& - std::basic_streambuf<_CharT, _Traits>:: - operator=(const basic_streambuf&) = default; - - - - template<> - streamsize - __copy_streambufs_eof(basic_streambuf* __sbin, - basic_streambuf* __sbout, bool& __ineof); - - template<> - streamsize - __copy_streambufs_eof(basic_streambuf* __sbin, - basic_streambuf* __sbout, bool& __ineof); - - - - - -} - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/streambuf.tcc" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/streambuf.tcc" 3 - -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/streambuf.tcc" 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - template - streamsize - basic_streambuf<_CharT, _Traits>:: - xsgetn(char_type* __s, streamsize __n) - { - streamsize __ret = 0; - while (__ret < __n) - { - const streamsize __buf_len = this->egptr() - this->gptr(); - if (__buf_len) - { - const streamsize __remaining = __n - __ret; - const streamsize __len = std::min(__buf_len, __remaining); - traits_type::copy(__s, this->gptr(), __len); - __ret += __len; - __s += __len; - this->__safe_gbump(__len); - } - - if (__ret < __n) - { - const int_type __c = this->uflow(); - if (!traits_type::eq_int_type(__c, traits_type::eof())) - { - traits_type::assign(*__s++, traits_type::to_char_type(__c)); - ++__ret; - } - else - break; - } - } - return __ret; - } - - template - streamsize - basic_streambuf<_CharT, _Traits>:: - xsputn(const char_type* __s, streamsize __n) - { - streamsize __ret = 0; - while (__ret < __n) - { - const streamsize __buf_len = this->epptr() - this->pptr(); - if (__buf_len) - { - const streamsize __remaining = __n - __ret; - const streamsize __len = std::min(__buf_len, __remaining); - traits_type::copy(this->pptr(), __s, __len); - __ret += __len; - __s += __len; - this->__safe_pbump(__len); - } - - if (__ret < __n) - { - int_type __c = this->overflow(traits_type::to_int_type(*__s)); - if (!traits_type::eq_int_type(__c, traits_type::eof())) - { - ++__ret; - ++__s; - } - else - break; - } - } - return __ret; - } - - - - - template - streamsize - __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin, - basic_streambuf<_CharT, _Traits>* __sbout, - bool& __ineof) - { - streamsize __ret = 0; - __ineof = true; - typename _Traits::int_type __c = __sbin->sgetc(); - while (!_Traits::eq_int_type(__c, _Traits::eof())) - { - __c = __sbout->sputc(_Traits::to_char_type(__c)); - if (_Traits::eq_int_type(__c, _Traits::eof())) - { - __ineof = false; - break; - } - ++__ret; - __c = __sbin->snextc(); - } - return __ret; - } - - template - inline streamsize - __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin, - basic_streambuf<_CharT, _Traits>* __sbout) - { - bool __ineof; - return __copy_streambufs_eof(__sbin, __sbout, __ineof); - } - - - - - extern template class basic_streambuf; - extern template - streamsize - __copy_streambufs(basic_streambuf*, - basic_streambuf*); - extern template - streamsize - __copy_streambufs_eof(basic_streambuf*, - basic_streambuf*, bool&); - - - extern template class basic_streambuf; - extern template - streamsize - __copy_streambufs(basic_streambuf*, - basic_streambuf*); - extern template - streamsize - __copy_streambufs_eof(basic_streambuf*, - basic_streambuf*, bool&); - - - - -} -# 863 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/streambuf" 2 3 -# 44 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ios" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwctype" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwctype" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwctype" 3 -# 50 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwctype" 3 -# 1 "/usr/include/wctype.h" 1 3 4 -# 33 "/usr/include/wctype.h" 3 4 -# 1 "/usr/include/wchar.h" 1 3 4 -# 34 "/usr/include/wctype.h" 2 3 4 -# 49 "/usr/include/wctype.h" 3 4 - - - -typedef unsigned long int wctype_t; - -# 71 "/usr/include/wctype.h" 3 4 -enum -{ - __ISwupper = 0, - __ISwlower = 1, - __ISwalpha = 2, - __ISwdigit = 3, - __ISwxdigit = 4, - __ISwspace = 5, - __ISwprint = 6, - __ISwgraph = 7, - __ISwblank = 8, - __ISwcntrl = 9, - __ISwpunct = 10, - __ISwalnum = 11, - - _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), - _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), - _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), - _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), - _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), - _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), - _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), - _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), - _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), - _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), - _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), - _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) -}; - - - -extern "C" { - - - - - - - - -extern int iswalnum (wint_t __wc) throw (); - - - - - -extern int iswalpha (wint_t __wc) throw (); - - -extern int iswcntrl (wint_t __wc) throw (); - - - -extern int iswdigit (wint_t __wc) throw (); - - - -extern int iswgraph (wint_t __wc) throw (); - - - - -extern int iswlower (wint_t __wc) throw (); - - -extern int iswprint (wint_t __wc) throw (); - - - - -extern int iswpunct (wint_t __wc) throw (); - - - - -extern int iswspace (wint_t __wc) throw (); - - - - -extern int iswupper (wint_t __wc) throw (); - - - - -extern int iswxdigit (wint_t __wc) throw (); - - - - - -extern int iswblank (wint_t __wc) throw (); -# 171 "/usr/include/wctype.h" 3 4 -extern wctype_t wctype (const char *__property) throw (); - - - -extern int iswctype (wint_t __wc, wctype_t __desc) throw (); - - - - - - - - - - -typedef const __int32_t *wctrans_t; - - - - - - - -extern wint_t towlower (wint_t __wc) throw (); - - -extern wint_t towupper (wint_t __wc) throw (); - - -} -# 213 "/usr/include/wctype.h" 3 4 -extern "C" { - - - - -extern wctrans_t wctrans (const char *__property) throw (); - - -extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw (); - - - - - - - - -extern int iswalnum_l (wint_t __wc, __locale_t __locale) throw (); - - - - - -extern int iswalpha_l (wint_t __wc, __locale_t __locale) throw (); - - -extern int iswcntrl_l (wint_t __wc, __locale_t __locale) throw (); - - - -extern int iswdigit_l (wint_t __wc, __locale_t __locale) throw (); - - - -extern int iswgraph_l (wint_t __wc, __locale_t __locale) throw (); - - - - -extern int iswlower_l (wint_t __wc, __locale_t __locale) throw (); - - -extern int iswprint_l (wint_t __wc, __locale_t __locale) throw (); - - - - -extern int iswpunct_l (wint_t __wc, __locale_t __locale) throw (); - - - - -extern int iswspace_l (wint_t __wc, __locale_t __locale) throw (); - - - - -extern int iswupper_l (wint_t __wc, __locale_t __locale) throw (); - - - - -extern int iswxdigit_l (wint_t __wc, __locale_t __locale) throw (); - - - - -extern int iswblank_l (wint_t __wc, __locale_t __locale) throw (); - - - -extern wctype_t wctype_l (const char *__property, __locale_t __locale) - throw (); - - - -extern int iswctype_l (wint_t __wc, wctype_t __desc, __locale_t __locale) - throw (); - - - - - - - -extern wint_t towlower_l (wint_t __wc, __locale_t __locale) throw (); - - -extern wint_t towupper_l (wint_t __wc, __locale_t __locale) throw (); - - - -extern wctrans_t wctrans_l (const char *__property, __locale_t __locale) - throw (); - - -extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, - __locale_t __locale) throw (); - - - -} -# 51 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwctype" 2 3 -# 80 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cwctype" 3 -namespace std -{ - using ::wctrans_t; - using ::wctype_t; - using ::wint_t; - - using ::iswalnum; - using ::iswalpha; - - using ::iswblank; - - using ::iswcntrl; - using ::iswctype; - using ::iswdigit; - using ::iswgraph; - using ::iswlower; - using ::iswprint; - using ::iswpunct; - using ::iswspace; - using ::iswupper; - using ::iswxdigit; - using ::towctrans; - using ::towlower; - using ::towupper; - using ::wctrans; - using ::wctype; -} -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cctype" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cctype" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cctype" 3 -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/ctype_base.h" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/ctype_base.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - struct ctype_base - { - - typedef const int* __to_type; - - - - typedef unsigned short mask; - static const mask upper = _ISupper; - static const mask lower = _ISlower; - static const mask alpha = _ISalpha; - static const mask digit = _ISdigit; - static const mask xdigit = _ISxdigit; - static const mask space = _ISspace; - static const mask print = _ISprint; - static const mask graph = _ISalpha | _ISdigit | _ISpunct; - static const mask cntrl = _IScntrl; - static const mask punct = _ISpunct; - static const mask alnum = _ISalpha | _ISdigit; - - static const mask blank = _ISblank; - - }; - - -} -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 2 3 - - - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/streambuf_iterator.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/streambuf_iterator.h" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/streambuf_iterator.h" 3 - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 49 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/streambuf_iterator.h" 3 - template - class istreambuf_iterator - : public iterator - { - public: -# 66 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/streambuf_iterator.h" 3 - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename _Traits::int_type int_type; - typedef basic_streambuf<_CharT, _Traits> streambuf_type; - typedef basic_istream<_CharT, _Traits> istream_type; - - - template - friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, - ostreambuf_iterator<_CharT2> >::__type - copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, - ostreambuf_iterator<_CharT2>); - - template - friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, - _CharT2*>::__type - __copy_move_a2(istreambuf_iterator<_CharT2>, - istreambuf_iterator<_CharT2>, _CharT2*); - - - template - friend __enable_if_t<__is_char<_CharT2>::__value, _CharT2*> - __copy_n_a(istreambuf_iterator<_CharT2>, _Size, _CharT2*); - - - template - friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, - istreambuf_iterator<_CharT2> >::__type - find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, - const _CharT2&); - - template - friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, - void>::__type - advance(istreambuf_iterator<_CharT2>&, _Distance); - - private: - - - - - - - - mutable streambuf_type* _M_sbuf; - int_type _M_c; - - public: - - constexpr istreambuf_iterator() noexcept - : _M_sbuf(0), _M_c(traits_type::eof()) { } - - - - - - - - istreambuf_iterator(const istreambuf_iterator&) noexcept = default; - - ~istreambuf_iterator() = default; - - - - istreambuf_iterator(istream_type& __s) noexcept - : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } - - - istreambuf_iterator(streambuf_type* __s) noexcept - : _M_sbuf(__s), _M_c(traits_type::eof()) { } - - - istreambuf_iterator& - operator=(const istreambuf_iterator&) noexcept = default; - - - - - - char_type - operator*() const - { - int_type __c = _M_get(); -# 157 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/streambuf_iterator.h" 3 - return traits_type::to_char_type(__c); - } - - - istreambuf_iterator& - operator++() - { - - - - ; - - _M_sbuf->sbumpc(); - _M_c = traits_type::eof(); - return *this; - } - - - istreambuf_iterator - operator++(int) - { - - - - ; - - istreambuf_iterator __old = *this; - __old._M_c = _M_sbuf->sbumpc(); - _M_c = traits_type::eof(); - return __old; - } - - - - - - bool - equal(const istreambuf_iterator& __b) const - { return _M_at_eof() == __b._M_at_eof(); } - - private: - int_type - _M_get() const - { - int_type __ret = _M_c; - if (_M_sbuf && _S_is_eof(__ret) && _S_is_eof(__ret = _M_sbuf->sgetc())) - _M_sbuf = 0; - return __ret; - } - - bool - _M_at_eof() const - { return _S_is_eof(_M_get()); } - - static bool - _S_is_eof(int_type __c) - { - const int_type __eof = traits_type::eof(); - return traits_type::eq_int_type(__c, __eof); - } - - - - - - - }; - - template - inline bool - operator==(const istreambuf_iterator<_CharT, _Traits>& __a, - const istreambuf_iterator<_CharT, _Traits>& __b) - { return __a.equal(__b); } - - template - inline bool - operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, - const istreambuf_iterator<_CharT, _Traits>& __b) - { return !__a.equal(__b); } - - - template - class 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; - - - template - friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, - ostreambuf_iterator<_CharT2> >::__type - copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, - ostreambuf_iterator<_CharT2>); - - private: - streambuf_type* _M_sbuf; - bool _M_failed; - - public: -# 274 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/streambuf_iterator.h" 3 - ostreambuf_iterator(ostream_type& __s) noexcept - : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } - - - ostreambuf_iterator(streambuf_type* __s) noexcept - : _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; } - - - bool - failed() const noexcept - { 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; - } - }; - - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - ostreambuf_iterator<_CharT> >::__type - copy(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; - } - - template - typename __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; - } - - template - typename __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; - } - - template - typename __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; - } - - - template - __enable_if_t<__is_char<_CharT>::__value, _CharT*> - __copy_n_a(istreambuf_iterator<_CharT> __it, _Size __n, _CharT* __result) - { - if (__n == 0) - return __result; - - - - ; - _CharT* __beg = __result; - __result += __it._M_sbuf->sgetn(__beg, __n); - - - ; - return __result; - } - - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - istreambuf_iterator<_CharT> >::__type - find(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; - const int_type __eof = traits_type::eof(); - - 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, __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(); - } - - __first._M_c = __eof; - } - - return __first; - } - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - void>::__type - advance(istreambuf_iterator<_CharT>& __i, _Distance __n) - { - if (__n == 0) - return; - - ; - - - ; - - 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; - const int_type __eof = traits_type::eof(); - - streambuf_type* __sb = __i._M_sbuf; - while (__n > 0) - { - streamsize __size = __sb->egptr() - __sb->gptr(); - if (__size > __n) - { - __sb->__safe_gbump(__n); - break; - } - - __sb->__safe_gbump(__size); - __n -= __size; - if (traits_type::eq_int_type(__sb->underflow(), __eof)) - { - - - ; - break; - } - } - - __i._M_c = __eof; - } - - - - -} -# 49 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 71 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - template - void - __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(); - - - - template - struct __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); - - - - - template - inline - ostreambuf_iterator<_CharT> - __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) - { - __s._M_put(__ws, __len); - return __s; - } - - - template - inline - _OutIter - __write(_OutIter __s, const _CharT* __ws, int __len) - { - for (int __j = 0; __j < __len; __j++, ++__s) - *__s = __ws[__j]; - return __s; - } -# 149 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - template - class __ctype_abstract_base : public locale::facet, public ctype_base - { - public: - - - typedef _CharT char_type; -# 168 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - bool - is(mask __m, char_type __c) const - { return this->do_is(__m, __c); } -# 185 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - const char_type* - is(const char_type *__lo, const char_type *__hi, mask *__vec) const - { return this->do_is(__lo, __hi, __vec); } -# 201 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - const char_type* - scan_is(mask __m, const char_type* __lo, const char_type* __hi) const - { return this->do_scan_is(__m, __lo, __hi); } -# 217 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - const char_type* - scan_not(mask __m, const char_type* __lo, const char_type* __hi) const - { return this->do_scan_not(__m, __lo, __hi); } -# 231 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - char_type - toupper(char_type __c) const - { return this->do_toupper(__c); } -# 246 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - const char_type* - toupper(char_type *__lo, const char_type* __hi) const - { return this->do_toupper(__lo, __hi); } -# 260 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - char_type - tolower(char_type __c) const - { return this->do_tolower(__c); } -# 275 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - const char_type* - tolower(char_type* __lo, const char_type* __hi) const - { return this->do_tolower(__lo, __hi); } -# 292 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - char_type - widen(char __c) const - { return this->do_widen(__c); } -# 311 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - const char* - widen(const char* __lo, const char* __hi, char_type* __to) const - { return this->do_widen(__lo, __hi, __to); } -# 330 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - char - narrow(char_type __c, char __dfault) const - { return this->do_narrow(__c, __dfault); } -# 352 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - const 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() { } -# 377 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual bool - do_is(mask __m, char_type __c) const = 0; -# 396 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char_type* - do_is(const char_type* __lo, const char_type* __hi, - mask* __vec) const = 0; -# 415 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char_type* - do_scan_is(mask __m, const char_type* __lo, - const char_type* __hi) const = 0; -# 434 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char_type* - do_scan_not(mask __m, const char_type* __lo, - const char_type* __hi) const = 0; -# 452 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual char_type - do_toupper(char_type __c) const = 0; -# 469 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char_type* - do_toupper(char_type* __lo, const char_type* __hi) const = 0; -# 485 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual char_type - do_tolower(char_type __c) const = 0; -# 502 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char_type* - do_tolower(char_type* __lo, const char_type* __hi) const = 0; -# 521 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual char_type - do_widen(char __c) const = 0; -# 542 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char* - do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0; -# 563 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual char - do_narrow(char_type __c, char __dfault) const = 0; -# 588 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char_type* - do_narrow(const char_type* __lo, const char_type* __hi, - char __dfault, char* __to) const = 0; - }; -# 611 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - template - class ctype : public __ctype_abstract_base<_CharT> - { - public: - - typedef _CharT char_type; - typedef typename __ctype_abstract_base<_CharT>::mask mask; - - - static locale::id id; - - explicit - ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } - - protected: - virtual - ~ctype(); - - virtual bool - do_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_type - do_toupper(char_type __c) const; - - virtual const char_type* - do_toupper(char_type* __lo, const char_type* __hi) const; - - virtual char_type - do_tolower(char_type __c) const; - - virtual const char_type* - do_tolower(char_type* __lo, const char_type* __hi) const; - - virtual char_type - do_widen(char __c) const; - - virtual const char* - do_widen(const char* __lo, const char* __hi, char_type* __dest) const; - - virtual char - do_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; - }; - - template - locale::id ctype<_CharT>::id; -# 680 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - template<> - 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); -# 717 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - explicit - ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); -# 730 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - explicit - ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, - size_t __refs = 0); -# 743 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - inline bool - is(mask __m, char __c) const; -# 758 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - inline const char* - is(const char* __lo, const char* __hi, mask* __vec) const; -# 772 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - inline const char* - scan_is(mask __m, const char* __lo, const char* __hi) const; -# 786 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - inline const char* - scan_not(mask __m, const char* __lo, const char* __hi) const; -# 801 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - char_type - toupper(char_type __c) const - { return this->do_toupper(__c); } -# 818 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - const char_type* - toupper(char_type *__lo, const char_type* __hi) const - { return this->do_toupper(__lo, __hi); } -# 834 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - char_type - tolower(char_type __c) const - { return this->do_tolower(__c); } -# 851 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - const char_type* - tolower(char_type* __lo, const char_type* __hi) const - { return this->do_tolower(__lo, __hi); } -# 871 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - char_type - widen(char __c) const - { - if (_M_widen_ok) - return _M_widen[static_cast(__c)]; - this->_M_widen_init(); - return this->do_widen(__c); - } -# 898 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - const char* - widen(const char* __lo, const char* __hi, char_type* __to) const - { - if (_M_widen_ok == 1) - { - if (__builtin_expect(__hi != __lo, true)) - __builtin_memcpy(__to, __lo, __hi - __lo); - return __hi; - } - if (!_M_widen_ok) - _M_widen_init(); - return this->do_widen(__lo, __hi, __to); - } -# 930 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - char - narrow(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; - } -# 963 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - const char_type* - narrow(const char_type* __lo, const char_type* __hi, - char __dfault, char* __to) const - { - if (__builtin_expect(_M_narrow_ok == 1, true)) - { - if (__builtin_expect(__hi != __lo, 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(); -# 1013 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual char_type - do_toupper(char_type __c) const; -# 1030 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char_type* - do_toupper(char_type* __lo, const char_type* __hi) const; -# 1046 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual char_type - do_tolower(char_type __c) const; -# 1063 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char_type* - do_tolower(char_type* __lo, const char_type* __hi) const; -# 1083 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual char_type - do_widen(char __c) const - { return __c; } -# 1106 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char* - do_widen(const char* __lo, const char* __hi, char_type* __to) const - { - if (__builtin_expect(__hi != __lo, true)) - __builtin_memcpy(__to, __lo, __hi - __lo); - return __hi; - } -# 1133 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual char - do_narrow(char_type __c, char __dfault __attribute__((__unused__))) const - { return __c; } -# 1159 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char_type* - do_narrow(const char_type* __lo, const char_type* __hi, - char __dfault __attribute__((__unused__)), char* __to) const - { - if (__builtin_expect(__hi != __lo, true)) - __builtin_memcpy(__to, __lo, __hi - __lo); - return __hi; - } - - private: - void _M_narrow_init() const; - void _M_widen_init() const; - }; -# 1185 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - template<> - 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; -# 1218 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - explicit - ctype(size_t __refs = 0); -# 1229 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - explicit - ctype(__c_locale __cloc, size_t __refs = 0); - - protected: - __wmask_type - _M_convert_to_wmask(const mask __m) const throw(); - - - virtual - ~ctype(); -# 1253 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual bool - do_is(mask __m, char_type __c) const; -# 1272 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char_type* - do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; -# 1290 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char_type* - do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; -# 1308 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char_type* - do_scan_not(mask __m, const char_type* __lo, - const char_type* __hi) const; -# 1325 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual char_type - do_toupper(char_type __c) const; -# 1342 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char_type* - do_toupper(char_type* __lo, const char_type* __hi) const; -# 1358 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual char_type - do_tolower(char_type __c) const; -# 1375 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char_type* - do_tolower(char_type* __lo, const char_type* __hi) const; -# 1395 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual char_type - do_widen(char __c) const; -# 1417 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char* - do_widen(const char* __lo, const char* __hi, char_type* __to) const; -# 1440 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual char - do_narrow(char_type __c, char __dfault) const; -# 1466 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual const char_type* - do_narrow(const char_type* __lo, const char_type* __hi, - char __dfault, char* __to) const; - - - void - _M_initialize_ctype() throw(); - }; - - - - template - class ctype_byname : public ctype<_CharT> - { - public: - typedef typename ctype<_CharT>::mask mask; - - explicit - ctype_byname(const char* __s, size_t __refs = 0); - - - explicit - ctype_byname(const string& __s, size_t __refs = 0) - : ctype_byname(__s.c_str(), __refs) { } - - - protected: - virtual - ~ctype_byname() { } - }; - - - template<> - class ctype_byname : public ctype - { - public: - explicit - ctype_byname(const char* __s, size_t __refs = 0); - - - explicit - ctype_byname(const string& __s, size_t __refs = 0); - - - protected: - virtual - ~ctype_byname(); - }; - - - template<> - class ctype_byname : public ctype - { - public: - explicit - ctype_byname(const char* __s, size_t __refs = 0); - - - explicit - ctype_byname(const string& __s, size_t __refs = 0); - - - protected: - virtual - ~ctype_byname(); - }; - - - -} - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/ctype_inline.h" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/ctype_inline.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - bool - ctype:: - 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; - } - - -} -# 1539 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 2 3 - -namespace 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(); - }; - - template - struct __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; - } - } - -namespace __cxx11 { -# 1669 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - template - class 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; - - - - - - - explicit - numpunct(size_t __refs = 0) - : facet(__refs), _M_data(0) - { _M_initialize_numpunct(); } -# 1707 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - explicit - numpunct(__cache_type* __cache, size_t __refs = 0) - : facet(__refs), _M_data(__cache) - { _M_initialize_numpunct(); } -# 1721 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - explicit - numpunct(__c_locale __cloc, size_t __refs = 0) - : facet(__refs), _M_data(0) - { _M_initialize_numpunct(__cloc); } -# 1735 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - char_type - decimal_point() const - { return this->do_decimal_point(); } -# 1748 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - char_type - thousands_sep() const - { return this->do_thousands_sep(); } -# 1779 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - string - grouping() const - { return this->do_grouping(); } -# 1792 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - string_type - truename() const - { return this->do_truename(); } -# 1805 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - string_type - falsename() const - { return this->do_falsename(); } - - protected: - - virtual - ~numpunct(); -# 1822 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual char_type - do_decimal_point() const - { return _M_data->_M_decimal_point; } -# 1834 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual char_type - do_thousands_sep() const - { return _M_data->_M_thousands_sep; } -# 1847 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual string - do_grouping() const - { return _M_data->_M_grouping; } -# 1860 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual string_type - do_truename() const - { return _M_data->_M_truename; } -# 1873 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual string_type - do_falsename() const - { return _M_data->_M_falsename; } - - - void - _M_initialize_numpunct(__c_locale __cloc = 0); - }; - - template - locale::id numpunct<_CharT>::id; - - template<> - numpunct::~numpunct(); - - template<> - void - numpunct::_M_initialize_numpunct(__c_locale __cloc); - - - template<> - numpunct::~numpunct(); - - template<> - void - numpunct::_M_initialize_numpunct(__c_locale __cloc); - - - - template - class numpunct_byname : public numpunct<_CharT> - { - public: - typedef _CharT char_type; - typedef basic_string<_CharT> string_type; - - explicit - numpunct_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); - } - } - - - explicit - numpunct_byname(const string& __s, size_t __refs = 0) - : numpunct_byname(__s.c_str(), __refs) { } - - - protected: - virtual - ~numpunct_byname() { } - }; - -} - - -# 1951 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - template - class num_get : public locale::facet - { - public: - - - - typedef _CharT char_type; - typedef _InIter iter_type; - - - - static locale::id id; -# 1972 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - explicit - num_get(size_t __refs = 0) : facet(__refs) { } -# 1998 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - iter_type - get(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); } -# 2035 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - iter_type - get(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_type - get(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_type - get(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_type - get(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_type - get(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_type - get(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); } -# 2095 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - iter_type - get(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_type - get(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_type - get(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); } -# 2138 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - iter_type - get(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() { } - - __attribute ((__abi_tag__ ("cxx11"))) - iter_type - _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, - string&) const; - - template - __attribute ((__abi_tag__ ("cxx11"))) - iter_type - _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, - _ValueT&) const; - - template - typename __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; - } - - template - typename __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; - } -# 2211 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual iter_type - do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; - - virtual iter_type - do_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_type - do_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_type - do_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_type - do_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_type - do_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_type - do_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_type - do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const; - - virtual iter_type - do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, - double&) const; - - - - - - - - virtual iter_type - do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, - long double&) const; - - - virtual iter_type - do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const; -# 2274 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - }; - - template - locale::id num_get<_CharT, _InIter>::id; -# 2292 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - template - class num_put : public locale::facet - { - public: - - - - typedef _CharT char_type; - typedef _OutIter iter_type; - - - - static locale::id id; -# 2313 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - explicit - num_put(size_t __refs = 0) : facet(__refs) { } -# 2331 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const - { return this->do_put(__s, __io, __fill, __v); } -# 2373 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, long __v) const - { return this->do_put(__s, __io, __fill, __v); } - - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, - unsigned long __v) const - { return this->do_put(__s, __io, __fill, __v); } - - - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const - { return this->do_put(__s, __io, __fill, __v); } - - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, - unsigned long long __v) const - { return this->do_put(__s, __io, __fill, __v); } -# 2436 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, double __v) const - { return this->do_put(__s, __io, __fill, __v); } - - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, - long double __v) const - { return this->do_put(__s, __io, __fill, __v); } -# 2461 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, - const void* __v) const - { return this->do_put(__s, __io, __fill, __v); } - - protected: - template - iter_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; - - template - iter_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() { } -# 2509 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 3 - virtual iter_type - do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const; - - virtual iter_type - do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const - { return _M_insert_int(__s, __io, __fill, __v); } - - virtual iter_type - do_put(iter_type __s, ios_base& __io, char_type __fill, - unsigned long __v) const - { return _M_insert_int(__s, __io, __fill, __v); } - - - virtual iter_type - do_put(iter_type __s, ios_base& __io, char_type __fill, - long long __v) const - { return _M_insert_int(__s, __io, __fill, __v); } - - virtual iter_type - do_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_type - do_put(iter_type, ios_base&, char_type, double) const; - - - - - - - virtual iter_type - do_put(iter_type, ios_base&, char_type, long double) const; - - - virtual iter_type - do_put(iter_type, ios_base&, char_type, const void*) const; - - - - - - - - }; - - template - locale::id num_put<_CharT, _OutIter>::id; - - - - - - - - - - template - inline bool - isspace(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::space, __c); } - - - template - inline bool - isprint(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::print, __c); } - - - template - inline bool - iscntrl(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::cntrl, __c); } - - - template - inline bool - isupper(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::upper, __c); } - - - template - inline bool - islower(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::lower, __c); } - - - template - inline bool - isalpha(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::alpha, __c); } - - - template - inline bool - isdigit(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::digit, __c); } - - - template - inline bool - ispunct(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::punct, __c); } - - - template - inline bool - isxdigit(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::xdigit, __c); } - - - template - inline bool - isalnum(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::alnum, __c); } - - - template - inline bool - isgraph(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::graph, __c); } - - - - template - inline bool - isblank(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::blank, __c); } - - - - template - inline _CharT - toupper(_CharT __c, const locale& __loc) - { return use_facet >(__loc).toupper(__c); } - - - template - inline _CharT - tolower(_CharT __c, const locale& __loc) - { return use_facet >(__loc).tolower(__c); } - - -} - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.tcc" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.tcc" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.tcc" 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - template - struct __use_cache - { - const _Facet* - operator() (const locale& __loc) const; - }; - - - template - struct __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]); - } - }; - - template - void - __numpunct_cache<_CharT>::_M_cache(const locale& __loc) - { - const numpunct<_CharT>& __np = use_facet >(__loc); - - char* __grouping = 0; - _CharT* __truename = 0; - _CharT* __falsename = 0; - try - { - const string& __g = __np.grouping(); - _M_grouping_size = __g.size(); - __grouping = new char[_M_grouping_size]; - __g.copy(__grouping, _M_grouping_size); - _M_use_grouping = (_M_grouping_size - && static_cast(__grouping[0]) > 0 - && (__grouping[0] - != __gnu_cxx::__numeric_traits::__max)); - - const basic_string<_CharT>& __tn = __np.truename(); - _M_truename_size = __tn.size(); - __truename = new _CharT[_M_truename_size]; - __tn.copy(__truename, _M_truename_size); - - const basic_string<_CharT>& __fn = __np.falsename(); - _M_falsename_size = __fn.size(); - __falsename = new _CharT[_M_falsename_size]; - __fn.copy(__falsename, _M_falsename_size); - - _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); - - _M_grouping = __grouping; - _M_truename = __truename; - _M_falsename = __falsename; - _M_allocated = true; - } - catch(...) - { - delete [] __grouping; - delete [] __truename; - delete [] __falsename; - throw; - } - } -# 139 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.tcc" 3 - __attribute__ ((__pure__)) bool - __verify_grouping(const char* __grouping, size_t __grouping_size, - const string& __grouping_tmp) throw (); - - - - template - __attribute ((__abi_tag__ ("cxx11"))) - _InIter - num_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; - } - else - break; - } - - - 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 ? '+' : '-'; - else - continue; - } - else - { - __testeof = true; - break; - } - } - else - break; - - if (++__beg != __end) - __c = *__beg; - else - __testeof = true; - } - else - while (!__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; - } - } - else - break; - } - 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; - } - else - break; - } - 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 ? '+' : '-'; - else - continue; - } - else - { - __testeof = true; - break; - } - } - else - break; - } - - 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; - } - - template - template - __attribute ((__abi_tag__ ("cxx11"))) - _InIter - num_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; - } - else - break; - } - else - break; - - 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); - - - typedef __gnu_cxx::__numeric_traits<_ValueT> __num_traits; - string __found_grouping; - if (__lc->_M_use_grouping) - __found_grouping.reserve(32); - bool __testfail = false; - bool __testoverflow = false; - const __unsigned_type __max = - (__negative && __num_traits::__is_signed) - ? -static_cast<__unsigned_type>(__num_traits::__min) - : __num_traits::__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; - } - else - while (!__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 && __num_traits::__is_signed) - __v = __num_traits::__min; - else - __v = __num_traits::__max; - __err = ios_base::failbit; - } - else - __v = __negative ? -__result : __result; - - if (__testeof) - __err |= ios_base::eofbit; - return __beg; - } - - - - template - _InIter - num_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 - _InIter - num_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 - _InIter - num_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; - } -# 735 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.tcc" 3 - template - _InIter - num_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 - _InIter - num_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; - } - - - - template - void - num_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); - } - - - - template - int - __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; - } - - - - template - void - num_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; - } - - template - template - _OutIter - num_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); - } - - template - void - num_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; - } -# 971 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.tcc" 3 - template - template - _OutIter - num_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); - - - - const bool __use_prec = - (__io.flags() & ios_base::floatfield) != ios_base::floatfield; - - - - int __cs_size = __max_digits * 3; - char* __cs = static_cast(__builtin_alloca(__cs_size)); - if (__use_prec) - __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, - __fbuf, __prec, __v); - else - __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, - __fbuf, __v); - - - if (__len >= __cs_size) - { - __cs_size = __len + 1; - __cs = static_cast(__builtin_alloca(__cs_size)); - if (__use_prec) - __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, - __fbuf, __prec, __v); - else - __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, - __fbuf, __v); - } -# 1044 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.tcc" 3 - const 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 - _OutIter - num_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 - _OutIter - num_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); } -# 1169 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.tcc" 3 - template - _OutIter - num_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 - _OutIter - num_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; - } - - -# 1206 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.tcc" 3 - template - void - __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 __cxx11:: numpunct; - extern template class __cxx11:: numpunct_byname; - extern template class num_get; - extern template class num_put; - extern template class ctype_byname; - - extern template - const ctype& - use_facet >(const locale&); - - extern template - const numpunct& - use_facet >(const locale&); - - extern template - const num_put& - use_facet >(const locale&); - - extern template - const num_get& - use_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - - extern template class __cxx11:: numpunct; - extern template class __cxx11:: numpunct_byname; - extern template class num_get; - extern template class num_put; - extern template class ctype_byname; - - extern template - const ctype& - use_facet >(const locale&); - - extern template - const numpunct& - use_facet >(const locale&); - - extern template - const num_put& - use_facet >(const locale&); - - extern template - const num_get& - use_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - - - -} -# 2656 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets.h" 2 3 -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 2 3 - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - template - inline const _Facet& - __check_facet(const _Facet* __f) - { - if (!__f) - __throw_bad_cast(); - return *__f; - } -# 66 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - template - class 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: -# 117 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - explicit operator bool() const - { return !this->fail(); } - - - - - - bool - operator!() const - { return this->fail(); } -# 136 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - iostate - rdstate() const - { return _M_streambuf_state; } -# 147 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - void - clear(iostate __state = goodbit); - - - - - - - - void - setstate(iostate __state) - { this->clear(this->rdstate() | __state); } - - - - - void - _M_setstate(iostate __state) - { - - - _M_streambuf_state |= __state; - if (this->exceptions() & __state) - throw; - } - - - - - - - - bool - good() const - { return this->rdstate() == 0; } - - - - - - - - bool - eof() const - { return (this->rdstate() & eofbit) != 0; } -# 200 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - bool - fail() const - { return (this->rdstate() & (badbit | failbit)) != 0; } - - - - - - - - bool - bad() const - { return (this->rdstate() & badbit) != 0; } -# 221 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - iostate - exceptions() const - { return _M_exception; } -# 256 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - void - exceptions(iostate __except) - { - _M_exception = __except; - this->clear(_M_streambuf_state); - } - - - - - - - - explicit - basic_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() { } -# 294 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - basic_ostream<_CharT, _Traits>* - tie() const - { return _M_tie; } -# 306 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - basic_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; } -# 346 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - basic_streambuf<_CharT, _Traits>* - rdbuf(basic_streambuf<_CharT, _Traits>* __sb); -# 360 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - basic_ios& - copyfmt(const basic_ios& __rhs); - - - - - - - - char_type - fill() const - { - if (!_M_fill_init) - { - _M_fill = this->widen(' '); - _M_fill_init = true; - } - return _M_fill; - } -# 389 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - char_type - fill(char_type __ch) - { - char_type __old = this->fill(); - _M_fill = __ch; - return __old; - } -# 409 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - locale - imbue(const locale& __loc); -# 429 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - char - narrow(char_type __c, char __dfault) const - { return __check_facet(_M_ctype).narrow(__c, __dfault); } -# 448 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 3 - char_type - widen(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) - { } - - - - - - - - void - init(basic_streambuf<_CharT, _Traits>* __sb); - - - basic_ios(const basic_ios&) = delete; - basic_ios& operator=(const basic_ios&) = delete; - - void - move(basic_ios& __rhs) - { - ios_base::_M_move(__rhs); - _M_cache_locale(_M_ios_locale); - this->tie(__rhs.tie(nullptr)); - _M_fill = __rhs._M_fill; - _M_fill_init = __rhs._M_fill_init; - _M_streambuf = nullptr; - } - - void - move(basic_ios&& __rhs) - { this->move(__rhs); } - - void - swap(basic_ios& __rhs) noexcept - { - ios_base::_M_swap(__rhs); - _M_cache_locale(_M_ios_locale); - __rhs._M_cache_locale(__rhs._M_ios_locale); - std::swap(_M_tie, __rhs._M_tie); - std::swap(_M_fill, __rhs._M_fill); - std::swap(_M_fill_init, __rhs._M_fill_init); - } - - void - set_rdbuf(basic_streambuf<_CharT, _Traits>* __sb) - { _M_streambuf = __sb; } - - - void - _M_cache_locale(const locale& __loc); - }; - - -} - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.tcc" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.tcc" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.tcc" 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - template - void - basic_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")); - } - - template - basic_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; - } - - template - basic_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; - } - - - template - locale - basic_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; - } - - template - void - basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) - { - - ios_base::_M_init(); - - - _M_cache_locale(_M_ios_locale); -# 146 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/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; - } - - template - void - basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) - { - if (__builtin_expect(has_facet<__ctype_type>(__loc), true)) - _M_ctype = std::__addressof(use_facet<__ctype_type>(__loc)); - else - _M_ctype = 0; - - if (__builtin_expect(has_facet<__num_put_type>(__loc), true)) - _M_num_put = std::__addressof(use_facet<__num_put_type>(__loc)); - else - _M_num_put = 0; - - if (__builtin_expect(has_facet<__num_get_type>(__loc), true)) - _M_num_get = std::__addressof(use_facet<__num_get_type>(__loc)); - else - _M_num_get = 0; - } - - - - - extern template class basic_ios; - - - extern template class basic_ios; - - - - -} -# 517 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/basic_ios.h" 2 3 -# 45 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ios" 2 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 2 3 - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 57 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - template - class 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 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - explicit - basic_ostream(__streambuf_type* __sb) - { this->init(__sb); } - - - - - - - virtual - ~basic_ostream() { } - - - class sentry; - friend class sentry; -# 107 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/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 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/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 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/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 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - __ostream_type& - operator<<(const void* __p) - { return _M_insert(__p); } -# 275 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - __ostream_type& - operator<<(__streambuf_type* __sb); -# 308 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/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); - } -# 340 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - __ostream_type& - write(const char_type* __s, streamsize __n); -# 353 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - __ostream_type& - flush(); -# 363 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - pos_type - tellp(); -# 374 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - __ostream_type& - seekp(pos_type); -# 386 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - __ostream_type& - seekp(off_type, ios_base::seekdir); - - protected: - basic_ostream() - { this->init(0); } - - - - basic_ostream(basic_iostream<_CharT, _Traits>&) { } - - basic_ostream(const basic_ostream&) = delete; - - basic_ostream(basic_ostream&& __rhs) - : __ios_type() - { __ios_type::move(__rhs); } - - - - basic_ostream& operator=(const basic_ostream&) = delete; - - basic_ostream& - operator=(basic_ostream&& __rhs) - { - swap(__rhs); - return *this; - } - - void - swap(basic_ostream& __rhs) - { __ios_type::swap(__rhs); } - - - template - __ostream_type& - _M_insert(_ValueT __v); - }; -# 431 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - template - class basic_ostream<_CharT, _Traits>::sentry - { - - bool _M_ok; - basic_ostream<_CharT, _Traits>& _M_os; - - public: -# 450 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - explicit - sentry(basic_ostream<_CharT, _Traits>& __os); - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - - - - - - - - ~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); - } - } -#pragma GCC diagnostic pop -# 482 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - explicit - - operator bool() const - { return _M_ok; } - }; -# 504 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - template - inline basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) - { return __ostream_insert(__out, &__c, 1); } - - template - inline 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); } - - - template - inline basic_ostream& - operator<<(basic_ostream& __out, signed char __c) - { return (__out << static_cast(__c)); } - - template - inline basic_ostream& - operator<<(basic_ostream& __out, unsigned char __c) - { return (__out << static_cast(__c)); } -# 587 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - template - inline 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; - } - - template - basic_ostream<_CharT, _Traits> & - operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); - - - template - inline 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; - } - - - template - inline basic_ostream& - operator<<(basic_ostream& __out, const signed char* __s) - { return (__out << reinterpret_cast(__s)); } - - template - inline basic_ostream & - operator<<(basic_ostream& __out, const unsigned char* __s) - { return (__out << reinterpret_cast(__s)); } -# 679 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - template - inline basic_ostream<_CharT, _Traits>& - endl(basic_ostream<_CharT, _Traits>& __os) - { return flush(__os.put(__os.widen('\n'))); } -# 691 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - template - inline basic_ostream<_CharT, _Traits>& - ends(basic_ostream<_CharT, _Traits>& __os) - { return __os.put(_CharT()); } - - - - - - - template - inline basic_ostream<_CharT, _Traits>& - flush(basic_ostream<_CharT, _Traits>& __os) - { return __os.flush(); } - - - template - basic_ostream<_Ch, _Up>& - __is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*); - - template - struct __is_convertible_to_basic_ostream_impl - { - using __ostream_type = void; - }; - - template - using __do_is_convertible_to_basic_ostream_impl = - decltype(__is_convertible_to_basic_ostream_test - (declval::type*>())); - - template - struct __is_convertible_to_basic_ostream_impl - <_Tp, - __void_t<__do_is_convertible_to_basic_ostream_impl<_Tp>>> - { - using __ostream_type = - __do_is_convertible_to_basic_ostream_impl<_Tp>; - }; - - template - struct __is_convertible_to_basic_ostream - : __is_convertible_to_basic_ostream_impl<_Tp> - { - public: - using type = __not_::__ostream_type>>; - constexpr static bool value = type::value; - }; - - template - struct __is_insertable : false_type {}; - - template - struct __is_insertable<_Ostream, _Tp, - __void_t() - << declval())>> - : true_type {}; - - template - using __rvalue_ostream_type = - typename __is_convertible_to_basic_ostream< - _Ostream>::__ostream_type; -# 765 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 3 - template - inline - typename enable_if<__and_<__not_>, - __is_convertible_to_basic_ostream<_Ostream>, - __is_insertable< - __rvalue_ostream_type<_Ostream>, - const _Tp&>>::value, - __rvalue_ostream_type<_Ostream>>::type - operator<<(_Ostream&& __os, const _Tp& __x) - { - __rvalue_ostream_type<_Ostream> __ret_os = __os; - __ret_os << __x; - return __ret_os; - } - - - -} - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ostream.tcc" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ostream.tcc" 3 - -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/ostream.tcc" 3 - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - template - basic_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); - } - - template - template - basic_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; - } - - template - basic_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))); - else - return _M_insert(static_cast(__n)); - } - - template - basic_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))); - else - return _M_insert(static_cast(__n)); - } - - template - basic_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; - } - - template - basic_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; - } - - template - basic_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; - } - - template - basic_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; - } - - template - typename basic_ostream<_CharT, _Traits>::pos_type - basic_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; - } - - template - basic_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; - } - - template - basic_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; - } - - template - basic_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*); - - - - -} -# 785 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ostream" 2 3 -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iostream" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 57 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - template - class 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: - - - - - - - - explicit - basic_istream(__streambuf_type* __sb) - : _M_gcount(streamsize(0)) - { this->init(__sb); } - - - - - - - virtual - ~basic_istream() - { _M_gcount = streamsize(0); } - - - class sentry; - friend class sentry; -# 119 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/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 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/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 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/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 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - __istream_type& - operator>>(void*& __p) - { return _M_extract(__p); } -# 258 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - __istream_type& - operator>>(__streambuf_type* __sb); -# 268 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - streamsize - gcount() const - { return _M_gcount; } -# 301 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - int_type - get(); -# 315 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - __istream_type& - get(char_type& __c); -# 342 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - __istream_type& - get(char_type* __s, streamsize __n, char_type __delim); -# 353 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - __istream_type& - get(char_type* __s, streamsize __n) - { return this->get(__s, __n, this->widen('\n')); } -# 376 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - __istream_type& - get(__streambuf_type& __sb, char_type __delim); -# 386 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - __istream_type& - get(__streambuf_type& __sb) - { return this->get(__sb, this->widen('\n')); } -# 415 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - __istream_type& - getline(char_type* __s, streamsize __n, char_type __delim); -# 426 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - __istream_type& - getline(char_type* __s, streamsize __n) - { return this->getline(__s, __n, this->widen('\n')); } -# 450 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - __istream_type& - ignore(streamsize __n, int_type __delim); - - __istream_type& - ignore(streamsize __n); - - __istream_type& - ignore(); -# 467 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - int_type - peek(); -# 485 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - __istream_type& - read(char_type* __s, streamsize __n); -# 504 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - streamsize - readsome(char_type* __s, streamsize __n); -# 521 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - __istream_type& - putback(char_type __c); -# 537 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - __istream_type& - unget(); -# 555 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - int - sync(); -# 570 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - pos_type - tellg(); -# 585 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - __istream_type& - seekg(pos_type); -# 601 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - __istream_type& - seekg(off_type, ios_base::seekdir); - - - protected: - basic_istream() - : _M_gcount(streamsize(0)) - { this->init(0); } - - - basic_istream(const basic_istream&) = delete; - - basic_istream(basic_istream&& __rhs) - : __ios_type(), _M_gcount(__rhs._M_gcount) - { - __ios_type::move(__rhs); - __rhs._M_gcount = 0; - } - - - - basic_istream& operator=(const basic_istream&) = delete; - - basic_istream& - operator=(basic_istream&& __rhs) - { - swap(__rhs); - return *this; - } - - void - swap(basic_istream& __rhs) - { - __ios_type::swap(__rhs); - std::swap(_M_gcount, __rhs._M_gcount); - } - - - template - __istream_type& - _M_extract(_ValueT& __v); - }; - - - template<> - basic_istream& - basic_istream:: - getline(char_type* __s, streamsize __n, char_type __delim); - - template<> - basic_istream& - basic_istream:: - ignore(streamsize __n); - - template<> - basic_istream& - basic_istream:: - ignore(streamsize __n, int_type __delim); - - - template<> - basic_istream& - basic_istream:: - getline(char_type* __s, streamsize __n, char_type __delim); - - template<> - basic_istream& - basic_istream:: - ignore(streamsize __n); - - template<> - basic_istream& - basic_istream:: - ignore(streamsize __n, int_type __delim); -# 685 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - template - class basic_istream<_CharT, _Traits>::sentry - { - - bool _M_ok; - - public: - - typedef _Traits traits_type; - typedef basic_streambuf<_CharT, _Traits> __streambuf_type; - typedef basic_istream<_CharT, _Traits> __istream_type; - typedef typename __istream_type::__ctype_type __ctype_type; - typedef typename _Traits::int_type __int_type; -# 721 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - explicit - sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); -# 732 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - explicit - - operator bool() const - { return _M_ok; } - }; -# 750 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - template - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); - - template - inline basic_istream& - operator>>(basic_istream& __in, unsigned char& __c) - { return (__in >> reinterpret_cast(__c)); } - - template - inline basic_istream& - operator>>(basic_istream& __in, signed char& __c) - { return (__in >> reinterpret_cast(__c)); } -# 792 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - template - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s); - - - template<> - basic_istream& - operator>>(basic_istream& __in, char* __s); - - template - inline basic_istream& - operator>>(basic_istream& __in, unsigned char* __s) - { return (__in >> reinterpret_cast(__s)); } - - template - inline basic_istream& - operator>>(basic_istream& __in, signed char* __s) - { return (__in >> reinterpret_cast(__s)); } -# 823 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - template - class basic_iostream - : public basic_istream<_CharT, _Traits>, - public basic_ostream<_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_istream<_CharT, _Traits> __istream_type; - typedef basic_ostream<_CharT, _Traits> __ostream_type; - - - - - - - - explicit - basic_iostream(basic_streambuf<_CharT, _Traits>* __sb) - : __istream_type(__sb), __ostream_type(__sb) { } - - - - - virtual - ~basic_iostream() { } - - protected: - basic_iostream() - : __istream_type(), __ostream_type() { } - - - basic_iostream(const basic_iostream&) = delete; - - basic_iostream(basic_iostream&& __rhs) - : __istream_type(std::move(__rhs)), __ostream_type(*this) - { } - - - - basic_iostream& operator=(const basic_iostream&) = delete; - - basic_iostream& - operator=(basic_iostream&& __rhs) - { - swap(__rhs); - return *this; - } - - void - swap(basic_iostream& __rhs) - { __istream_type::swap(__rhs); } - - }; -# 906 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - template - basic_istream<_CharT, _Traits>& - ws(basic_istream<_CharT, _Traits>& __is); - - - template - basic_istream<_Ch, _Up>& - __is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*); - - template - struct __is_convertible_to_basic_istream_impl - { - using __istream_type = void; - }; - - template - using __do_is_convertible_to_basic_istream_impl = - decltype(__is_convertible_to_basic_istream_test - (declval::type*>())); - - template - struct __is_convertible_to_basic_istream_impl - <_Tp, - __void_t<__do_is_convertible_to_basic_istream_impl<_Tp>>> - { - using __istream_type = - __do_is_convertible_to_basic_istream_impl<_Tp>; - }; - - template - struct __is_convertible_to_basic_istream - : __is_convertible_to_basic_istream_impl<_Tp> - { - public: - using type = __not_::__istream_type>>; - constexpr static bool value = type::value; - }; - - template - struct __is_extractable : false_type {}; - - template - struct __is_extractable<_Istream, _Tp, - __void_t() - >> declval<_Tp>())>> - : true_type {}; - - template - using __rvalue_istream_type = - typename __is_convertible_to_basic_istream< - _Istream>::__istream_type; -# 972 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 3 - template - inline - typename enable_if<__and_<__not_>, - __is_convertible_to_basic_istream<_Istream>, - __is_extractable< - __rvalue_istream_type<_Istream>, - _Tp&&>>::value, - __rvalue_istream_type<_Istream>>::type - operator>>(_Istream&& __is, _Tp&& __x) - { - __rvalue_istream_type<_Istream> __ret_is = __is; - __ret_is >> std::forward<_Tp>(__x); - return __ret_is; - } - - - -} - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/istream.tcc" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/istream.tcc" 3 - -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/istream.tcc" 3 - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - template - basic_istream<_CharT, _Traits>::sentry:: - sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false) - { - ios_base::iostate __err = ios_base::goodbit; - if (__in.good()) - try - { - if (__in.tie()) - __in.tie()->flush(); - if (!__noskip && bool(__in.flags() & ios_base::skipws)) - { - const __int_type __eof = traits_type::eof(); - __streambuf_type* __sb = __in.rdbuf(); - __int_type __c = __sb->sgetc(); - - const __ctype_type& __ct = __check_facet(__in._M_ctype); - while (!traits_type::eq_int_type(__c, __eof) - && __ct.is(ctype_base::space, - traits_type::to_char_type(__c))) - __c = __sb->snextc(); - - - - - if (traits_type::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - } - } - catch(__cxxabiv1::__forced_unwind&) - { - __in._M_setstate(ios_base::badbit); - throw; - } - catch(...) - { __in._M_setstate(ios_base::badbit); } - - if (__in.good() && __err == ios_base::goodbit) - _M_ok = true; - else - { - __err |= ios_base::failbit; - __in.setstate(__err); - } - } - - template - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - _M_extract(_ValueT& __v) - { - sentry __cerb(*this, false); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - const __num_get_type& __ng = __check_facet(this->_M_num_get); - __ng.get(*this, 0, *this, __err, __v); - } - 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; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - operator>>(short& __n) - { - - - sentry __cerb(*this, false); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - long __l; - const __num_get_type& __ng = __check_facet(this->_M_num_get); - __ng.get(*this, 0, *this, __err, __l); - - - - if (__l < __gnu_cxx::__numeric_traits::__min) - { - __err |= ios_base::failbit; - __n = __gnu_cxx::__numeric_traits::__min; - } - else if (__l > __gnu_cxx::__numeric_traits::__max) - { - __err |= ios_base::failbit; - __n = __gnu_cxx::__numeric_traits::__max; - } - else - __n = short(__l); - } - 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; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - operator>>(int& __n) - { - - - sentry __cerb(*this, false); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - long __l; - const __num_get_type& __ng = __check_facet(this->_M_num_get); - __ng.get(*this, 0, *this, __err, __l); - - - - if (__l < __gnu_cxx::__numeric_traits::__min) - { - __err |= ios_base::failbit; - __n = __gnu_cxx::__numeric_traits::__min; - } - else if (__l > __gnu_cxx::__numeric_traits::__max) - { - __err |= ios_base::failbit; - __n = __gnu_cxx::__numeric_traits::__max; - } - else - __n = int(__l); - } - 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; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - operator>>(__streambuf_type* __sbout) - { - ios_base::iostate __err = ios_base::goodbit; - sentry __cerb(*this, false); - if (__cerb && __sbout) - { - try - { - bool __ineof; - if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof)) - __err |= ios_base::failbit; - if (__ineof) - __err |= ios_base::eofbit; - } - catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::failbit); - throw; - } - catch(...) - { this->_M_setstate(ios_base::failbit); } - } - else if (!__sbout) - __err |= ios_base::failbit; - if (__err) - this->setstate(__err); - return *this; - } - - template - typename basic_istream<_CharT, _Traits>::int_type - basic_istream<_CharT, _Traits>:: - get(void) - { - const int_type __eof = traits_type::eof(); - int_type __c = __eof; - _M_gcount = 0; - ios_base::iostate __err = ios_base::goodbit; - sentry __cerb(*this, true); - if (__cerb) - { - try - { - __c = this->rdbuf()->sbumpc(); - - if (!traits_type::eq_int_type(__c, __eof)) - _M_gcount = 1; - else - __err |= ios_base::eofbit; - } - catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - throw; - } - catch(...) - { this->_M_setstate(ios_base::badbit); } - } - if (!_M_gcount) - __err |= ios_base::failbit; - if (__err) - this->setstate(__err); - return __c; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - get(char_type& __c) - { - _M_gcount = 0; - ios_base::iostate __err = ios_base::goodbit; - sentry __cerb(*this, true); - if (__cerb) - { - try - { - const int_type __cb = this->rdbuf()->sbumpc(); - - if (!traits_type::eq_int_type(__cb, traits_type::eof())) - { - _M_gcount = 1; - __c = traits_type::to_char_type(__cb); - } - else - __err |= ios_base::eofbit; - } - catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - throw; - } - catch(...) - { this->_M_setstate(ios_base::badbit); } - } - if (!_M_gcount) - __err |= ios_base::failbit; - if (__err) - this->setstate(__err); - return *this; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - get(char_type* __s, streamsize __n, char_type __delim) - { - _M_gcount = 0; - ios_base::iostate __err = ios_base::goodbit; - sentry __cerb(*this, true); - if (__cerb) - { - try - { - const int_type __idelim = traits_type::to_int_type(__delim); - const int_type __eof = traits_type::eof(); - __streambuf_type* __sb = this->rdbuf(); - int_type __c = __sb->sgetc(); - - while (_M_gcount + 1 < __n - && !traits_type::eq_int_type(__c, __eof) - && !traits_type::eq_int_type(__c, __idelim)) - { - *__s++ = traits_type::to_char_type(__c); - ++_M_gcount; - __c = __sb->snextc(); - } - if (traits_type::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - } - catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - throw; - } - catch(...) - { this->_M_setstate(ios_base::badbit); } - } - - - if (__n > 0) - *__s = char_type(); - if (!_M_gcount) - __err |= ios_base::failbit; - if (__err) - this->setstate(__err); - return *this; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - get(__streambuf_type& __sb, char_type __delim) - { - _M_gcount = 0; - ios_base::iostate __err = ios_base::goodbit; - sentry __cerb(*this, true); - if (__cerb) - { - try - { - const int_type __idelim = traits_type::to_int_type(__delim); - const int_type __eof = traits_type::eof(); - __streambuf_type* __this_sb = this->rdbuf(); - int_type __c = __this_sb->sgetc(); - char_type __c2 = traits_type::to_char_type(__c); - - while (!traits_type::eq_int_type(__c, __eof) - && !traits_type::eq_int_type(__c, __idelim) - && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) - { - ++_M_gcount; - __c = __this_sb->snextc(); - __c2 = traits_type::to_char_type(__c); - } - if (traits_type::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - } - catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - throw; - } - catch(...) - { this->_M_setstate(ios_base::badbit); } - } - if (!_M_gcount) - __err |= ios_base::failbit; - if (__err) - this->setstate(__err); - return *this; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - getline(char_type* __s, streamsize __n, char_type __delim) - { - _M_gcount = 0; - ios_base::iostate __err = ios_base::goodbit; - sentry __cerb(*this, true); - if (__cerb) - { - try - { - const int_type __idelim = traits_type::to_int_type(__delim); - const int_type __eof = traits_type::eof(); - __streambuf_type* __sb = this->rdbuf(); - int_type __c = __sb->sgetc(); - - while (_M_gcount + 1 < __n - && !traits_type::eq_int_type(__c, __eof) - && !traits_type::eq_int_type(__c, __idelim)) - { - *__s++ = traits_type::to_char_type(__c); - __c = __sb->snextc(); - ++_M_gcount; - } - if (traits_type::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - else - { - if (traits_type::eq_int_type(__c, __idelim)) - { - __sb->sbumpc(); - ++_M_gcount; - } - else - __err |= ios_base::failbit; - } - } - catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - throw; - } - catch(...) - { this->_M_setstate(ios_base::badbit); } - } - - - if (__n > 0) - *__s = char_type(); - if (!_M_gcount) - __err |= ios_base::failbit; - if (__err) - this->setstate(__err); - return *this; - } - - - - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - ignore(void) - { - _M_gcount = 0; - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - const int_type __eof = traits_type::eof(); - __streambuf_type* __sb = this->rdbuf(); - - if (traits_type::eq_int_type(__sb->sbumpc(), __eof)) - __err |= ios_base::eofbit; - else - _M_gcount = 1; - } - 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; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - ignore(streamsize __n) - { - _M_gcount = 0; - sentry __cerb(*this, true); - if (__cerb && __n > 0) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - const int_type __eof = traits_type::eof(); - __streambuf_type* __sb = this->rdbuf(); - int_type __c = __sb->sgetc(); -# 521 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/istream.tcc" 3 - bool __large_ignore = false; - while (true) - { - while (_M_gcount < __n - && !traits_type::eq_int_type(__c, __eof)) - { - ++_M_gcount; - __c = __sb->snextc(); - } - if (__n == __gnu_cxx::__numeric_traits::__max - && !traits_type::eq_int_type(__c, __eof)) - { - _M_gcount = - __gnu_cxx::__numeric_traits::__min; - __large_ignore = true; - } - else - break; - } - - if (__large_ignore) - _M_gcount = __gnu_cxx::__numeric_traits::__max; - - if (traits_type::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - } - 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; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - ignore(streamsize __n, int_type __delim) - { - _M_gcount = 0; - sentry __cerb(*this, true); - if (__cerb && __n > 0) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - const int_type __eof = traits_type::eof(); - __streambuf_type* __sb = this->rdbuf(); - int_type __c = __sb->sgetc(); - - - bool __large_ignore = false; - while (true) - { - while (_M_gcount < __n - && !traits_type::eq_int_type(__c, __eof) - && !traits_type::eq_int_type(__c, __delim)) - { - ++_M_gcount; - __c = __sb->snextc(); - } - if (__n == __gnu_cxx::__numeric_traits::__max - && !traits_type::eq_int_type(__c, __eof) - && !traits_type::eq_int_type(__c, __delim)) - { - _M_gcount = - __gnu_cxx::__numeric_traits::__min; - __large_ignore = true; - } - else - break; - } - - if (__large_ignore) - _M_gcount = __gnu_cxx::__numeric_traits::__max; - - if (traits_type::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - else if (traits_type::eq_int_type(__c, __delim)) - { - if (_M_gcount - < __gnu_cxx::__numeric_traits::__max) - ++_M_gcount; - __sb->sbumpc(); - } - } - 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; - } - - template - typename basic_istream<_CharT, _Traits>::int_type - basic_istream<_CharT, _Traits>:: - peek(void) - { - int_type __c = traits_type::eof(); - _M_gcount = 0; - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - __c = this->rdbuf()->sgetc(); - if (traits_type::eq_int_type(__c, traits_type::eof())) - __err |= ios_base::eofbit; - } - catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - throw; - } - catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return __c; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - read(char_type* __s, streamsize __n) - { - _M_gcount = 0; - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - _M_gcount = this->rdbuf()->sgetn(__s, __n); - if (_M_gcount != __n) - __err |= (ios_base::eofbit | 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; - } - - template - streamsize - basic_istream<_CharT, _Traits>:: - readsome(char_type* __s, streamsize __n) - { - _M_gcount = 0; - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - - const streamsize __num = this->rdbuf()->in_avail(); - if (__num > 0) - _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n)); - else if (__num == -1) - __err |= ios_base::eofbit; - } - catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - throw; - } - catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return _M_gcount; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - putback(char_type __c) - { - - - _M_gcount = 0; - - this->clear(this->rdstate() & ~ios_base::eofbit); - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - const int_type __eof = traits_type::eof(); - __streambuf_type* __sb = this->rdbuf(); - if (!__sb - || traits_type::eq_int_type(__sb->sputbackc(__c), __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; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - unget(void) - { - - - _M_gcount = 0; - - this->clear(this->rdstate() & ~ios_base::eofbit); - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - const int_type __eof = traits_type::eof(); - __streambuf_type* __sb = this->rdbuf(); - if (!__sb - || traits_type::eq_int_type(__sb->sungetc(), __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; - } - - template - int - basic_istream<_CharT, _Traits>:: - sync(void) - { - - - int __ret = -1; - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - __streambuf_type* __sb = this->rdbuf(); - if (__sb) - { - if (__sb->pubsync() == -1) - __err |= ios_base::badbit; - else - __ret = 0; - } - } - catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - throw; - } - catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return __ret; - } - - template - typename basic_istream<_CharT, _Traits>::pos_type - basic_istream<_CharT, _Traits>:: - tellg(void) - { - - - pos_type __ret = pos_type(-1); - sentry __cerb(*this, true); - if (__cerb) - { - try - { - if (!this->fail()) - __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, - ios_base::in); - } - catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - throw; - } - catch(...) - { this->_M_setstate(ios_base::badbit); } - } - return __ret; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - seekg(pos_type __pos) - { - - - - this->clear(this->rdstate() & ~ios_base::eofbit); - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - if (!this->fail()) - { - - const pos_type __p = this->rdbuf()->pubseekpos(__pos, - ios_base::in); - - - 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; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - seekg(off_type __off, ios_base::seekdir __dir) - { - - - - this->clear(this->rdstate() & ~ios_base::eofbit); - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - if (!this->fail()) - { - - const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, - ios_base::in); - - - 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; - } - - - template - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) - { - typedef basic_istream<_CharT, _Traits> __istream_type; - typedef typename __istream_type::int_type __int_type; - - typename __istream_type::sentry __cerb(__in, false); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - const __int_type __cb = __in.rdbuf()->sbumpc(); - if (!_Traits::eq_int_type(__cb, _Traits::eof())) - __c = _Traits::to_char_type(__cb); - else - __err |= (ios_base::eofbit | ios_base::failbit); - } - catch(__cxxabiv1::__forced_unwind&) - { - __in._M_setstate(ios_base::badbit); - throw; - } - catch(...) - { __in._M_setstate(ios_base::badbit); } - if (__err) - __in.setstate(__err); - } - return __in; - } - - template - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s) - { - typedef basic_istream<_CharT, _Traits> __istream_type; - typedef basic_streambuf<_CharT, _Traits> __streambuf_type; - typedef typename _Traits::int_type int_type; - typedef _CharT char_type; - typedef ctype<_CharT> __ctype_type; - - streamsize __extracted = 0; - ios_base::iostate __err = ios_base::goodbit; - typename __istream_type::sentry __cerb(__in, false); - if (__cerb) - { - try - { - - streamsize __num = __in.width(); - if (__num <= 0) - __num = __gnu_cxx::__numeric_traits::__max; - - const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); - - const int_type __eof = _Traits::eof(); - __streambuf_type* __sb = __in.rdbuf(); - int_type __c = __sb->sgetc(); - - while (__extracted < __num - 1 - && !_Traits::eq_int_type(__c, __eof) - && !__ct.is(ctype_base::space, - _Traits::to_char_type(__c))) - { - *__s++ = _Traits::to_char_type(__c); - ++__extracted; - __c = __sb->snextc(); - } - if (_Traits::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - - - - *__s = char_type(); - __in.width(0); - } - catch(__cxxabiv1::__forced_unwind&) - { - __in._M_setstate(ios_base::badbit); - throw; - } - catch(...) - { __in._M_setstate(ios_base::badbit); } - } - if (!__extracted) - __err |= ios_base::failbit; - if (__err) - __in.setstate(__err); - return __in; - } - - - template - basic_istream<_CharT, _Traits>& - ws(basic_istream<_CharT, _Traits>& __in) - { - typedef basic_istream<_CharT, _Traits> __istream_type; - typedef basic_streambuf<_CharT, _Traits> __streambuf_type; - typedef typename __istream_type::int_type __int_type; - typedef ctype<_CharT> __ctype_type; - - const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); - const __int_type __eof = _Traits::eof(); - __streambuf_type* __sb = __in.rdbuf(); - __int_type __c = __sb->sgetc(); - - while (!_Traits::eq_int_type(__c, __eof) - && __ct.is(ctype_base::space, _Traits::to_char_type(__c))) - __c = __sb->snextc(); - - if (_Traits::eq_int_type(__c, __eof)) - __in.setstate(ios_base::eofbit); - return __in; - } - - - - - extern template class basic_istream; - extern template istream& ws(istream&); - extern template istream& operator>>(istream&, char&); - extern template istream& operator>>(istream&, char*); - extern template istream& operator>>(istream&, unsigned char&); - extern template istream& operator>>(istream&, signed char&); - extern template istream& operator>>(istream&, unsigned char*); - extern template istream& operator>>(istream&, signed char*); - - extern template istream& istream::_M_extract(unsigned short&); - extern template istream& istream::_M_extract(unsigned int&); - extern template istream& istream::_M_extract(long&); - extern template istream& istream::_M_extract(unsigned long&); - extern template istream& istream::_M_extract(bool&); - - extern template istream& istream::_M_extract(long long&); - extern template istream& istream::_M_extract(unsigned long long&); - - extern template istream& istream::_M_extract(float&); - extern template istream& istream::_M_extract(double&); - extern template istream& istream::_M_extract(long double&); - extern template istream& istream::_M_extract(void*&); - - extern template class basic_iostream; - - - extern template class basic_istream; - extern template wistream& ws(wistream&); - extern template wistream& operator>>(wistream&, wchar_t&); - extern template wistream& operator>>(wistream&, wchar_t*); - - extern template wistream& wistream::_M_extract(unsigned short&); - extern template wistream& wistream::_M_extract(unsigned int&); - extern template wistream& wistream::_M_extract(long&); - extern template wistream& wistream::_M_extract(unsigned long&); - extern template wistream& wistream::_M_extract(bool&); - - extern template wistream& wistream::_M_extract(long long&); - extern template wistream& wistream::_M_extract(unsigned long long&); - - extern template wistream& wistream::_M_extract(float&); - extern template wistream& wistream::_M_extract(double&); - extern template wistream& wistream::_M_extract(long double&); - extern template wistream& wistream::_M_extract(void*&); - - extern template class basic_iostream; - - - - -} -# 992 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/istream" 2 3 -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iostream" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 60 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iostream" 3 - extern istream cin; - extern ostream cout; - extern ostream cerr; - extern ostream clog; - - - extern wistream wcin; - extern wostream wcout; - extern wostream wcerr; - extern wostream wclog; - - - - - static ios_base::Init __ioinit; - - -} -# 30 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Defines.hpp" 2 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 3 - -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 3 - - - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/locale" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/locale" 3 - -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/locale" 3 - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ctime" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ctime" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ctime" 3 -# 58 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ctime" 3 -namespace std -{ - using ::clock_t; - using ::time_t; - using ::tm; - - using ::clock; - using ::difftime; - using ::mktime; - using ::time; - using ::asctime; - using ::ctime; - using ::gmtime; - using ::localtime; - using ::strftime; -} -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 52 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - class time_base - { - public: - enum dateorder { no_order, dmy, mdy, ymd, ydm }; - }; - - template - struct __timepunct_cache : public locale::facet - { - - static const _CharT* _S_timezones[14]; - - const _CharT* _M_date_format; - const _CharT* _M_date_era_format; - const _CharT* _M_time_format; - const _CharT* _M_time_era_format; - const _CharT* _M_date_time_format; - const _CharT* _M_date_time_era_format; - const _CharT* _M_am; - const _CharT* _M_pm; - const _CharT* _M_am_pm_format; - - - const _CharT* _M_day1; - const _CharT* _M_day2; - const _CharT* _M_day3; - const _CharT* _M_day4; - const _CharT* _M_day5; - const _CharT* _M_day6; - const _CharT* _M_day7; - - - const _CharT* _M_aday1; - const _CharT* _M_aday2; - const _CharT* _M_aday3; - const _CharT* _M_aday4; - const _CharT* _M_aday5; - const _CharT* _M_aday6; - const _CharT* _M_aday7; - - - const _CharT* _M_month01; - const _CharT* _M_month02; - const _CharT* _M_month03; - const _CharT* _M_month04; - const _CharT* _M_month05; - const _CharT* _M_month06; - const _CharT* _M_month07; - const _CharT* _M_month08; - const _CharT* _M_month09; - const _CharT* _M_month10; - const _CharT* _M_month11; - const _CharT* _M_month12; - - - const _CharT* _M_amonth01; - const _CharT* _M_amonth02; - const _CharT* _M_amonth03; - const _CharT* _M_amonth04; - const _CharT* _M_amonth05; - const _CharT* _M_amonth06; - const _CharT* _M_amonth07; - const _CharT* _M_amonth08; - const _CharT* _M_amonth09; - const _CharT* _M_amonth10; - const _CharT* _M_amonth11; - const _CharT* _M_amonth12; - - bool _M_allocated; - - __timepunct_cache(size_t __refs = 0) : facet(__refs), - _M_date_format(0), _M_date_era_format(0), _M_time_format(0), - _M_time_era_format(0), _M_date_time_format(0), - _M_date_time_era_format(0), _M_am(0), _M_pm(0), - _M_am_pm_format(0), _M_day1(0), _M_day2(0), _M_day3(0), - _M_day4(0), _M_day5(0), _M_day6(0), _M_day7(0), - _M_aday1(0), _M_aday2(0), _M_aday3(0), _M_aday4(0), - _M_aday5(0), _M_aday6(0), _M_aday7(0), _M_month01(0), - _M_month02(0), _M_month03(0), _M_month04(0), _M_month05(0), - _M_month06(0), _M_month07(0), _M_month08(0), _M_month09(0), - _M_month10(0), _M_month11(0), _M_month12(0), _M_amonth01(0), - _M_amonth02(0), _M_amonth03(0), _M_amonth04(0), - _M_amonth05(0), _M_amonth06(0), _M_amonth07(0), - _M_amonth08(0), _M_amonth09(0), _M_amonth10(0), - _M_amonth11(0), _M_amonth12(0), _M_allocated(false) - { } - - ~__timepunct_cache(); - - private: - __timepunct_cache& - operator=(const __timepunct_cache&); - - explicit - __timepunct_cache(const __timepunct_cache&); - }; - - template - __timepunct_cache<_CharT>::~__timepunct_cache() - { - if (_M_allocated) - { - - } - } - - - template<> - const char* - __timepunct_cache::_S_timezones[14]; - - - template<> - const wchar_t* - __timepunct_cache::_S_timezones[14]; - - - - template - const _CharT* __timepunct_cache<_CharT>::_S_timezones[14]; - - template - class __timepunct : public locale::facet - { - public: - - typedef _CharT __char_type; - typedef __timepunct_cache<_CharT> __cache_type; - - protected: - __cache_type* _M_data; - __c_locale _M_c_locale_timepunct; - const char* _M_name_timepunct; - - public: - - static locale::id id; - - explicit - __timepunct(size_t __refs = 0); - - explicit - __timepunct(__cache_type* __cache, size_t __refs = 0); -# 206 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - explicit - __timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0); - - - - void - _M_put(_CharT* __s, size_t __maxlen, const _CharT* __format, - const tm* __tm) const throw (); - - void - _M_date_formats(const _CharT** __date) const - { - - __date[0] = _M_data->_M_date_format; - __date[1] = _M_data->_M_date_era_format; - } - - void - _M_time_formats(const _CharT** __time) const - { - - __time[0] = _M_data->_M_time_format; - __time[1] = _M_data->_M_time_era_format; - } - - void - _M_date_time_formats(const _CharT** __dt) const - { - - __dt[0] = _M_data->_M_date_time_format; - __dt[1] = _M_data->_M_date_time_era_format; - } - - - void - _M_am_pm_format(const _CharT*) const - { } - - - void - _M_am_pm(const _CharT** __ampm) const - { - __ampm[0] = _M_data->_M_am; - __ampm[1] = _M_data->_M_pm; - } - - void - _M_days(const _CharT** __days) const - { - __days[0] = _M_data->_M_day1; - __days[1] = _M_data->_M_day2; - __days[2] = _M_data->_M_day3; - __days[3] = _M_data->_M_day4; - __days[4] = _M_data->_M_day5; - __days[5] = _M_data->_M_day6; - __days[6] = _M_data->_M_day7; - } - - void - _M_days_abbreviated(const _CharT** __days) const - { - __days[0] = _M_data->_M_aday1; - __days[1] = _M_data->_M_aday2; - __days[2] = _M_data->_M_aday3; - __days[3] = _M_data->_M_aday4; - __days[4] = _M_data->_M_aday5; - __days[5] = _M_data->_M_aday6; - __days[6] = _M_data->_M_aday7; - } - - void - _M_months(const _CharT** __months) const - { - __months[0] = _M_data->_M_month01; - __months[1] = _M_data->_M_month02; - __months[2] = _M_data->_M_month03; - __months[3] = _M_data->_M_month04; - __months[4] = _M_data->_M_month05; - __months[5] = _M_data->_M_month06; - __months[6] = _M_data->_M_month07; - __months[7] = _M_data->_M_month08; - __months[8] = _M_data->_M_month09; - __months[9] = _M_data->_M_month10; - __months[10] = _M_data->_M_month11; - __months[11] = _M_data->_M_month12; - } - - void - _M_months_abbreviated(const _CharT** __months) const - { - __months[0] = _M_data->_M_amonth01; - __months[1] = _M_data->_M_amonth02; - __months[2] = _M_data->_M_amonth03; - __months[3] = _M_data->_M_amonth04; - __months[4] = _M_data->_M_amonth05; - __months[5] = _M_data->_M_amonth06; - __months[6] = _M_data->_M_amonth07; - __months[7] = _M_data->_M_amonth08; - __months[8] = _M_data->_M_amonth09; - __months[9] = _M_data->_M_amonth10; - __months[10] = _M_data->_M_amonth11; - __months[11] = _M_data->_M_amonth12; - } - - protected: - virtual - ~__timepunct(); - - - void - _M_initialize_timepunct(__c_locale __cloc = 0); - }; - - template - locale::id __timepunct<_CharT>::id; - - - template<> - void - __timepunct::_M_initialize_timepunct(__c_locale __cloc); - - template<> - void - __timepunct::_M_put(char*, size_t, const char*, const tm*) const throw (); - - - template<> - void - __timepunct::_M_initialize_timepunct(__c_locale __cloc); - - template<> - void - __timepunct::_M_put(wchar_t*, size_t, const wchar_t*, - const tm*) const throw (); - - - -} - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/time_members.h" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/time_members.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - template - __timepunct<_CharT>::__timepunct(size_t __refs) - : facet(__refs), _M_data(0), _M_c_locale_timepunct(0), - _M_name_timepunct(_S_get_c_name()) - { _M_initialize_timepunct(); } - - template - __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) - : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(0), - _M_name_timepunct(_S_get_c_name()) - { _M_initialize_timepunct(); } - - template - __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, - size_t __refs) - : facet(__refs), _M_data(0), _M_c_locale_timepunct(0), - _M_name_timepunct(0) - { - if (__builtin_strcmp(__s, _S_get_c_name()) != 0) - { - const size_t __len = __builtin_strlen(__s) + 1; - char* __tmp = new char[__len]; - __builtin_memcpy(__tmp, __s, __len); - _M_name_timepunct = __tmp; - } - else - _M_name_timepunct = _S_get_c_name(); - - try - { _M_initialize_timepunct(__cloc); } - catch(...) - { - if (_M_name_timepunct != _S_get_c_name()) - delete [] _M_name_timepunct; - throw; - } - } - - template - __timepunct<_CharT>::~__timepunct() - { - if (_M_name_timepunct != _S_get_c_name()) - delete [] _M_name_timepunct; - delete _M_data; - _S_destroy_c_locale(_M_c_locale_timepunct); - } - - -} -# 347 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - -namespace __cxx11 { -# 367 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - template - class time_get : public locale::facet, public time_base - { - public: - - - - typedef _CharT char_type; - typedef _InIter iter_type; - - - - static locale::id id; -# 388 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - explicit - time_get(size_t __refs = 0) - : facet (__refs) { } -# 405 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - dateorder - date_order() const - { return this->do_date_order(); } -# 429 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - iter_type - get_time(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm) const - { return this->do_get_time(__beg, __end, __io, __err, __tm); } -# 454 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - iter_type - get_date(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm) const - { return this->do_get_date(__beg, __end, __io, __err, __tm); } -# 482 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - iter_type - get_weekday(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm) const - { return this->do_get_weekday(__beg, __end, __io, __err, __tm); } -# 511 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - iter_type - get_monthname(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm) const - { return this->do_get_monthname(__beg, __end, __io, __err, __tm); } -# 537 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - iter_type - get_year(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm) const - { return this->do_get_year(__beg, __end, __io, __err, __tm); } -# 558 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - inline - iter_type get(iter_type __s, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm, char __format, - char __modifier = 0) const - { - return this->do_get(__s, __end, __io, __err, __tm, __format, - __modifier); - } -# 585 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - iter_type get(iter_type __s, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm, const char_type* __fmt, - const char_type* __fmtend) const; - - - protected: - - virtual - ~time_get() { } -# 605 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual dateorder - do_date_order() const; -# 623 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual iter_type - do_get_time(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm) const; -# 642 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual iter_type - do_get_date(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm) const; -# 661 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual iter_type - do_get_weekday(iter_type __beg, iter_type __end, ios_base&, - ios_base::iostate& __err, tm* __tm) const; -# 680 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual iter_type - do_get_monthname(iter_type __beg, iter_type __end, ios_base&, - ios_base::iostate& __err, tm* __tm) const; -# 699 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual iter_type - do_get_year(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm) const; -# 722 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual - - iter_type - do_get(iter_type __s, iter_type __end, ios_base& __f, - ios_base::iostate& __err, tm* __tm, - char __format, char __modifier) const; - - - - iter_type - _M_extract_num(iter_type __beg, iter_type __end, int& __member, - int __min, int __max, size_t __len, - ios_base& __io, ios_base::iostate& __err) const; - - - iter_type - _M_extract_name(iter_type __beg, iter_type __end, int& __member, - const _CharT** __names, size_t __indexlen, - ios_base& __io, ios_base::iostate& __err) const; - - - iter_type - _M_extract_wday_or_month(iter_type __beg, iter_type __end, int& __member, - const _CharT** __names, size_t __indexlen, - ios_base& __io, ios_base::iostate& __err) const; - - - iter_type - _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm, - const _CharT* __format) const; - }; - - template - locale::id time_get<_CharT, _InIter>::id; - - - template - class time_get_byname : public time_get<_CharT, _InIter> - { - public: - - typedef _CharT char_type; - typedef _InIter iter_type; - - explicit - time_get_byname(const char*, size_t __refs = 0) - : time_get<_CharT, _InIter>(__refs) { } - - - explicit - time_get_byname(const string& __s, size_t __refs = 0) - : time_get_byname(__s.c_str(), __refs) { } - - - protected: - virtual - ~time_get_byname() { } - }; - -} -# 796 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - template - class time_put : public locale::facet - { - public: - - - - typedef _CharT char_type; - typedef _OutIter iter_type; - - - - static locale::id id; -# 817 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - explicit - time_put(size_t __refs = 0) - : facet(__refs) { } -# 836 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, - const _CharT* __beg, const _CharT* __end) const; -# 856 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, - const tm* __tm, char __format, char __mod = 0) const - { return this->do_put(__s, __io, __fill, __tm, __format, __mod); } - - protected: - - virtual - ~time_put() - { } -# 883 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual iter_type - do_put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, - char __format, char __mod) const; - }; - - template - locale::id time_put<_CharT, _OutIter>::id; - - - template - class time_put_byname : public time_put<_CharT, _OutIter> - { - public: - - typedef _CharT char_type; - typedef _OutIter iter_type; - - explicit - time_put_byname(const char*, size_t __refs = 0) - : time_put<_CharT, _OutIter>(__refs) - { } - - - explicit - time_put_byname(const string& __s, size_t __refs = 0) - : time_put_byname(__s.c_str(), __refs) { } - - - protected: - virtual - ~time_put_byname() { } - }; -# 928 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - class money_base - { - public: - enum part { none, space, symbol, sign, value }; - struct pattern { char field[4]; }; - - static const pattern _S_default_pattern; - - enum - { - _S_minus, - _S_zero, - _S_end = 11 - }; - - - - static const char* _S_atoms; - - - - __attribute__ ((__const__)) static pattern - _S_construct_pattern(char __precedes, char __space, char __posn) throw (); - }; - - template - struct __moneypunct_cache : public locale::facet - { - const char* _M_grouping; - size_t _M_grouping_size; - bool _M_use_grouping; - _CharT _M_decimal_point; - _CharT _M_thousands_sep; - const _CharT* _M_curr_symbol; - size_t _M_curr_symbol_size; - const _CharT* _M_positive_sign; - size_t _M_positive_sign_size; - const _CharT* _M_negative_sign; - size_t _M_negative_sign_size; - int _M_frac_digits; - money_base::pattern _M_pos_format; - money_base::pattern _M_neg_format; - - - - - _CharT _M_atoms[money_base::_S_end]; - - bool _M_allocated; - - __moneypunct_cache(size_t __refs = 0) : facet(__refs), - _M_grouping(0), _M_grouping_size(0), _M_use_grouping(false), - _M_decimal_point(_CharT()), _M_thousands_sep(_CharT()), - _M_curr_symbol(0), _M_curr_symbol_size(0), - _M_positive_sign(0), _M_positive_sign_size(0), - _M_negative_sign(0), _M_negative_sign_size(0), - _M_frac_digits(0), - _M_pos_format(money_base::pattern()), - _M_neg_format(money_base::pattern()), _M_allocated(false) - { } - - ~__moneypunct_cache(); - - void - _M_cache(const locale& __loc); - - private: - __moneypunct_cache& - operator=(const __moneypunct_cache&); - - explicit - __moneypunct_cache(const __moneypunct_cache&); - }; - - template - __moneypunct_cache<_CharT, _Intl>::~__moneypunct_cache() - { - if (_M_allocated) - { - delete [] _M_grouping; - delete [] _M_curr_symbol; - delete [] _M_positive_sign; - delete [] _M_negative_sign; - } - } - -namespace __cxx11 { -# 1023 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - template - class moneypunct : public locale::facet, public money_base - { - public: - - - - typedef _CharT char_type; - typedef basic_string<_CharT> string_type; - - typedef __moneypunct_cache<_CharT, _Intl> __cache_type; - - private: - __cache_type* _M_data; - - public: - - - static const bool intl = _Intl; - - static locale::id id; -# 1052 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - explicit - moneypunct(size_t __refs = 0) - : facet(__refs), _M_data(0) - { _M_initialize_moneypunct(); } -# 1065 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - explicit - moneypunct(__cache_type* __cache, size_t __refs = 0) - : facet(__refs), _M_data(__cache) - { _M_initialize_moneypunct(); } -# 1080 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - explicit - moneypunct(__c_locale __cloc, const char* __s, size_t __refs = 0) - : facet(__refs), _M_data(0) - { _M_initialize_moneypunct(__cloc, __s); } -# 1094 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - char_type - decimal_point() const - { return this->do_decimal_point(); } -# 1107 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - char_type - thousands_sep() const - { return this->do_thousands_sep(); } -# 1137 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - string - grouping() const - { return this->do_grouping(); } -# 1150 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - string_type - curr_symbol() const - { return this->do_curr_symbol(); } -# 1167 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - string_type - positive_sign() const - { return this->do_positive_sign(); } -# 1184 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - string_type - negative_sign() const - { return this->do_negative_sign(); } -# 1200 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - int - frac_digits() const - { return this->do_frac_digits(); } -# 1236 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - pattern - pos_format() const - { return this->do_pos_format(); } - - pattern - neg_format() const - { return this->do_neg_format(); } - - - protected: - - virtual - ~moneypunct(); -# 1258 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual char_type - do_decimal_point() const - { return _M_data->_M_decimal_point; } -# 1270 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual char_type - do_thousands_sep() const - { return _M_data->_M_thousands_sep; } -# 1283 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual string - do_grouping() const - { return _M_data->_M_grouping; } -# 1296 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual string_type - do_curr_symbol() const - { return _M_data->_M_curr_symbol; } -# 1309 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual string_type - do_positive_sign() const - { return _M_data->_M_positive_sign; } -# 1322 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual string_type - do_negative_sign() const - { return _M_data->_M_negative_sign; } -# 1336 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual int - do_frac_digits() const - { return _M_data->_M_frac_digits; } -# 1350 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual pattern - do_pos_format() const - { return _M_data->_M_pos_format; } -# 1364 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual pattern - do_neg_format() const - { return _M_data->_M_neg_format; } - - - void - _M_initialize_moneypunct(__c_locale __cloc = 0, - const char* __name = 0); - }; - - template - locale::id moneypunct<_CharT, _Intl>::id; - - template - const bool moneypunct<_CharT, _Intl>::intl; - - template<> - moneypunct::~moneypunct(); - - template<> - moneypunct::~moneypunct(); - - template<> - void - moneypunct::_M_initialize_moneypunct(__c_locale, const char*); - - template<> - void - moneypunct::_M_initialize_moneypunct(__c_locale, const char*); - - - template<> - moneypunct::~moneypunct(); - - template<> - moneypunct::~moneypunct(); - - template<> - void - moneypunct::_M_initialize_moneypunct(__c_locale, - const char*); - - template<> - void - moneypunct::_M_initialize_moneypunct(__c_locale, - const char*); - - - - template - class moneypunct_byname : public moneypunct<_CharT, _Intl> - { - public: - typedef _CharT char_type; - typedef basic_string<_CharT> string_type; - - static const bool intl = _Intl; - - explicit - moneypunct_byname(const char* __s, size_t __refs = 0) - : moneypunct<_CharT, _Intl>(__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_moneypunct(__tmp); - this->_S_destroy_c_locale(__tmp); - } - } - - - explicit - moneypunct_byname(const string& __s, size_t __refs = 0) - : moneypunct_byname(__s.c_str(), __refs) { } - - - protected: - virtual - ~moneypunct_byname() { } - }; - - template - const bool moneypunct_byname<_CharT, _Intl>::intl; - -} - -namespace __cxx11 { -# 1467 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - template - class money_get : public locale::facet - { - public: - - - - typedef _CharT char_type; - typedef _InIter iter_type; - typedef basic_string<_CharT> string_type; - - - - static locale::id id; -# 1489 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - explicit - money_get(size_t __refs = 0) : facet(__refs) { } -# 1519 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - iter_type - get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, - ios_base::iostate& __err, long double& __units) const - { return this->do_get(__s, __end, __intl, __io, __err, __units); } -# 1550 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - iter_type - get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, - ios_base::iostate& __err, string_type& __digits) const - { return this->do_get(__s, __end, __intl, __io, __err, __digits); } - - protected: - - virtual - ~money_get() { } -# 1574 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual iter_type - do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, - ios_base::iostate& __err, long double& __units) const; -# 1586 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual iter_type - do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, - ios_base::iostate& __err, string_type& __digits) const; -# 1598 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - template - iter_type - _M_extract(iter_type __s, iter_type __end, ios_base& __io, - ios_base::iostate& __err, string& __digits) const; - }; - - template - locale::id money_get<_CharT, _InIter>::id; -# 1620 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - template - class money_put : public locale::facet - { - public: - - - typedef _CharT char_type; - typedef _OutIter iter_type; - typedef basic_string<_CharT> string_type; - - - - static locale::id id; -# 1641 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - explicit - money_put(size_t __refs = 0) : facet(__refs) { } -# 1661 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - iter_type - put(iter_type __s, bool __intl, ios_base& __io, - char_type __fill, long double __units) const - { return this->do_put(__s, __intl, __io, __fill, __units); } -# 1684 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - iter_type - put(iter_type __s, bool __intl, ios_base& __io, - char_type __fill, const string_type& __digits) const - { return this->do_put(__s, __intl, __io, __fill, __digits); } - - protected: - - virtual - ~money_put() { } -# 1719 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual iter_type - do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, - long double __units) const; -# 1743 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual iter_type - do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, - const string_type& __digits) const; -# 1755 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - template - iter_type - _M_insert(iter_type __s, ios_base& __io, char_type __fill, - const string_type& __digits) const; - }; - - template - locale::id money_put<_CharT, _OutIter>::id; - -} - - - - - - struct messages_base - { - typedef int catalog; - }; - -namespace __cxx11 { -# 1798 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - template - class messages : public locale::facet, public messages_base - { - public: - - - - typedef _CharT char_type; - typedef basic_string<_CharT> string_type; - - - protected: - - - __c_locale _M_c_locale_messages; - const char* _M_name_messages; - - public: - - static locale::id id; -# 1826 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - explicit - messages(size_t __refs = 0); -# 1840 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - explicit - messages(__c_locale __cloc, const char* __s, size_t __refs = 0); -# 1853 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - catalog - open(const basic_string& __s, const locale& __loc) const - { return this->do_open(__s, __loc); } -# 1871 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - catalog - open(const basic_string&, const locale&, const char*) const; -# 1889 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - string_type - get(catalog __c, int __set, int __msgid, const string_type& __s) const - { return this->do_get(__c, __set, __msgid, __s); } -# 1900 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - void - close(catalog __c) const - { return this->do_close(__c); } - - protected: - - virtual - ~messages(); -# 1920 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual catalog - do_open(const basic_string&, const locale&) const; -# 1939 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 3 - virtual string_type - do_get(catalog, int, int, const string_type& __dfault) const; - - - - - - - virtual void - do_close(catalog) const; - - - char* - _M_convert_to_char(const string_type& __msg) const - { - - return reinterpret_cast(const_cast<_CharT*>(__msg.c_str())); - } - - - string_type - _M_convert_from_char(char*) const - { - - return string_type(); - } - }; - - template - locale::id messages<_CharT>::id; - - - template<> - string - messages::do_get(catalog, int, int, const string&) const; - - - template<> - wstring - messages::do_get(catalog, int, int, const wstring&) const; - - - - template - class messages_byname : public messages<_CharT> - { - public: - typedef _CharT char_type; - typedef basic_string<_CharT> string_type; - - explicit - messages_byname(const char* __s, size_t __refs = 0); - - - explicit - messages_byname(const string& __s, size_t __refs = 0) - : messages_byname(__s.c_str(), __refs) { } - - - protected: - virtual - ~messages_byname() - { } - }; - -} - - -} - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/messages_members.h" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/messages_members.h" 3 -# 1 "/usr/include/libintl.h" 1 3 4 -# 34 "/usr/include/libintl.h" 3 4 -extern "C" { - - - - -extern char *gettext (const char *__msgid) - throw () __attribute__ ((__format_arg__ (1))); - - - -extern char *dgettext (const char *__domainname, const char *__msgid) - throw () __attribute__ ((__format_arg__ (2))); -extern char *__dgettext (const char *__domainname, const char *__msgid) - throw () __attribute__ ((__format_arg__ (2))); - - - -extern char *dcgettext (const char *__domainname, - const char *__msgid, int __category) - throw () __attribute__ ((__format_arg__ (2))); -extern char *__dcgettext (const char *__domainname, - const char *__msgid, int __category) - throw () __attribute__ ((__format_arg__ (2))); - - - - -extern char *ngettext (const char *__msgid1, const char *__msgid2, - unsigned long int __n) - throw () __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2))); - - - -extern char *dngettext (const char *__domainname, const char *__msgid1, - const char *__msgid2, unsigned long int __n) - throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); - - - -extern char *dcngettext (const char *__domainname, const char *__msgid1, - const char *__msgid2, unsigned long int __n, - int __category) - throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); - - - - - -extern char *textdomain (const char *__domainname) throw (); - - - -extern char *bindtextdomain (const char *__domainname, - const char *__dirname) throw (); - - - -extern char *bind_textdomain_codeset (const char *__domainname, - const char *__codeset) throw (); -# 121 "/usr/include/libintl.h" 3 4 -} -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/messages_members.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - template - messages<_CharT>::messages(size_t __refs) - : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), - _M_name_messages(_S_get_c_name()) - { } - - template - messages<_CharT>::messages(__c_locale __cloc, const char* __s, - size_t __refs) - : facet(__refs), _M_c_locale_messages(0), _M_name_messages(0) - { - if (__builtin_strcmp(__s, _S_get_c_name()) != 0) - { - const size_t __len = __builtin_strlen(__s) + 1; - char* __tmp = new char[__len]; - __builtin_memcpy(__tmp, __s, __len); - _M_name_messages = __tmp; - } - else - _M_name_messages = _S_get_c_name(); - - - _M_c_locale_messages = _S_clone_c_locale(__cloc); - } - - template - typename messages<_CharT>::catalog - messages<_CharT>::open(const basic_string& __s, const locale& __loc, - const char* __dir) const - { - bindtextdomain(__s.c_str(), __dir); - return this->do_open(__s, __loc); - } - - - template - messages<_CharT>::~messages() - { - if (_M_name_messages != _S_get_c_name()) - delete [] _M_name_messages; - _S_destroy_c_locale(_M_c_locale_messages); - } - - template - typename messages<_CharT>::catalog - messages<_CharT>::do_open(const basic_string& __s, - const locale&) const - { - - - textdomain(__s.c_str()); - return 0; - } - - template - void - messages<_CharT>::do_close(catalog) const - { } - - - template - messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) - : messages<_CharT>(__refs) - { - if (this->_M_name_messages != locale::facet::_S_get_c_name()) - { - delete [] this->_M_name_messages; - if (__builtin_strcmp(__s, locale::facet::_S_get_c_name()) != 0) - { - const size_t __len = __builtin_strlen(__s) + 1; - char* __tmp = new char[__len]; - __builtin_memcpy(__tmp, __s, __len); - this->_M_name_messages = __tmp; - } - else - this->_M_name_messages = locale::facet::_S_get_c_name(); - } - - if (__builtin_strcmp(__s, "C") != 0 - && __builtin_strcmp(__s, "POSIX") != 0) - { - this->_S_destroy_c_locale(this->_M_c_locale_messages); - this->_S_create_c_locale(this->_M_c_locale_messages, __s); - } - } - - - template<> - typename messages::catalog - messages::do_open(const basic_string&, - const locale&) const; - - template<> - void - messages::do_close(catalog) const; - - - template<> - typename messages::catalog - messages::do_open(const basic_string&, - const locale&) const; - - template<> - void - messages::do_close(catalog) const; - - - -} -# 2011 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 2 3 - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/codecvt.h" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/codecvt.h" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/codecvt.h" 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - class codecvt_base - { - public: - enum result - { - ok, - partial, - error, - noconv - }; - }; -# 67 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/codecvt.h" 3 - template - class __codecvt_abstract_base - : public locale::facet, public codecvt_base - { - public: - - typedef codecvt_base::result result; - typedef _InternT intern_type; - typedef _ExternT extern_type; - typedef _StateT state_type; -# 115 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/codecvt.h" 3 - result - out(state_type& __state, const intern_type* __from, - const intern_type* __from_end, const intern_type*& __from_next, - extern_type* __to, extern_type* __to_end, - extern_type*& __to_next) const - { - return this->do_out(__state, __from, __from_end, __from_next, - __to, __to_end, __to_next); - } -# 154 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/codecvt.h" 3 - result - unshift(state_type& __state, extern_type* __to, extern_type* __to_end, - extern_type*& __to_next) const - { return this->do_unshift(__state, __to,__to_end,__to_next); } -# 195 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/codecvt.h" 3 - result - in(state_type& __state, const extern_type* __from, - const extern_type* __from_end, const extern_type*& __from_next, - intern_type* __to, intern_type* __to_end, - intern_type*& __to_next) const - { - return this->do_in(__state, __from, __from_end, __from_next, - __to, __to_end, __to_next); - } - - int - encoding() const throw() - { return this->do_encoding(); } - - bool - always_noconv() const throw() - { return this->do_always_noconv(); } - - int - length(state_type& __state, const extern_type* __from, - const extern_type* __end, size_t __max) const - { return this->do_length(__state, __from, __end, __max); } - - int - max_length() const throw() - { return this->do_max_length(); } - - protected: - explicit - __codecvt_abstract_base(size_t __refs = 0) : locale::facet(__refs) { } - - virtual - ~__codecvt_abstract_base() { } -# 236 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/codecvt.h" 3 - virtual result - do_out(state_type& __state, const intern_type* __from, - const intern_type* __from_end, const intern_type*& __from_next, - extern_type* __to, extern_type* __to_end, - extern_type*& __to_next) const = 0; - - virtual result - do_unshift(state_type& __state, extern_type* __to, - extern_type* __to_end, extern_type*& __to_next) const = 0; - - virtual result - do_in(state_type& __state, const extern_type* __from, - const extern_type* __from_end, const extern_type*& __from_next, - intern_type* __to, intern_type* __to_end, - intern_type*& __to_next) const = 0; - - virtual int - do_encoding() const throw() = 0; - - virtual bool - do_always_noconv() const throw() = 0; - - virtual int - do_length(state_type&, const extern_type* __from, - const extern_type* __end, size_t __max) const = 0; - - virtual int - do_max_length() const throw() = 0; - }; -# 273 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/codecvt.h" 3 - template - class codecvt - : public __codecvt_abstract_base<_InternT, _ExternT, _StateT> - { - public: - - typedef codecvt_base::result result; - typedef _InternT intern_type; - typedef _ExternT extern_type; - typedef _StateT state_type; - - protected: - __c_locale _M_c_locale_codecvt; - - public: - static locale::id id; - - explicit - codecvt(size_t __refs = 0) - : __codecvt_abstract_base<_InternT, _ExternT, _StateT> (__refs), - _M_c_locale_codecvt(0) - { } - - explicit - codecvt(__c_locale __cloc, size_t __refs = 0); - - protected: - virtual - ~codecvt() { } - - virtual result - do_out(state_type& __state, const intern_type* __from, - const intern_type* __from_end, const intern_type*& __from_next, - extern_type* __to, extern_type* __to_end, - extern_type*& __to_next) const; - - virtual result - do_unshift(state_type& __state, extern_type* __to, - extern_type* __to_end, extern_type*& __to_next) const; - - virtual result - do_in(state_type& __state, const extern_type* __from, - const extern_type* __from_end, const extern_type*& __from_next, - intern_type* __to, intern_type* __to_end, - intern_type*& __to_next) const; - - virtual int - do_encoding() const throw(); - - virtual bool - do_always_noconv() const throw(); - - virtual int - do_length(state_type&, const extern_type* __from, - const extern_type* __end, size_t __max) const; - - virtual int - do_max_length() const throw(); - }; - - template - locale::id codecvt<_InternT, _ExternT, _StateT>::id; - - - template<> - class codecvt - : public __codecvt_abstract_base - { - friend class messages; - - public: - - typedef char intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - protected: - __c_locale _M_c_locale_codecvt; - - public: - static locale::id id; - - explicit - codecvt(size_t __refs = 0); - - explicit - codecvt(__c_locale __cloc, size_t __refs = 0); - - protected: - virtual - ~codecvt(); - - virtual result - do_out(state_type& __state, const intern_type* __from, - const intern_type* __from_end, const intern_type*& __from_next, - extern_type* __to, extern_type* __to_end, - extern_type*& __to_next) const; - - virtual result - do_unshift(state_type& __state, extern_type* __to, - extern_type* __to_end, extern_type*& __to_next) const; - - virtual result - do_in(state_type& __state, const extern_type* __from, - const extern_type* __from_end, const extern_type*& __from_next, - intern_type* __to, intern_type* __to_end, - intern_type*& __to_next) const; - - virtual int - do_encoding() const throw(); - - virtual bool - do_always_noconv() const throw(); - - virtual int - do_length(state_type&, const extern_type* __from, - const extern_type* __end, size_t __max) const; - - virtual int - do_max_length() const throw(); - }; - - - - - - - template<> - class codecvt - : public __codecvt_abstract_base - { - friend class messages; - - public: - - typedef wchar_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - protected: - __c_locale _M_c_locale_codecvt; - - public: - static locale::id id; - - explicit - codecvt(size_t __refs = 0); - - explicit - codecvt(__c_locale __cloc, size_t __refs = 0); - - protected: - virtual - ~codecvt(); - - virtual result - do_out(state_type& __state, const intern_type* __from, - const intern_type* __from_end, const intern_type*& __from_next, - extern_type* __to, extern_type* __to_end, - extern_type*& __to_next) const; - - virtual result - do_unshift(state_type& __state, - extern_type* __to, extern_type* __to_end, - extern_type*& __to_next) const; - - virtual result - do_in(state_type& __state, - const extern_type* __from, const extern_type* __from_end, - const extern_type*& __from_next, - intern_type* __to, intern_type* __to_end, - intern_type*& __to_next) const; - - virtual - int do_encoding() const throw(); - - virtual - bool do_always_noconv() const throw(); - - virtual - int do_length(state_type&, const extern_type* __from, - const extern_type* __end, size_t __max) const; - - virtual int - do_max_length() const throw(); - }; - - - - - - - - template<> - class codecvt - : public __codecvt_abstract_base - { - public: - - typedef char16_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - public: - static locale::id id; - - explicit - codecvt(size_t __refs = 0) - : __codecvt_abstract_base(__refs) { } - - protected: - virtual - ~codecvt(); - - virtual result - do_out(state_type& __state, const intern_type* __from, - const intern_type* __from_end, const intern_type*& __from_next, - extern_type* __to, extern_type* __to_end, - extern_type*& __to_next) const; - - virtual result - do_unshift(state_type& __state, - extern_type* __to, extern_type* __to_end, - extern_type*& __to_next) const; - - virtual result - do_in(state_type& __state, - const extern_type* __from, const extern_type* __from_end, - const extern_type*& __from_next, - intern_type* __to, intern_type* __to_end, - intern_type*& __to_next) const; - - virtual - int do_encoding() const throw(); - - virtual - bool do_always_noconv() const throw(); - - virtual - int do_length(state_type&, const extern_type* __from, - const extern_type* __end, size_t __max) const; - - virtual int - do_max_length() const throw(); - }; - - - - - - template<> - class codecvt - : public __codecvt_abstract_base - { - public: - - typedef char32_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - public: - static locale::id id; - - explicit - codecvt(size_t __refs = 0) - : __codecvt_abstract_base(__refs) { } - - protected: - virtual - ~codecvt(); - - virtual result - do_out(state_type& __state, const intern_type* __from, - const intern_type* __from_end, const intern_type*& __from_next, - extern_type* __to, extern_type* __to_end, - extern_type*& __to_next) const; - - virtual result - do_unshift(state_type& __state, - extern_type* __to, extern_type* __to_end, - extern_type*& __to_next) const; - - virtual result - do_in(state_type& __state, - const extern_type* __from, const extern_type* __from_end, - const extern_type*& __from_next, - intern_type* __to, intern_type* __to_end, - intern_type*& __to_next) const; - - virtual - int do_encoding() const throw(); - - virtual - bool do_always_noconv() const throw(); - - virtual - int do_length(state_type&, const extern_type* __from, - const extern_type* __end, size_t __max) const; - - virtual int - do_max_length() const throw(); - }; -# 695 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/codecvt.h" 3 - template - class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT> - { - public: - explicit - codecvt_byname(const char* __s, size_t __refs = 0) - : codecvt<_InternT, _ExternT, _StateT>(__refs) - { - if (__builtin_strcmp(__s, "C") != 0 - && __builtin_strcmp(__s, "POSIX") != 0) - { - this->_S_destroy_c_locale(this->_M_c_locale_codecvt); - this->_S_create_c_locale(this->_M_c_locale_codecvt, __s); - } - } - - - explicit - codecvt_byname(const string& __s, size_t __refs = 0) - : codecvt_byname(__s.c_str(), __refs) { } - - - protected: - virtual - ~codecvt_byname() { } - }; - - - template<> - class codecvt_byname - : public codecvt - { - public: - explicit - codecvt_byname(const char*, size_t __refs = 0) - : codecvt(__refs) { } - - explicit - codecvt_byname(const string& __s, size_t __refs = 0) - : codecvt_byname(__s.c_str(), __refs) { } - - protected: - virtual - ~codecvt_byname() { } - }; - - template<> - class codecvt_byname - : public codecvt - { - public: - explicit - codecvt_byname(const char*, size_t __refs = 0) - : codecvt(__refs) { } - - explicit - codecvt_byname(const string& __s, size_t __refs = 0) - : codecvt_byname(__s.c_str(), __refs) { } - - protected: - virtual - ~codecvt_byname() { } - }; -# 802 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/codecvt.h" 3 - extern template class codecvt_byname; - - extern template - const codecvt& - use_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - - extern template class codecvt_byname; - - extern template - const codecvt& - use_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - - - extern template class codecvt_byname; - extern template class codecvt_byname; -# 837 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/codecvt.h" 3 - -} -# 2014 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 2 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.tcc" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.tcc" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.tcc" 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - template - struct __use_cache<__moneypunct_cache<_CharT, _Intl> > - { - const __moneypunct_cache<_CharT, _Intl>* - operator() (const locale& __loc) const - { - const size_t __i = moneypunct<_CharT, _Intl>::id._M_id(); - const locale::facet** __caches = __loc._M_impl->_M_caches; - if (!__caches[__i]) - { - __moneypunct_cache<_CharT, _Intl>* __tmp = 0; - try - { - __tmp = new __moneypunct_cache<_CharT, _Intl>; - __tmp->_M_cache(__loc); - } - catch(...) - { - delete __tmp; - throw; - } - __loc._M_impl->_M_install_cache(__tmp, __i); - } - return static_cast< - const __moneypunct_cache<_CharT, _Intl>*>(__caches[__i]); - } - }; - - template - void - __moneypunct_cache<_CharT, _Intl>::_M_cache(const locale& __loc) - { - const moneypunct<_CharT, _Intl>& __mp = - use_facet >(__loc); - - _M_decimal_point = __mp.decimal_point(); - _M_thousands_sep = __mp.thousands_sep(); - _M_frac_digits = __mp.frac_digits(); - - char* __grouping = 0; - _CharT* __curr_symbol = 0; - _CharT* __positive_sign = 0; - _CharT* __negative_sign = 0; - try - { - const string& __g = __mp.grouping(); - _M_grouping_size = __g.size(); - __grouping = new char[_M_grouping_size]; - __g.copy(__grouping, _M_grouping_size); - _M_use_grouping = (_M_grouping_size - && static_cast(__grouping[0]) > 0 - && (__grouping[0] - != __gnu_cxx::__numeric_traits::__max)); - - const basic_string<_CharT>& __cs = __mp.curr_symbol(); - _M_curr_symbol_size = __cs.size(); - __curr_symbol = new _CharT[_M_curr_symbol_size]; - __cs.copy(__curr_symbol, _M_curr_symbol_size); - - const basic_string<_CharT>& __ps = __mp.positive_sign(); - _M_positive_sign_size = __ps.size(); - __positive_sign = new _CharT[_M_positive_sign_size]; - __ps.copy(__positive_sign, _M_positive_sign_size); - - const basic_string<_CharT>& __ns = __mp.negative_sign(); - _M_negative_sign_size = __ns.size(); - __negative_sign = new _CharT[_M_negative_sign_size]; - __ns.copy(__negative_sign, _M_negative_sign_size); - - _M_pos_format = __mp.pos_format(); - _M_neg_format = __mp.neg_format(); - - const ctype<_CharT>& __ct = use_facet >(__loc); - __ct.widen(money_base::_S_atoms, - money_base::_S_atoms + money_base::_S_end, _M_atoms); - - _M_grouping = __grouping; - _M_curr_symbol = __curr_symbol; - _M_positive_sign = __positive_sign; - _M_negative_sign = __negative_sign; - _M_allocated = true; - } - catch(...) - { - delete [] __grouping; - delete [] __curr_symbol; - delete [] __positive_sign; - delete [] __negative_sign; - throw; - } - } - -namespace __cxx11 { - - template - template - _InIter - money_get<_CharT, _InIter>:: - _M_extract(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, string& __units) const - { - typedef char_traits<_CharT> __traits_type; - typedef typename string_type::size_type size_type; - typedef money_base::part part; - typedef __moneypunct_cache<_CharT, _Intl> __cache_type; - - const locale& __loc = __io._M_getloc(); - const ctype<_CharT>& __ctype = use_facet >(__loc); - - __use_cache<__cache_type> __uc; - const __cache_type* __lc = __uc(__loc); - const char_type* __lit = __lc->_M_atoms; - - - bool __negative = false; - - size_type __sign_size = 0; - - const bool __mandatory_sign = (__lc->_M_positive_sign_size - && __lc->_M_negative_sign_size); - - string __grouping_tmp; - if (__lc->_M_use_grouping) - __grouping_tmp.reserve(32); - - int __last_pos = 0; - - int __n = 0; - - bool __testvalid = true; - - bool __testdecfound = false; - - - string __res; - __res.reserve(32); - - const char_type* __lit_zero = __lit + money_base::_S_zero; - const money_base::pattern __p = __lc->_M_neg_format; - for (int __i = 0; __i < 4 && __testvalid; ++__i) - { - const part __which = static_cast(__p.field[__i]); - switch (__which) - { - case money_base::symbol: - - - - - if (__io.flags() & ios_base::showbase || __sign_size > 1 - || __i == 0 - || (__i == 1 && (__mandatory_sign - || (static_cast(__p.field[0]) - == money_base::sign) - || (static_cast(__p.field[2]) - == money_base::space))) - || (__i == 2 && ((static_cast(__p.field[3]) - == money_base::value) - || (__mandatory_sign - && (static_cast(__p.field[3]) - == money_base::sign))))) - { - const size_type __len = __lc->_M_curr_symbol_size; - size_type __j = 0; - for (; __beg != __end && __j < __len - && *__beg == __lc->_M_curr_symbol[__j]; - ++__beg, (void)++__j); - if (__j != __len - && (__j || __io.flags() & ios_base::showbase)) - __testvalid = false; - } - break; - case money_base::sign: - - if (__lc->_M_positive_sign_size && __beg != __end - && *__beg == __lc->_M_positive_sign[0]) - { - __sign_size = __lc->_M_positive_sign_size; - ++__beg; - } - else if (__lc->_M_negative_sign_size && __beg != __end - && *__beg == __lc->_M_negative_sign[0]) - { - __negative = true; - __sign_size = __lc->_M_negative_sign_size; - ++__beg; - } - else if (__lc->_M_positive_sign_size - && !__lc->_M_negative_sign_size) - - - __negative = true; - else if (__mandatory_sign) - __testvalid = false; - break; - case money_base::value: - - - for (; __beg != __end; ++__beg) - { - const char_type __c = *__beg; - const char_type* __q = __traits_type::find(__lit_zero, - 10, __c); - if (__q != 0) - { - __res += money_base::_S_atoms[__q - __lit]; - ++__n; - } - else if (__c == __lc->_M_decimal_point - && !__testdecfound) - { - if (__lc->_M_frac_digits <= 0) - break; - - __last_pos = __n; - __n = 0; - __testdecfound = true; - } - else if (__lc->_M_use_grouping - && __c == __lc->_M_thousands_sep - && !__testdecfound) - { - if (__n) - { - - __grouping_tmp += static_cast(__n); - __n = 0; - } - else - { - __testvalid = false; - break; - } - } - else - break; - } - if (__res.empty()) - __testvalid = false; - break; - case money_base::space: - - if (__beg != __end && __ctype.is(ctype_base::space, *__beg)) - ++__beg; - else - __testvalid = false; - - case money_base::none: - - if (__i != 3) - for (; __beg != __end - && __ctype.is(ctype_base::space, *__beg); ++__beg); - break; - } - } - - - if (__sign_size > 1 && __testvalid) - { - const char_type* __sign = __negative ? __lc->_M_negative_sign - : __lc->_M_positive_sign; - size_type __i = 1; - for (; __beg != __end && __i < __sign_size - && *__beg == __sign[__i]; ++__beg, (void)++__i); - - if (__i != __sign_size) - __testvalid = false; - } - - if (__testvalid) - { - - if (__res.size() > 1) - { - const size_type __first = __res.find_first_not_of('0'); - const bool __only_zeros = __first == string::npos; - if (__first) - __res.erase(0, __only_zeros ? __res.size() - 1 : __first); - } - - - if (__negative && __res[0] != '0') - __res.insert(__res.begin(), '-'); - - - if (__grouping_tmp.size()) - { - - __grouping_tmp += static_cast(__testdecfound ? __last_pos - : __n); - if (!std::__verify_grouping(__lc->_M_grouping, - __lc->_M_grouping_size, - __grouping_tmp)) - __err |= ios_base::failbit; - } - - - if (__testdecfound && __n != __lc->_M_frac_digits) - __testvalid = false; - } - - - if (!__testvalid) - __err |= ios_base::failbit; - else - __units.swap(__res); - - - if (__beg == __end) - __err |= ios_base::eofbit; - return __beg; - } -# 368 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.tcc" 3 - template - _InIter - money_get<_CharT, _InIter>:: - do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, - ios_base::iostate& __err, long double& __units) const - { - string __str; - __beg = __intl ? _M_extract(__beg, __end, __io, __err, __str) - : _M_extract(__beg, __end, __io, __err, __str); - std::__convert_to_v(__str.c_str(), __units, __err, _S_get_c_locale()); - return __beg; - } - - template - _InIter - money_get<_CharT, _InIter>:: - do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, - ios_base::iostate& __err, string_type& __digits) const - { - typedef typename string::size_type size_type; - - const locale& __loc = __io._M_getloc(); - const ctype<_CharT>& __ctype = use_facet >(__loc); - - string __str; - __beg = __intl ? _M_extract(__beg, __end, __io, __err, __str) - : _M_extract(__beg, __end, __io, __err, __str); - const size_type __len = __str.size(); - if (__len) - { - __digits.resize(__len); - __ctype.widen(__str.data(), __str.data() + __len, &__digits[0]); - } - return __beg; - } - - template - template - _OutIter - money_put<_CharT, _OutIter>:: - _M_insert(iter_type __s, ios_base& __io, char_type __fill, - const string_type& __digits) const - { - typedef typename string_type::size_type size_type; - typedef money_base::part part; - typedef __moneypunct_cache<_CharT, _Intl> __cache_type; - - const locale& __loc = __io._M_getloc(); - const ctype<_CharT>& __ctype = use_facet >(__loc); - - __use_cache<__cache_type> __uc; - const __cache_type* __lc = __uc(__loc); - const char_type* __lit = __lc->_M_atoms; - - - - const char_type* __beg = __digits.data(); - - money_base::pattern __p; - const char_type* __sign; - size_type __sign_size; - if (!(*__beg == __lit[money_base::_S_minus])) - { - __p = __lc->_M_pos_format; - __sign = __lc->_M_positive_sign; - __sign_size = __lc->_M_positive_sign_size; - } - else - { - __p = __lc->_M_neg_format; - __sign = __lc->_M_negative_sign; - __sign_size = __lc->_M_negative_sign_size; - if (__digits.size()) - ++__beg; - } - - - size_type __len = __ctype.scan_not(ctype_base::digit, __beg, - __beg + __digits.size()) - __beg; - if (__len) - { - - - - string_type __value; - __value.reserve(2 * __len); - - - - long __paddec = __len - __lc->_M_frac_digits; - if (__paddec > 0) - { - if (__lc->_M_frac_digits < 0) - __paddec = __len; - if (__lc->_M_grouping_size) - { - __value.assign(2 * __paddec, char_type()); - _CharT* __vend = - std::__add_grouping(&__value[0], __lc->_M_thousands_sep, - __lc->_M_grouping, - __lc->_M_grouping_size, - __beg, __beg + __paddec); - __value.erase(__vend - &__value[0]); - } - else - __value.assign(__beg, __paddec); - } - - - if (__lc->_M_frac_digits > 0) - { - __value += __lc->_M_decimal_point; - if (__paddec >= 0) - __value.append(__beg + __paddec, __lc->_M_frac_digits); - else - { - - __value.append(-__paddec, __lit[money_base::_S_zero]); - __value.append(__beg, __len); - } - } - - - const ios_base::fmtflags __f = __io.flags() - & ios_base::adjustfield; - __len = __value.size() + __sign_size; - __len += ((__io.flags() & ios_base::showbase) - ? __lc->_M_curr_symbol_size : 0); - - string_type __res; - __res.reserve(2 * __len); - - const size_type __width = static_cast(__io.width()); - const bool __testipad = (__f == ios_base::internal - && __len < __width); - - for (int __i = 0; __i < 4; ++__i) - { - const part __which = static_cast(__p.field[__i]); - switch (__which) - { - case money_base::symbol: - if (__io.flags() & ios_base::showbase) - __res.append(__lc->_M_curr_symbol, - __lc->_M_curr_symbol_size); - break; - case money_base::sign: - - - - if (__sign_size) - __res += __sign[0]; - break; - case money_base::value: - __res += __value; - break; - case money_base::space: - - - - if (__testipad) - __res.append(__width - __len, __fill); - else - __res += __fill; - break; - case money_base::none: - if (__testipad) - __res.append(__width - __len, __fill); - break; - } - } - - - if (__sign_size > 1) - __res.append(__sign + 1, __sign_size - 1); - - - __len = __res.size(); - if (__width > __len) - { - if (__f == ios_base::left) - - __res.append(__width - __len, __fill); - else - - __res.insert(0, __width - __len, __fill); - __len = __width; - } - - - __s = std::__write(__s, __res.data(), __len); - } - __io.width(0); - return __s; - } -# 574 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.tcc" 3 - template - _OutIter - money_put<_CharT, _OutIter>:: - do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, - long double __units) const - { - const locale __loc = __io.getloc(); - const ctype<_CharT>& __ctype = use_facet >(__loc); - - - int __cs_size = 64; - char* __cs = static_cast(__builtin_alloca(__cs_size)); - - - int __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, - "%.*Lf", 0, __units); - - 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, - "%.*Lf", 0, __units); - } -# 606 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.tcc" 3 - string_type __digits(__len, char_type()); - __ctype.widen(__cs, __cs + __len, &__digits[0]); - return __intl ? _M_insert(__s, __io, __fill, __digits) - : _M_insert(__s, __io, __fill, __digits); - } - - template - _OutIter - money_put<_CharT, _OutIter>:: - do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, - const string_type& __digits) const - { return __intl ? _M_insert(__s, __io, __fill, __digits) - : _M_insert(__s, __io, __fill, __digits); } - -} - - - - - template - time_base::dateorder - time_get<_CharT, _InIter>::do_date_order() const - { return time_base::no_order; } - - - - template - _InIter - time_get<_CharT, _InIter>:: - _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm, - const _CharT* __format) const - { - const locale& __loc = __io._M_getloc(); - const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); - const ctype<_CharT>& __ctype = use_facet >(__loc); - const size_t __len = char_traits<_CharT>::length(__format); - - ios_base::iostate __tmperr = ios_base::goodbit; - size_t __i = 0; - for (; __beg != __end && __i < __len && !__tmperr; ++__i) - { - if (__ctype.narrow(__format[__i], 0) == '%') - { - - char __c = __ctype.narrow(__format[++__i], 0); - int __mem = 0; - if (__c == 'E' || __c == 'O') - __c = __ctype.narrow(__format[++__i], 0); - switch (__c) - { - const char* __cs; - _CharT __wcs[10]; - case 'a': - - const char_type* __days1[7]; - __tp._M_days_abbreviated(__days1); - __beg = _M_extract_name(__beg, __end, __mem, __days1, - 7, __io, __tmperr); - if (!__tmperr) - __tm->tm_wday = __mem; - break; - case 'A': - - const char_type* __days2[7]; - __tp._M_days(__days2); - __beg = _M_extract_name(__beg, __end, __mem, __days2, - 7, __io, __tmperr); - if (!__tmperr) - __tm->tm_wday = __mem; - break; - case 'h': - case 'b': - - const char_type* __months1[12]; - __tp._M_months_abbreviated(__months1); - __beg = _M_extract_name(__beg, __end, __mem, - __months1, 12, __io, __tmperr); - if (!__tmperr) - __tm->tm_mon = __mem; - break; - case 'B': - - const char_type* __months2[12]; - __tp._M_months(__months2); - __beg = _M_extract_name(__beg, __end, __mem, - __months2, 12, __io, __tmperr); - if (!__tmperr) - __tm->tm_mon = __mem; - break; - case 'c': - - const char_type* __dt[2]; - __tp._M_date_time_formats(__dt); - __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, - __tm, __dt[0]); - break; - case 'd': - - __beg = _M_extract_num(__beg, __end, __mem, 1, 31, 2, - __io, __tmperr); - if (!__tmperr) - __tm->tm_mday = __mem; - break; - case 'e': - - - if (__ctype.is(ctype_base::space, *__beg)) - __beg = _M_extract_num(++__beg, __end, __mem, 1, 9, - 1, __io, __tmperr); - else - __beg = _M_extract_num(__beg, __end, __mem, 10, 31, - 2, __io, __tmperr); - if (!__tmperr) - __tm->tm_mday = __mem; - break; - case 'D': - - __cs = "%m/%d/%y"; - __ctype.widen(__cs, __cs + 9, __wcs); - __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, - __tm, __wcs); - break; - case 'H': - - __beg = _M_extract_num(__beg, __end, __mem, 0, 23, 2, - __io, __tmperr); - if (!__tmperr) - __tm->tm_hour = __mem; - break; - case 'I': - - __beg = _M_extract_num(__beg, __end, __mem, 1, 12, 2, - __io, __tmperr); - if (!__tmperr) - __tm->tm_hour = __mem; - break; - case 'm': - - __beg = _M_extract_num(__beg, __end, __mem, 1, 12, 2, - __io, __tmperr); - if (!__tmperr) - __tm->tm_mon = __mem - 1; - break; - case 'M': - - __beg = _M_extract_num(__beg, __end, __mem, 0, 59, 2, - __io, __tmperr); - if (!__tmperr) - __tm->tm_min = __mem; - break; - case 'n': - if (__ctype.narrow(*__beg, 0) == '\n') - ++__beg; - else - __tmperr |= ios_base::failbit; - break; - case 'R': - - __cs = "%H:%M"; - __ctype.widen(__cs, __cs + 6, __wcs); - __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, - __tm, __wcs); - break; - case 'S': - - - - __beg = _M_extract_num(__beg, __end, __mem, 0, 60, 2, - - - - __io, __tmperr); - if (!__tmperr) - __tm->tm_sec = __mem; - break; - case 't': - if (__ctype.narrow(*__beg, 0) == '\t') - ++__beg; - else - __tmperr |= ios_base::failbit; - break; - case 'T': - - __cs = "%H:%M:%S"; - __ctype.widen(__cs, __cs + 9, __wcs); - __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, - __tm, __wcs); - break; - case 'x': - - const char_type* __dates[2]; - __tp._M_date_formats(__dates); - __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, - __tm, __dates[0]); - break; - case 'X': - - const char_type* __times[2]; - __tp._M_time_formats(__times); - __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, - __tm, __times[0]); - break; - case 'y': - case 'C': - - case 'Y': - - - - - __beg = _M_extract_num(__beg, __end, __mem, 0, 9999, 4, - __io, __tmperr); - if (!__tmperr) - __tm->tm_year = __mem < 0 ? __mem + 100 : __mem - 1900; - break; - case 'Z': - - if (__ctype.is(ctype_base::upper, *__beg)) - { - int __tmp; - __beg = _M_extract_name(__beg, __end, __tmp, - __timepunct_cache<_CharT>::_S_timezones, - 14, __io, __tmperr); - - - if (__beg != __end && !__tmperr && __tmp == 0 - && (*__beg == __ctype.widen('-') - || *__beg == __ctype.widen('+'))) - { - __beg = _M_extract_num(__beg, __end, __tmp, 0, 23, 2, - __io, __tmperr); - __beg = _M_extract_num(__beg, __end, __tmp, 0, 59, 2, - __io, __tmperr); - } - } - else - __tmperr |= ios_base::failbit; - break; - default: - - __tmperr |= ios_base::failbit; - } - } - else - { - - if (__format[__i] == *__beg) - ++__beg; - else - __tmperr |= ios_base::failbit; - } - } - - if (__tmperr || __i != __len) - __err |= ios_base::failbit; - - return __beg; - } - - template - _InIter - time_get<_CharT, _InIter>:: - _M_extract_num(iter_type __beg, iter_type __end, int& __member, - int __min, int __max, size_t __len, - ios_base& __io, ios_base::iostate& __err) const - { - const locale& __loc = __io._M_getloc(); - const ctype<_CharT>& __ctype = use_facet >(__loc); - - - int __mult = __len == 2 ? 10 : (__len == 4 ? 1000 : 1); - - ++__min; - size_t __i = 0; - int __value = 0; - for (; __beg != __end && __i < __len; ++__beg, (void)++__i) - { - const char __c = __ctype.narrow(*__beg, '*'); - if (__c >= '0' && __c <= '9') - { - __value = __value * 10 + (__c - '0'); - const int __valuec = __value * __mult; - if (__valuec > __max || __valuec + __mult < __min) - break; - __mult /= 10; - } - else - break; - } - if (__i == __len) - __member = __value; - - else if (__len == 4 && __i == 2) - __member = __value - 100; - else - __err |= ios_base::failbit; - - return __beg; - } - - - - template - _InIter - time_get<_CharT, _InIter>:: - _M_extract_name(iter_type __beg, iter_type __end, int& __member, - const _CharT** __names, size_t __indexlen, - ios_base& __io, ios_base::iostate& __err) const - { - typedef char_traits<_CharT> __traits_type; - const locale& __loc = __io._M_getloc(); - const ctype<_CharT>& __ctype = use_facet >(__loc); - - int* __matches = static_cast(__builtin_alloca(sizeof(int) - * __indexlen)); - size_t __nmatches = 0; - size_t __pos = 0; - bool __testvalid = true; - const char_type* __name; - - - - - - if (__beg != __end) - { - const char_type __c = *__beg; - for (size_t __i1 = 0; __i1 < __indexlen; ++__i1) - if (__c == __names[__i1][0] - || __c == __ctype.toupper(__names[__i1][0])) - __matches[__nmatches++] = __i1; - } - - while (__nmatches > 1) - { - - size_t __minlen = __traits_type::length(__names[__matches[0]]); - for (size_t __i2 = 1; __i2 < __nmatches; ++__i2) - __minlen = std::min(__minlen, - __traits_type::length(__names[__matches[__i2]])); - ++__beg; - ++__pos; - if (__pos < __minlen && __beg != __end) - for (size_t __i3 = 0; __i3 < __nmatches;) - { - __name = __names[__matches[__i3]]; - if (!(__name[__pos] == *__beg)) - __matches[__i3] = __matches[--__nmatches]; - else - ++__i3; - } - else - break; - } - - if (__nmatches == 1) - { - - ++__beg; - ++__pos; - __name = __names[__matches[0]]; - const size_t __len = __traits_type::length(__name); - while (__pos < __len && __beg != __end && __name[__pos] == *__beg) - ++__beg, (void)++__pos; - - if (__len == __pos) - __member = __matches[0]; - else - __testvalid = false; - } - else - __testvalid = false; - if (!__testvalid) - __err |= ios_base::failbit; - - return __beg; - } - - template - _InIter - time_get<_CharT, _InIter>:: - _M_extract_wday_or_month(iter_type __beg, iter_type __end, int& __member, - const _CharT** __names, size_t __indexlen, - ios_base& __io, ios_base::iostate& __err) const - { - typedef char_traits<_CharT> __traits_type; - const locale& __loc = __io._M_getloc(); - const ctype<_CharT>& __ctype = use_facet >(__loc); - - int* __matches = static_cast(__builtin_alloca(2 * sizeof(int) - * __indexlen)); - size_t __nmatches = 0; - size_t* __matches_lengths = 0; - size_t __pos = 0; - - if (__beg != __end) - { - const char_type __c = *__beg; - for (size_t __i = 0; __i < 2 * __indexlen; ++__i) - if (__c == __names[__i][0] - || __c == __ctype.toupper(__names[__i][0])) - __matches[__nmatches++] = __i; - } - - if (__nmatches) - { - ++__beg; - ++__pos; - - __matches_lengths - = static_cast(__builtin_alloca(sizeof(size_t) - * __nmatches)); - for (size_t __i = 0; __i < __nmatches; ++__i) - __matches_lengths[__i] - = __traits_type::length(__names[__matches[__i]]); - } - - for (; __beg != __end; ++__beg, (void)++__pos) - { - size_t __nskipped = 0; - const char_type __c = *__beg; - for (size_t __i = 0; __i < __nmatches;) - { - const char_type* __name = __names[__matches[__i]]; - if (__pos >= __matches_lengths[__i]) - ++__nskipped, ++__i; - else if (!(__name[__pos] == __c)) - { - --__nmatches; - __matches[__i] = __matches[__nmatches]; - __matches_lengths[__i] = __matches_lengths[__nmatches]; - } - else - ++__i; - } - if (__nskipped == __nmatches) - break; - } - - if ((__nmatches == 1 && __matches_lengths[0] == __pos) - || (__nmatches == 2 && (__matches_lengths[0] == __pos - || __matches_lengths[1] == __pos))) - __member = (__matches[0] >= __indexlen - ? __matches[0] - __indexlen : __matches[0]); - else - __err |= ios_base::failbit; - - return __beg; - } - - template - _InIter - time_get<_CharT, _InIter>:: - do_get_time(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm) const - { - const locale& __loc = __io._M_getloc(); - const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); - const char_type* __times[2]; - __tp._M_time_formats(__times); - __beg = _M_extract_via_format(__beg, __end, __io, __err, - __tm, __times[0]); - if (__beg == __end) - __err |= ios_base::eofbit; - return __beg; - } - - template - _InIter - time_get<_CharT, _InIter>:: - do_get_date(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm) const - { - const locale& __loc = __io._M_getloc(); - const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); - const char_type* __dates[2]; - __tp._M_date_formats(__dates); - __beg = _M_extract_via_format(__beg, __end, __io, __err, - __tm, __dates[0]); - if (__beg == __end) - __err |= ios_base::eofbit; - return __beg; - } - - template - _InIter - time_get<_CharT, _InIter>:: - do_get_weekday(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm) const - { - const locale& __loc = __io._M_getloc(); - const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); - const char_type* __days[14]; - __tp._M_days_abbreviated(__days); - __tp._M_days(__days + 7); - int __tmpwday; - ios_base::iostate __tmperr = ios_base::goodbit; - - __beg = _M_extract_wday_or_month(__beg, __end, __tmpwday, __days, 7, - __io, __tmperr); - if (!__tmperr) - __tm->tm_wday = __tmpwday; - else - __err |= ios_base::failbit; - - if (__beg == __end) - __err |= ios_base::eofbit; - return __beg; - } - - template - _InIter - time_get<_CharT, _InIter>:: - do_get_monthname(iter_type __beg, iter_type __end, - ios_base& __io, ios_base::iostate& __err, tm* __tm) const - { - const locale& __loc = __io._M_getloc(); - const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); - const char_type* __months[24]; - __tp._M_months_abbreviated(__months); - __tp._M_months(__months + 12); - int __tmpmon; - ios_base::iostate __tmperr = ios_base::goodbit; - - __beg = _M_extract_wday_or_month(__beg, __end, __tmpmon, __months, 12, - __io, __tmperr); - if (!__tmperr) - __tm->tm_mon = __tmpmon; - else - __err |= ios_base::failbit; - - if (__beg == __end) - __err |= ios_base::eofbit; - return __beg; - } - - template - _InIter - time_get<_CharT, _InIter>:: - do_get_year(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm) const - { - int __tmpyear; - ios_base::iostate __tmperr = ios_base::goodbit; - - __beg = _M_extract_num(__beg, __end, __tmpyear, 0, 9999, 4, - __io, __tmperr); - if (!__tmperr) - __tm->tm_year = __tmpyear < 0 ? __tmpyear + 100 : __tmpyear - 1900; - else - __err |= ios_base::failbit; - - if (__beg == __end) - __err |= ios_base::eofbit; - return __beg; - } - - - template - inline - _InIter - time_get<_CharT, _InIter>:: - get(iter_type __s, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm, const char_type* __fmt, - const char_type* __fmtend) const - { - const locale& __loc = __io._M_getloc(); - ctype<_CharT> const& __ctype = use_facet >(__loc); - __err = ios_base::goodbit; - while (__fmt != __fmtend && - __err == ios_base::goodbit) - { - if (__s == __end) - { - __err = ios_base::eofbit | ios_base::failbit; - break; - } - else if (__ctype.narrow(*__fmt, 0) == '%') - { - char __format; - char __mod = 0; - if (++__fmt == __fmtend) - { - __err = ios_base::failbit; - break; - } - const char __c = __ctype.narrow(*__fmt, 0); - if (__c != 'E' && __c != 'O') - __format = __c; - else if (++__fmt != __fmtend) - { - __mod = __c; - __format = __ctype.narrow(*__fmt, 0); - } - else - { - __err = ios_base::failbit; - break; - } - __s = this->do_get(__s, __end, __io, __err, __tm, __format, - __mod); - ++__fmt; - } - else if (__ctype.is(ctype_base::space, *__fmt)) - { - ++__fmt; - while (__fmt != __fmtend && - __ctype.is(ctype_base::space, *__fmt)) - ++__fmt; - - while (__s != __end && - __ctype.is(ctype_base::space, *__s)) - ++__s; - } - - else if (__ctype.tolower(*__s) == __ctype.tolower(*__fmt) || - __ctype.toupper(*__s) == __ctype.toupper(*__fmt)) - { - ++__s; - ++__fmt; - } - else - { - __err = ios_base::failbit; - break; - } - } - return __s; - } - - template - inline - _InIter - time_get<_CharT, _InIter>:: - do_get(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, tm* __tm, - char __format, char __mod) const - { - const locale& __loc = __io._M_getloc(); - ctype<_CharT> const& __ctype = use_facet >(__loc); - __err = ios_base::goodbit; - - char_type __fmt[4]; - __fmt[0] = __ctype.widen('%'); - if (!__mod) - { - __fmt[1] = __format; - __fmt[2] = char_type(); - } - else - { - __fmt[1] = __mod; - __fmt[2] = __format; - __fmt[3] = char_type(); - } - - __beg = _M_extract_via_format(__beg, __end, __io, __err, __tm, __fmt); - if (__beg == __end) - __err |= ios_base::eofbit; - return __beg; - } - - - - template - _OutIter - time_put<_CharT, _OutIter>:: - put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, - const _CharT* __beg, const _CharT* __end) const - { - const locale& __loc = __io._M_getloc(); - ctype<_CharT> const& __ctype = use_facet >(__loc); - for (; __beg != __end; ++__beg) - if (__ctype.narrow(*__beg, 0) != '%') - { - *__s = *__beg; - ++__s; - } - else if (++__beg != __end) - { - char __format; - char __mod = 0; - const char __c = __ctype.narrow(*__beg, 0); - if (__c != 'E' && __c != 'O') - __format = __c; - else if (++__beg != __end) - { - __mod = __c; - __format = __ctype.narrow(*__beg, 0); - } - else - break; - __s = this->do_put(__s, __io, __fill, __tm, __format, __mod); - } - else - break; - return __s; - } - - template - _OutIter - time_put<_CharT, _OutIter>:: - do_put(iter_type __s, ios_base& __io, char_type, const tm* __tm, - char __format, char __mod) const - { - const locale& __loc = __io._M_getloc(); - ctype<_CharT> const& __ctype = use_facet >(__loc); - __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc); - - - - const size_t __maxlen = 128; - char_type __res[__maxlen]; - - - - - - - char_type __fmt[4]; - __fmt[0] = __ctype.widen('%'); - if (!__mod) - { - __fmt[1] = __format; - __fmt[2] = char_type(); - } - else - { - __fmt[1] = __mod; - __fmt[2] = __format; - __fmt[3] = char_type(); - } - - __tp._M_put(__res, __maxlen, __fmt, __tm); - - - return std::__write(__s, __res, char_traits::length(__res)); - } - - - - - - extern template class moneypunct; - extern template class moneypunct; - extern template class moneypunct_byname; - extern template class moneypunct_byname; - extern template class __cxx11:: money_get; - extern template class __cxx11:: money_put; - extern template class __timepunct; - extern template class time_put; - extern template class time_put_byname; - extern template class time_get; - extern template class time_get_byname; - extern template class messages; - extern template class messages_byname; - - extern template - const moneypunct& - use_facet >(const locale&); - - extern template - const moneypunct& - use_facet >(const locale&); - - extern template - const money_put& - use_facet >(const locale&); - - extern template - const money_get& - use_facet >(const locale&); - - extern template - const __timepunct& - use_facet<__timepunct >(const locale&); - - extern template - const time_put& - use_facet >(const locale&); - - extern template - const time_get& - use_facet >(const locale&); - - extern template - const messages& - use_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet<__timepunct >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - - extern template class moneypunct; - extern template class moneypunct; - extern template class moneypunct_byname; - extern template class moneypunct_byname; - extern template class __cxx11:: money_get; - extern template class __cxx11:: money_put; - extern template class __timepunct; - extern template class time_put; - extern template class time_put_byname; - extern template class time_get; - extern template class time_get_byname; - extern template class messages; - extern template class messages_byname; - - extern template - const moneypunct& - use_facet >(const locale&); - - extern template - const moneypunct& - use_facet >(const locale&); - - extern template - const money_put& - use_facet >(const locale&); - - extern template - const money_get& - use_facet >(const locale&); - - extern template - const __timepunct& - use_facet<__timepunct >(const locale&); - - extern template - const time_put& - use_facet >(const locale&); - - extern template - const time_get& - use_facet >(const locale&); - - extern template - const messages& - use_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet<__timepunct >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - - - -} -# 2016 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_facets_nonio.h" 2 3 -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/locale" 2 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_conv.h" 1 3 -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_conv.h" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/unique_ptr.h" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/unique_ptr.h" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/utility" 1 3 -# 58 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/utility" 3 - -# 59 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/utility" 3 -# 69 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/utility" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_relops.h" 1 3 -# 67 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_relops.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - namespace rel_ops - { -# 85 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_relops.h" 3 - template - inline bool - operator!=(const _Tp& __x, const _Tp& __y) - { return !(__x == __y); } -# 98 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_relops.h" 3 - template - inline bool - operator>(const _Tp& __x, const _Tp& __y) - { return __y < __x; } -# 111 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_relops.h" 3 - template - inline bool - operator<=(const _Tp& __x, const _Tp& __y) - { return !(__y < __x); } -# 124 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_relops.h" 3 - template - inline bool - operator>=(const _Tp& __x, const _Tp& __y) - { return !(__x < __y); } - } - - -} -# 70 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/utility" 2 3 -# 82 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/utility" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - template - struct tuple_size; - - - - - - template::type, - typename = typename enable_if::value>::type, - size_t = tuple_size<_Tp>::value> - using __enable_if_has_tuple_size = _Tp; - - template - struct tuple_size> - : public tuple_size<_Tp> { }; - - template - struct tuple_size> - : public tuple_size<_Tp> { }; - - template - struct tuple_size> - : public tuple_size<_Tp> { }; - - - template - struct tuple_element; - - - template - using __tuple_element_t = typename tuple_element<__i, _Tp>::type; - - template - struct tuple_element<__i, const _Tp> - { - typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type; - }; - - template - struct tuple_element<__i, volatile _Tp> - { - typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type; - }; - - template - struct tuple_element<__i, const volatile _Tp> - { - typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type; - }; - - - - - - - - template - using tuple_element_t = typename tuple_element<__i, _Tp>::type; - - - - - - template - struct __is_tuple_like_impl> : true_type - { }; - - - template - struct tuple_size> - : public integral_constant { }; - - - template - struct tuple_element<0, std::pair<_Tp1, _Tp2>> - { typedef _Tp1 type; }; - - - template - struct tuple_element<1, std::pair<_Tp1, _Tp2>> - { typedef _Tp2 type; }; - - template - struct __pair_get; - - template<> - struct __pair_get<0> - { - template - static constexpr _Tp1& - __get(std::pair<_Tp1, _Tp2>& __pair) noexcept - { return __pair.first; } - - template - static constexpr _Tp1&& - __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept - { return std::forward<_Tp1>(__pair.first); } - - template - static constexpr const _Tp1& - __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept - { return __pair.first; } - - template - static constexpr const _Tp1&& - __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept - { return std::forward(__pair.first); } - }; - - template<> - struct __pair_get<1> - { - template - static constexpr _Tp2& - __get(std::pair<_Tp1, _Tp2>& __pair) noexcept - { return __pair.second; } - - template - static constexpr _Tp2&& - __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept - { return std::forward<_Tp2>(__pair.second); } - - template - static constexpr const _Tp2& - __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept - { return __pair.second; } - - template - static constexpr const _Tp2&& - __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept - { return std::forward(__pair.second); } - }; - - template - constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& - get(std::pair<_Tp1, _Tp2>& __in) noexcept - { return __pair_get<_Int>::__get(__in); } - - template - constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& - get(std::pair<_Tp1, _Tp2>&& __in) noexcept - { return __pair_get<_Int>::__move_get(std::move(__in)); } - - template - constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& - get(const std::pair<_Tp1, _Tp2>& __in) noexcept - { return __pair_get<_Int>::__const_get(__in); } - - template - constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& - get(const std::pair<_Tp1, _Tp2>&& __in) noexcept - { return __pair_get<_Int>::__const_move_get(std::move(__in)); } - - - - - - template - constexpr _Tp& - get(pair<_Tp, _Up>& __p) noexcept - { return __p.first; } - - template - constexpr const _Tp& - get(const pair<_Tp, _Up>& __p) noexcept - { return __p.first; } - - template - constexpr _Tp&& - get(pair<_Tp, _Up>&& __p) noexcept - { return std::move(__p.first); } - - template - constexpr const _Tp&& - get(const pair<_Tp, _Up>&& __p) noexcept - { return std::move(__p.first); } - - template - constexpr _Tp& - get(pair<_Up, _Tp>& __p) noexcept - { return __p.second; } - - template - constexpr const _Tp& - get(const pair<_Up, _Tp>& __p) noexcept - { return __p.second; } - - template - constexpr _Tp&& - get(pair<_Up, _Tp>&& __p) noexcept - { return std::move(__p.second); } - - template - constexpr const _Tp&& - get(const pair<_Up, _Tp>&& __p) noexcept - { return std::move(__p.second); } - - - - - template - - inline _Tp - exchange(_Tp& __obj, _Up&& __new_val) - { return std::__exchange(__obj, std::forward<_Up>(__new_val)); } - - - - - - template struct _Index_tuple { }; -# 307 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/utility" 3 - template - struct _Build_index_tuple - { - - - - - - - using __type = _Index_tuple<__integer_pack(_Num)...>; - - }; - - - - - - - template - struct integer_sequence - { - typedef _Tp value_type; - static constexpr size_t size() noexcept { return sizeof...(_Idx); } - }; - - - template - using make_integer_sequence - - - - = integer_sequence<_Tp, __integer_pack(_Num)...>; - - - - - - template - using index_sequence = integer_sequence; - - - template - using make_index_sequence = make_integer_sequence; - - - template - using index_sequence_for = make_index_sequence; -# 473 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/utility" 3 - -} -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/unique_ptr.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/tuple" 1 3 -# 32 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/tuple" 3 - -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/tuple" 3 - - - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/array" 1 3 -# 32 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/array" 3 - -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/array" 3 -# 43 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/array" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - template - struct __array_traits - { - typedef _Tp _Type[_Nm]; - typedef __is_swappable<_Tp> _Is_swappable; - typedef __is_nothrow_swappable<_Tp> _Is_nothrow_swappable; - - static constexpr _Tp& - _S_ref(const _Type& __t, std::size_t __n) noexcept - { return const_cast<_Tp&>(__t[__n]); } - - static constexpr _Tp* - _S_ptr(const _Type& __t) noexcept - { return const_cast<_Tp*>(__t); } - }; - - template - struct __array_traits<_Tp, 0> - { - struct _Type { }; - typedef true_type _Is_swappable; - typedef true_type _Is_nothrow_swappable; - - static constexpr _Tp& - _S_ref(const _Type&, std::size_t) noexcept - { return *static_cast<_Tp*>(nullptr); } - - static constexpr _Tp* - _S_ptr(const _Type&) noexcept - { return nullptr; } - }; -# 93 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/array" 3 - template - struct array - { - typedef _Tp value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef value_type* iterator; - typedef const value_type* const_iterator; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; - - - typedef std::__array_traits<_Tp, _Nm> _AT_Type; - typename _AT_Type::_Type _M_elems; - - - - - void - fill(const value_type& __u) - { std::fill_n(begin(), size(), __u); } - - void - swap(array& __other) - noexcept(_AT_Type::_Is_nothrow_swappable::value) - { std::swap_ranges(begin(), end(), __other.begin()); } - - - iterator - begin() noexcept - { return iterator(data()); } - - const_iterator - begin() const noexcept - { return const_iterator(data()); } - - iterator - end() noexcept - { return iterator(data() + _Nm); } - - const_iterator - end() const noexcept - { return const_iterator(data() + _Nm); } - - reverse_iterator - rbegin() noexcept - { return reverse_iterator(end()); } - - const_reverse_iterator - rbegin() const noexcept - { return const_reverse_iterator(end()); } - - reverse_iterator - rend() noexcept - { return reverse_iterator(begin()); } - - const_reverse_iterator - rend() const noexcept - { return const_reverse_iterator(begin()); } - - const_iterator - cbegin() const noexcept - { return const_iterator(data()); } - - const_iterator - cend() const noexcept - { return const_iterator(data() + _Nm); } - - const_reverse_iterator - crbegin() const noexcept - { return const_reverse_iterator(end()); } - - const_reverse_iterator - crend() const noexcept - { return const_reverse_iterator(begin()); } - - - constexpr size_type - size() const noexcept { return _Nm; } - - constexpr size_type - max_size() const noexcept { return _Nm; } - - constexpr bool - empty() const noexcept { return size() == 0; } - - - reference - operator[](size_type __n) noexcept - { return _AT_Type::_S_ref(_M_elems, __n); } - - constexpr const_reference - operator[](size_type __n) const noexcept - { return _AT_Type::_S_ref(_M_elems, __n); } - - reference - at(size_type __n) - { - if (__n >= _Nm) - std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") - , - __n, _Nm); - return _AT_Type::_S_ref(_M_elems, __n); - } - - constexpr const_reference - at(size_type __n) const - { - - - return __n < _Nm ? _AT_Type::_S_ref(_M_elems, __n) - : (std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") - , - __n, _Nm), - _AT_Type::_S_ref(_M_elems, 0)); - } - - reference - front() noexcept - { return *begin(); } - - constexpr const_reference - front() const noexcept - { return _AT_Type::_S_ref(_M_elems, 0); } - - reference - back() noexcept - { return _Nm ? *(end() - 1) : *end(); } - - constexpr const_reference - back() const noexcept - { - return _Nm ? _AT_Type::_S_ref(_M_elems, _Nm - 1) - : _AT_Type::_S_ref(_M_elems, 0); - } - - pointer - data() noexcept - { return _AT_Type::_S_ptr(_M_elems); } - - const_pointer - data() const noexcept - { return _AT_Type::_S_ptr(_M_elems); } - }; -# 250 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/array" 3 - template - - inline bool - operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) - { return std::equal(__one.begin(), __one.end(), __two.begin()); } -# 275 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/array" 3 - template - - inline bool - operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) - { return !(__one == __two); } - - template - - inline bool - operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) - { - return std::lexicographical_compare(__a.begin(), __a.end(), - __b.begin(), __b.end()); - } - - template - - inline bool - operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) - { return __two < __one; } - - template - - inline bool - operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) - { return !(__one > __two); } - - template - - inline bool - operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) - { return !(__one < __two); } - - - - template - - inline - - - typename enable_if< - std::__array_traits<_Tp, _Nm>::_Is_swappable::value - >::type - - - - swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) - noexcept(noexcept(__one.swap(__two))) - { __one.swap(__two); } - - - template - typename enable_if< - !std::__array_traits<_Tp, _Nm>::_Is_swappable::value>::type - swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&) = delete; - - - template - constexpr _Tp& - get(array<_Tp, _Nm>& __arr) noexcept - { - static_assert(_Int < _Nm, "array index is within bounds"); - return std::__array_traits<_Tp, _Nm>:: - _S_ref(__arr._M_elems, _Int); - } - - template - constexpr _Tp&& - get(array<_Tp, _Nm>&& __arr) noexcept - { - static_assert(_Int < _Nm, "array index is within bounds"); - return std::move(std::get<_Int>(__arr)); - } - - template - constexpr const _Tp& - get(const array<_Tp, _Nm>& __arr) noexcept - { - static_assert(_Int < _Nm, "array index is within bounds"); - return std::__array_traits<_Tp, _Nm>:: - _S_ref(__arr._M_elems, _Int); - } - - template - constexpr const _Tp&& - get(const array<_Tp, _Nm>&& __arr) noexcept - { - static_assert(_Int < _Nm, "array index is within bounds"); - return std::move(std::get<_Int>(__arr)); - } -# 404 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/array" 3 - -} - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - template - struct tuple_size; - - - template - struct tuple_size> - : public integral_constant { }; - - - template - struct tuple_element; - - - template - struct tuple_element<_Int, std::array<_Tp, _Nm>> - { - static_assert(_Int < _Nm, "index is out of bounds"); - typedef _Tp type; - }; - - template - struct __is_tuple_like_impl> : true_type - { }; - - -} -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/tuple" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/uses_allocator.h" 1 3 -# 35 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/uses_allocator.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - struct __erased_type { }; - - - - - template - using __is_erased_or_convertible - = __or_, is_same<_Tp, __erased_type>>; - - - struct allocator_arg_t { explicit allocator_arg_t() = default; }; - - constexpr allocator_arg_t allocator_arg = - allocator_arg_t(); - - template> - struct __uses_allocator_helper - : false_type { }; - - template - struct __uses_allocator_helper<_Tp, _Alloc, - __void_t> - : __is_erased_or_convertible<_Alloc, typename _Tp::allocator_type>::type - { }; - - - template - struct uses_allocator - : __uses_allocator_helper<_Tp, _Alloc>::type - { }; - - struct __uses_alloc_base { }; - - struct __uses_alloc0 : __uses_alloc_base - { - struct _Sink { void operator=(const void*) { } } _M_a; - }; - - template - struct __uses_alloc1 : __uses_alloc_base { const _Alloc* _M_a; }; - - template - struct __uses_alloc2 : __uses_alloc_base { const _Alloc* _M_a; }; - - template - struct __uses_alloc; - - template - struct __uses_alloc - : conditional< - is_constructible<_Tp, allocator_arg_t, const _Alloc&, _Args...>::value, - __uses_alloc1<_Alloc>, - __uses_alloc2<_Alloc>>::type - { - - - static_assert(__or_< - is_constructible<_Tp, allocator_arg_t, const _Alloc&, _Args...>, - is_constructible<_Tp, _Args..., const _Alloc&>>::value, - "construction with an allocator must be possible" - " if uses_allocator is true"); - }; - - template - struct __uses_alloc - : __uses_alloc0 { }; - - template - using __uses_alloc_t = - __uses_alloc::value, _Tp, _Alloc, _Args...>; - - template - - inline __uses_alloc_t<_Tp, _Alloc, _Args...> - __use_alloc(const _Alloc& __a) - { - __uses_alloc_t<_Tp, _Alloc, _Args...> __ret; - __ret._M_a = std::__addressof(__a); - return __ret; - } - - template - void - __use_alloc(const _Alloc&&) = delete; - - - - - - - - template class _Predicate, - typename _Tp, typename _Alloc, typename... _Args> - struct __is_uses_allocator_predicate - : conditional::value, - __or_<_Predicate<_Tp, allocator_arg_t, _Alloc, _Args...>, - _Predicate<_Tp, _Args..., _Alloc>>, - _Predicate<_Tp, _Args...>>::type { }; - - template - struct __is_uses_allocator_constructible - : __is_uses_allocator_predicate - { }; - - - template - constexpr bool __is_uses_allocator_constructible_v = - __is_uses_allocator_constructible<_Tp, _Alloc, _Args...>::value; - - - template - struct __is_nothrow_uses_allocator_constructible - : __is_uses_allocator_predicate - { }; - - - - template - constexpr bool - __is_nothrow_uses_allocator_constructible_v = - __is_nothrow_uses_allocator_constructible<_Tp, _Alloc, _Args...>::value; - - - template - void __uses_allocator_construct_impl(__uses_alloc0 __a, _Tp* __ptr, - _Args&&... __args) - { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)...); } - - template - void __uses_allocator_construct_impl(__uses_alloc1<_Alloc> __a, _Tp* __ptr, - _Args&&... __args) - { - ::new ((void*)__ptr) _Tp(allocator_arg, *__a._M_a, - std::forward<_Args>(__args)...); - } - - template - void __uses_allocator_construct_impl(__uses_alloc2<_Alloc> __a, _Tp* __ptr, - _Args&&... __args) - { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)..., *__a._M_a); } - - template - void __uses_allocator_construct(const _Alloc& __a, _Tp* __ptr, - _Args&&... __args) - { - std::__uses_allocator_construct_impl( - std::__use_alloc<_Tp, _Alloc, _Args...>(__a), __ptr, - std::forward<_Args>(__args)...); - } - - -} -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/tuple" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/invoke.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/invoke.h" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/invoke.h" 3 - - - - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 52 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/invoke.h" 3 - template::type> - constexpr _Up&& - __invfwd(typename remove_reference<_Tp>::type& __t) noexcept - { return static_cast<_Up&&>(__t); } - - template - constexpr _Res - __invoke_impl(__invoke_other, _Fn&& __f, _Args&&... __args) - { return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); } - - template - constexpr _Res - __invoke_impl(__invoke_memfun_ref, _MemFun&& __f, _Tp&& __t, - _Args&&... __args) - { return (__invfwd<_Tp>(__t).*__f)(std::forward<_Args>(__args)...); } - - template - constexpr _Res - __invoke_impl(__invoke_memfun_deref, _MemFun&& __f, _Tp&& __t, - _Args&&... __args) - { - return ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...); - } - - template - constexpr _Res - __invoke_impl(__invoke_memobj_ref, _MemPtr&& __f, _Tp&& __t) - { return __invfwd<_Tp>(__t).*__f; } - - template - constexpr _Res - __invoke_impl(__invoke_memobj_deref, _MemPtr&& __f, _Tp&& __t) - { return (*std::forward<_Tp>(__t)).*__f; } - - - template - constexpr typename __invoke_result<_Callable, _Args...>::type - __invoke(_Callable&& __fn, _Args&&... __args) - noexcept(__is_nothrow_invocable<_Callable, _Args...>::value) - { - using __result = __invoke_result<_Callable, _Args...>; - using __type = typename __result::type; - using __tag = typename __result::__invoke_type; - return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), - std::forward<_Args>(__args)...); - } -# 118 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/invoke.h" 3 - template - using __can_invoke_as_void = __enable_if_t< - __and_, __is_invocable<_Callable, _Args...>>::value, - _Res - >; - - template - using __can_invoke_as_nonvoid = __enable_if_t< - __and_<__not_>, - is_convertible::type, - _Res> - >::value, - _Res - >; - - - template - constexpr __can_invoke_as_nonvoid<_Res, _Callable, _Args...> - __invoke_r(_Callable&& __fn, _Args&&... __args) - { - using __result = __invoke_result<_Callable, _Args...>; - using __type = typename __result::type; - using __tag = typename __result::__invoke_type; - return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), - std::forward<_Args>(__args)...); - } - - - template - constexpr __can_invoke_as_void<_Res, _Callable, _Args...> - __invoke_r(_Callable&& __fn, _Args&&... __args) - { - using __result = __invoke_result<_Callable, _Args...>; - using __type = typename __result::type; - using __tag = typename __result::__invoke_type; - std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), - std::forward<_Args>(__args)...); - } - - - -} -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/tuple" 2 3 - - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - - template - class tuple; - - template - struct __is_empty_non_tuple : is_empty<_Tp> { }; - - - template - struct __is_empty_non_tuple> : false_type { }; - - - template - using __empty_not_final - = typename conditional<__is_final(_Tp), false_type, - __is_empty_non_tuple<_Tp>>::type; - - template::value> - struct _Head_base; - - template - struct _Head_base<_Idx, _Head, true> - : public _Head - { - constexpr _Head_base() - : _Head() { } - - constexpr _Head_base(const _Head& __h) - : _Head(__h) { } - - constexpr _Head_base(const _Head_base&) = default; - constexpr _Head_base(_Head_base&&) = default; - - template - constexpr _Head_base(_UHead&& __h) - : _Head(std::forward<_UHead>(__h)) { } - - _Head_base(allocator_arg_t, __uses_alloc0) - : _Head() { } - - template - _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) - : _Head(allocator_arg, *__a._M_a) { } - - template - _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) - : _Head(*__a._M_a) { } - - template - _Head_base(__uses_alloc0, _UHead&& __uhead) - : _Head(std::forward<_UHead>(__uhead)) { } - - template - _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) - : _Head(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) { } - - template - _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) - : _Head(std::forward<_UHead>(__uhead), *__a._M_a) { } - - static constexpr _Head& - _M_head(_Head_base& __b) noexcept { return __b; } - - static constexpr const _Head& - _M_head(const _Head_base& __b) noexcept { return __b; } - }; - - template - struct _Head_base<_Idx, _Head, false> - { - constexpr _Head_base() - : _M_head_impl() { } - - constexpr _Head_base(const _Head& __h) - : _M_head_impl(__h) { } - - constexpr _Head_base(const _Head_base&) = default; - constexpr _Head_base(_Head_base&&) = default; - - template - constexpr _Head_base(_UHead&& __h) - : _M_head_impl(std::forward<_UHead>(__h)) { } - - - _Head_base(allocator_arg_t, __uses_alloc0) - : _M_head_impl() { } - - template - _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) - : _M_head_impl(allocator_arg, *__a._M_a) { } - - template - _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) - : _M_head_impl(*__a._M_a) { } - - template - - _Head_base(__uses_alloc0, _UHead&& __uhead) - : _M_head_impl(std::forward<_UHead>(__uhead)) { } - - template - _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) - : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) - { } - - template - _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) - : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } - - static constexpr _Head& - _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } - - static constexpr const _Head& - _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } - - _Head _M_head_impl; - }; -# 182 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/tuple" 3 - template - struct _Tuple_impl; - - - - - - - template - struct _Tuple_impl<_Idx, _Head, _Tail...> - : public _Tuple_impl<_Idx + 1, _Tail...>, - private _Head_base<_Idx, _Head> - { - template friend class _Tuple_impl; - - typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited; - typedef _Head_base<_Idx, _Head> _Base; - - static constexpr _Head& - _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } - - static constexpr const _Head& - _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } - - static constexpr _Inherited& - _M_tail(_Tuple_impl& __t) noexcept { return __t; } - - static constexpr const _Inherited& - _M_tail(const _Tuple_impl& __t) noexcept { return __t; } - - constexpr _Tuple_impl() - : _Inherited(), _Base() { } - - explicit - constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail) - : _Inherited(__tail...), _Base(__head) { } - - template::type> - explicit - constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail) - : _Inherited(std::forward<_UTail>(__tail)...), - _Base(std::forward<_UHead>(__head)) { } - - constexpr _Tuple_impl(const _Tuple_impl&) = default; - - - - _Tuple_impl& operator=(const _Tuple_impl&) = delete; - - constexpr - _Tuple_impl(_Tuple_impl&& __in) - noexcept(__and_, - is_nothrow_move_constructible<_Inherited>>::value) - : _Inherited(std::move(_M_tail(__in))), - _Base(std::forward<_Head>(_M_head(__in))) { } - - template - constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in) - : _Inherited(_Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), - _Base(_Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } - - template - constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) - : _Inherited(std::move - (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), - _Base(std::forward<_UHead> - (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } - - template - - _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) - : _Inherited(__tag, __a), - _Base(__tag, __use_alloc<_Head>(__a)) { } - - template - _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, - const _Head& __head, const _Tail&... __tail) - : _Inherited(__tag, __a, __tail...), - _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } - - template::type> - - _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, - _UHead&& __head, _UTail&&... __tail) - : _Inherited(__tag, __a, std::forward<_UTail>(__tail)...), - _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), - std::forward<_UHead>(__head)) { } - - template - - _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, - const _Tuple_impl& __in) - : _Inherited(__tag, __a, _M_tail(__in)), - _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } - - template - - _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, - _Tuple_impl&& __in) - : _Inherited(__tag, __a, std::move(_M_tail(__in))), - _Base(__use_alloc<_Head, _Alloc, _Head>(__a), - std::forward<_Head>(_M_head(__in))) { } - - template - - _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, - const _Tuple_impl<_Idx, _UElements...>& __in) - : _Inherited(__tag, __a, - _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), - _Base(__use_alloc<_Head, _Alloc, _Head>(__a), - _Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } - - template - - _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, - _Tuple_impl<_Idx, _UHead, _UTails...>&& __in) - : _Inherited(__tag, __a, std::move - (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), - _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), - std::forward<_UHead> - (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } - - template - - void - _M_assign(const _Tuple_impl<_Idx, _UElements...>& __in) - { - _M_head(*this) = _Tuple_impl<_Idx, _UElements...>::_M_head(__in); - _M_tail(*this)._M_assign( - _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)); - } - - template - - void - _M_assign(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) - { - _M_head(*this) = std::forward<_UHead> - (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)); - _M_tail(*this)._M_assign( - std::move(_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))); - } - - protected: - - void - _M_swap(_Tuple_impl& __in) - { - using std::swap; - swap(_M_head(*this), _M_head(__in)); - _Inherited::_M_swap(_M_tail(__in)); - } - }; - - - template - struct _Tuple_impl<_Idx, _Head> - : private _Head_base<_Idx, _Head> - { - template friend class _Tuple_impl; - - typedef _Head_base<_Idx, _Head> _Base; - - static constexpr _Head& - _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } - - static constexpr const _Head& - _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } - - constexpr _Tuple_impl() - : _Base() { } - - explicit - constexpr _Tuple_impl(const _Head& __head) - : _Base(__head) { } - - template - explicit - constexpr _Tuple_impl(_UHead&& __head) - : _Base(std::forward<_UHead>(__head)) { } - - constexpr _Tuple_impl(const _Tuple_impl&) = default; - - - - _Tuple_impl& operator=(const _Tuple_impl&) = delete; - - constexpr - _Tuple_impl(_Tuple_impl&& __in) - noexcept(is_nothrow_move_constructible<_Head>::value) - : _Base(std::forward<_Head>(_M_head(__in))) { } - - template - constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UHead>& __in) - : _Base(_Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } - - template - constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead>&& __in) - : _Base(std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) - { } - - template - - _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) - : _Base(__tag, __use_alloc<_Head>(__a)) { } - - template - _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, - const _Head& __head) - : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } - - template - - _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, - _UHead&& __head) - : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), - std::forward<_UHead>(__head)) { } - - template - - _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, - const _Tuple_impl& __in) - : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } - - template - - _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, - _Tuple_impl&& __in) - : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), - std::forward<_Head>(_M_head(__in))) { } - - template - - _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, - const _Tuple_impl<_Idx, _UHead>& __in) - : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), - _Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } - - template - - _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, - _Tuple_impl<_Idx, _UHead>&& __in) - : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), - std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) - { } - - template - - void - _M_assign(const _Tuple_impl<_Idx, _UHead>& __in) - { - _M_head(*this) = _Tuple_impl<_Idx, _UHead>::_M_head(__in); - } - - template - - void - _M_assign(_Tuple_impl<_Idx, _UHead>&& __in) - { - _M_head(*this) - = std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in)); - } - - protected: - - void - _M_swap(_Tuple_impl& __in) - { - using std::swap; - swap(_M_head(*this), _M_head(__in)); - } - }; - - - - template - struct _TupleConstraints - { - - - - template - static constexpr bool __is_implicitly_constructible() - { - return __and_..., - is_convertible<_UTypes, _Types>... - >::value; - } - - - - - template - static constexpr bool __is_explicitly_constructible() - { - return __and_..., - __not_<__and_...>> - >::value; - } - - static constexpr bool __is_implicitly_default_constructible() - { - return __and_... - >::value; - } - - static constexpr bool __is_explicitly_default_constructible() - { - return __and_..., - __not_<__and_< - std::__is_implicitly_default_constructible<_Types>...> - >>::value; - } - }; - - - - template - struct _TupleConstraints - { - template - static constexpr bool __is_implicitly_constructible() - { return false; } - - template - static constexpr bool __is_explicitly_constructible() - { return false; } - }; - - - template - class tuple : public _Tuple_impl<0, _Elements...> - { - typedef _Tuple_impl<0, _Elements...> _Inherited; - - template - using _TCC = _TupleConstraints<_Cond, _Elements...>; - - - template - using _ImplicitDefaultCtor = __enable_if_t< - _TCC<_Dummy>::__is_implicitly_default_constructible(), - bool>; - - - template - using _ExplicitDefaultCtor = __enable_if_t< - _TCC<_Dummy>::__is_explicitly_default_constructible(), - bool>; - - - template - using _ImplicitCtor = __enable_if_t< - _TCC<_Cond>::template __is_implicitly_constructible<_Args...>(), - bool>; - - - template - using _ExplicitCtor = __enable_if_t< - _TCC<_Cond>::template __is_explicitly_constructible<_Args...>(), - bool>; - - template - static constexpr - __enable_if_t - __assignable() - { return __and_...>::value; } - - - template - static constexpr bool __nothrow_assignable() - { - return - __and_...>::value; - } - - - template - static constexpr bool __nothrow_constructible() - { - return - __and_...>::value; - } - - - template - static constexpr bool __valid_args() - { - return sizeof...(_Elements) == 1 - && !is_same>::value; - } - - - template - static constexpr bool __valid_args() - { return (sizeof...(_Tail) + 2) == sizeof...(_Elements); } -# 591 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/tuple" 3 - template> - struct _UseOtherCtor - : false_type - { }; - - - template - struct _UseOtherCtor<_Tuple, tuple<_Tp>, tuple<_Up>> - : __or_, is_constructible<_Tp, _Tuple>> - { }; - - - template - struct _UseOtherCtor<_Tuple, tuple<_Tp>, tuple<_Tp>> - : true_type - { }; - - - - - template - static constexpr bool __use_other_ctor() - { return _UseOtherCtor<_Tuple>::value; } - - public: - template::value> = true> - constexpr - tuple() - noexcept(__and_...>::value) - : _Inherited() { } - - template::value> = false> - explicit constexpr - tuple() - noexcept(__and_...>::value) - : _Inherited() { } - - template= 1), - _ImplicitCtor<_NotEmpty, const _Elements&...> = true> - constexpr - tuple(const _Elements&... __elements) - noexcept(__nothrow_constructible()) - : _Inherited(__elements...) { } - - template= 1), - _ExplicitCtor<_NotEmpty, const _Elements&...> = false> - explicit constexpr - tuple(const _Elements&... __elements) - noexcept(__nothrow_constructible()) - : _Inherited(__elements...) { } - - template(), - _ImplicitCtor<_Valid, _UElements...> = true> - constexpr - tuple(_UElements&&... __elements) - noexcept(__nothrow_constructible<_UElements...>()) - : _Inherited(std::forward<_UElements>(__elements)...) { } - - template(), - _ExplicitCtor<_Valid, _UElements...> = false> - explicit constexpr - tuple(_UElements&&... __elements) - noexcept(__nothrow_constructible<_UElements...>()) - : _Inherited(std::forward<_UElements>(__elements)...) { } - - constexpr tuple(const tuple&) = default; - - constexpr tuple(tuple&&) = default; - - template&>(), - _ImplicitCtor<_Valid, const _UElements&...> = true> - constexpr - tuple(const tuple<_UElements...>& __in) - noexcept(__nothrow_constructible()) - : _Inherited(static_cast&>(__in)) - { } - - template&>(), - _ExplicitCtor<_Valid, const _UElements&...> = false> - explicit constexpr - tuple(const tuple<_UElements...>& __in) - noexcept(__nothrow_constructible()) - : _Inherited(static_cast&>(__in)) - { } - - template&&>(), - _ImplicitCtor<_Valid, _UElements...> = true> - constexpr - tuple(tuple<_UElements...>&& __in) - noexcept(__nothrow_constructible<_UElements...>()) - : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } - - template&&>(), - _ExplicitCtor<_Valid, _UElements...> = false> - explicit constexpr - tuple(tuple<_UElements...>&& __in) - noexcept(__nothrow_constructible<_UElements...>()) - : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } - - - - template::value> = true> - - tuple(allocator_arg_t __tag, const _Alloc& __a) - : _Inherited(__tag, __a) { } - - template= 1), - _ImplicitCtor<_NotEmpty, const _Elements&...> = true> - - tuple(allocator_arg_t __tag, const _Alloc& __a, - const _Elements&... __elements) - : _Inherited(__tag, __a, __elements...) { } - - template= 1), - _ExplicitCtor<_NotEmpty, const _Elements&...> = false> - - explicit - tuple(allocator_arg_t __tag, const _Alloc& __a, - const _Elements&... __elements) - : _Inherited(__tag, __a, __elements...) { } - - template(), - _ImplicitCtor<_Valid, _UElements...> = true> - - tuple(allocator_arg_t __tag, const _Alloc& __a, - _UElements&&... __elements) - : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) - { } - - template(), - _ExplicitCtor<_Valid, _UElements...> = false> - - explicit - tuple(allocator_arg_t __tag, const _Alloc& __a, - _UElements&&... __elements) - : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) - { } - - template - - tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) - : _Inherited(__tag, __a, static_cast(__in)) { } - - template - - tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) - : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } - - template&>(), - _ImplicitCtor<_Valid, const _UElements&...> = true> - - tuple(allocator_arg_t __tag, const _Alloc& __a, - const tuple<_UElements...>& __in) - : _Inherited(__tag, __a, - static_cast&>(__in)) - { } - - template&>(), - _ExplicitCtor<_Valid, const _UElements&...> = false> - - explicit - tuple(allocator_arg_t __tag, const _Alloc& __a, - const tuple<_UElements...>& __in) - : _Inherited(__tag, __a, - static_cast&>(__in)) - { } - - template&&>(), - _ImplicitCtor<_Valid, _UElements...> = true> - - tuple(allocator_arg_t __tag, const _Alloc& __a, - tuple<_UElements...>&& __in) - : _Inherited(__tag, __a, - static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) - { } - - template&&>(), - _ExplicitCtor<_Valid, _UElements...> = false> - - explicit - tuple(allocator_arg_t __tag, const _Alloc& __a, - tuple<_UElements...>&& __in) - : _Inherited(__tag, __a, - static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) - { } - - - - - tuple& - operator=(typename conditional<__assignable(), - const tuple&, - const __nonesuch&>::type __in) - noexcept(__nothrow_assignable()) - { - this->_M_assign(__in); - return *this; - } - - - tuple& - operator=(typename conditional<__assignable<_Elements...>(), - tuple&&, - __nonesuch&&>::type __in) - noexcept(__nothrow_assignable<_Elements...>()) - { - this->_M_assign(std::move(__in)); - return *this; - } - - template - - __enable_if_t<__assignable(), tuple&> - operator=(const tuple<_UElements...>& __in) - noexcept(__nothrow_assignable()) - { - this->_M_assign(__in); - return *this; - } - - template - - __enable_if_t<__assignable<_UElements...>(), tuple&> - operator=(tuple<_UElements...>&& __in) - noexcept(__nothrow_assignable<_UElements...>()) - { - this->_M_assign(std::move(__in)); - return *this; - } - - - - void - swap(tuple& __in) - noexcept(__and_<__is_nothrow_swappable<_Elements>...>::value) - { _Inherited::_M_swap(__in); } - }; -# 867 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/tuple" 3 - template<> - class tuple<> - { - public: - void swap(tuple&) noexcept { } - - - tuple() = default; - - template - - tuple(allocator_arg_t, const _Alloc&) noexcept { } - template - - tuple(allocator_arg_t, const _Alloc&, const tuple&) noexcept { } - }; - - - - template - class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> - { - typedef _Tuple_impl<0, _T1, _T2> _Inherited; - - - template - using _ImplicitDefaultCtor = __enable_if_t< - _TupleConstraints<_Dummy, _U1, _U2>:: - __is_implicitly_default_constructible(), - bool>; - - - template - using _ExplicitDefaultCtor = __enable_if_t< - _TupleConstraints<_Dummy, _U1, _U2>:: - __is_explicitly_default_constructible(), - bool>; - - template - using _TCC = _TupleConstraints<_Dummy, _T1, _T2>; - - - template - using _ImplicitCtor = __enable_if_t< - _TCC<_Cond>::template __is_implicitly_constructible<_U1, _U2>(), - bool>; - - - template - using _ExplicitCtor = __enable_if_t< - _TCC<_Cond>::template __is_explicitly_constructible<_U1, _U2>(), - bool>; - - template - static constexpr bool __assignable() - { - return __and_, - is_assignable<_T2&, _U2>>::value; - } - - template - static constexpr bool __nothrow_assignable() - { - return __and_, - is_nothrow_assignable<_T2&, _U2>>::value; - } - - template - static constexpr bool __nothrow_constructible() - { - return __and_, - is_nothrow_constructible<_T2, _U2>>::value; - } - - static constexpr bool __nothrow_default_constructible() - { - return __and_, - is_nothrow_default_constructible<_T2>>::value; - } - - template - static constexpr bool __is_alloc_arg() - { return is_same<__remove_cvref_t<_U1>, allocator_arg_t>::value; } - - public: - template = true> - constexpr - tuple() - noexcept(__nothrow_default_constructible()) - : _Inherited() { } - - template = false> - explicit constexpr - tuple() - noexcept(__nothrow_default_constructible()) - : _Inherited() { } - - template = true> - constexpr - tuple(const _T1& __a1, const _T2& __a2) - noexcept(__nothrow_constructible()) - : _Inherited(__a1, __a2) { } - - template = false> - explicit constexpr - tuple(const _T1& __a1, const _T2& __a2) - noexcept(__nothrow_constructible()) - : _Inherited(__a1, __a2) { } - - template(), _U1, _U2> = true> - constexpr - tuple(_U1&& __a1, _U2&& __a2) - noexcept(__nothrow_constructible<_U1, _U2>()) - : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } - - template(), _U1, _U2> = false> - explicit constexpr - tuple(_U1&& __a1, _U2&& __a2) - noexcept(__nothrow_constructible<_U1, _U2>()) - : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } - - constexpr tuple(const tuple&) = default; - - constexpr tuple(tuple&&) = default; - - template = true> - constexpr - tuple(const tuple<_U1, _U2>& __in) - noexcept(__nothrow_constructible()) - : _Inherited(static_cast&>(__in)) { } - - template = false> - explicit constexpr - tuple(const tuple<_U1, _U2>& __in) - noexcept(__nothrow_constructible()) - : _Inherited(static_cast&>(__in)) { } - - template = true> - constexpr - tuple(tuple<_U1, _U2>&& __in) - noexcept(__nothrow_constructible<_U1, _U2>()) - : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } - - template = false> - explicit constexpr - tuple(tuple<_U1, _U2>&& __in) - noexcept(__nothrow_constructible<_U1, _U2>()) - : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } - - template = true> - constexpr - tuple(const pair<_U1, _U2>& __in) - noexcept(__nothrow_constructible()) - : _Inherited(__in.first, __in.second) { } - - template = false> - explicit constexpr - tuple(const pair<_U1, _U2>& __in) - noexcept(__nothrow_constructible()) - : _Inherited(__in.first, __in.second) { } - - template = true> - constexpr - tuple(pair<_U1, _U2>&& __in) - noexcept(__nothrow_constructible<_U1, _U2>()) - : _Inherited(std::forward<_U1>(__in.first), - std::forward<_U2>(__in.second)) { } - - template = false> - explicit constexpr - tuple(pair<_U1, _U2>&& __in) - noexcept(__nothrow_constructible<_U1, _U2>()) - : _Inherited(std::forward<_U1>(__in.first), - std::forward<_U2>(__in.second)) { } - - - - template::value, _T1, _T2> = true> - - tuple(allocator_arg_t __tag, const _Alloc& __a) - : _Inherited(__tag, __a) { } - - template = true> - - tuple(allocator_arg_t __tag, const _Alloc& __a, - const _T1& __a1, const _T2& __a2) - : _Inherited(__tag, __a, __a1, __a2) { } - - template = false> - explicit - - tuple(allocator_arg_t __tag, const _Alloc& __a, - const _T1& __a1, const _T2& __a2) - : _Inherited(__tag, __a, __a1, __a2) { } - - template = true> - - tuple(allocator_arg_t __tag, const _Alloc& __a, _U1&& __a1, _U2&& __a2) - : _Inherited(__tag, __a, std::forward<_U1>(__a1), - std::forward<_U2>(__a2)) { } - - template = false> - explicit - - tuple(allocator_arg_t __tag, const _Alloc& __a, - _U1&& __a1, _U2&& __a2) - : _Inherited(__tag, __a, std::forward<_U1>(__a1), - std::forward<_U2>(__a2)) { } - - template - - tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) - : _Inherited(__tag, __a, static_cast(__in)) { } - - template - - tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) - : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } - - template = true> - - tuple(allocator_arg_t __tag, const _Alloc& __a, - const tuple<_U1, _U2>& __in) - : _Inherited(__tag, __a, - static_cast&>(__in)) - { } - - template = false> - explicit - - tuple(allocator_arg_t __tag, const _Alloc& __a, - const tuple<_U1, _U2>& __in) - : _Inherited(__tag, __a, - static_cast&>(__in)) - { } - - template = true> - - tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) - : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) - { } - - template = false> - explicit - - tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) - : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) - { } - - template = true> - - tuple(allocator_arg_t __tag, const _Alloc& __a, - const pair<_U1, _U2>& __in) - : _Inherited(__tag, __a, __in.first, __in.second) { } - - template = false> - explicit - - tuple(allocator_arg_t __tag, const _Alloc& __a, - const pair<_U1, _U2>& __in) - : _Inherited(__tag, __a, __in.first, __in.second) { } - - template = true> - - tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) - : _Inherited(__tag, __a, std::forward<_U1>(__in.first), - std::forward<_U2>(__in.second)) { } - - template = false> - explicit - - tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) - : _Inherited(__tag, __a, std::forward<_U1>(__in.first), - std::forward<_U2>(__in.second)) { } - - - - - tuple& - operator=(typename conditional<__assignable(), - const tuple&, - const __nonesuch&>::type __in) - noexcept(__nothrow_assignable()) - { - this->_M_assign(__in); - return *this; - } - - - tuple& - operator=(typename conditional<__assignable<_T1, _T2>(), - tuple&&, - __nonesuch&&>::type __in) - noexcept(__nothrow_assignable<_T1, _T2>()) - { - this->_M_assign(std::move(__in)); - return *this; - } - - template - - __enable_if_t<__assignable(), tuple&> - operator=(const tuple<_U1, _U2>& __in) - noexcept(__nothrow_assignable()) - { - this->_M_assign(__in); - return *this; - } - - template - - __enable_if_t<__assignable<_U1, _U2>(), tuple&> - operator=(tuple<_U1, _U2>&& __in) - noexcept(__nothrow_assignable<_U1, _U2>()) - { - this->_M_assign(std::move(__in)); - return *this; - } - - template - - __enable_if_t<__assignable(), tuple&> - operator=(const pair<_U1, _U2>& __in) - noexcept(__nothrow_assignable()) - { - this->_M_head(*this) = __in.first; - this->_M_tail(*this)._M_head(*this) = __in.second; - return *this; - } - - template - - __enable_if_t<__assignable<_U1, _U2>(), tuple&> - operator=(pair<_U1, _U2>&& __in) - noexcept(__nothrow_assignable<_U1, _U2>()) - { - this->_M_head(*this) = std::forward<_U1>(__in.first); - this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__in.second); - return *this; - } - - - void - swap(tuple& __in) - noexcept(__and_<__is_nothrow_swappable<_T1>, - __is_nothrow_swappable<_T2>>::value) - { _Inherited::_M_swap(__in); } - }; - - - - template - struct tuple_size> - : public integral_constant { }; -# 1258 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/tuple" 3 - template - struct tuple_element<__i, tuple<_Head, _Tail...> > - : tuple_element<__i - 1, tuple<_Tail...> > { }; - - - - - template - struct tuple_element<0, tuple<_Head, _Tail...> > - { - typedef _Head type; - }; - - - - - template - struct tuple_element<__i, tuple<>> - { - static_assert(__i < tuple_size>::value, - "tuple index is in range"); - }; - - template - constexpr _Head& - __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept - { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } - - template - constexpr const _Head& - __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept - { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } - - - template - constexpr __tuple_element_t<__i, tuple<_Elements...>>& - get(tuple<_Elements...>& __t) noexcept - { return std::__get_helper<__i>(__t); } - - - template - constexpr const __tuple_element_t<__i, tuple<_Elements...>>& - get(const tuple<_Elements...>& __t) noexcept - { return std::__get_helper<__i>(__t); } - - - template - constexpr __tuple_element_t<__i, tuple<_Elements...>>&& - get(tuple<_Elements...>&& __t) noexcept - { - typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; - return std::forward<__element_type&&>(std::get<__i>(__t)); - } - - - template - constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& - get(const tuple<_Elements...>&& __t) noexcept - { - typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; - return std::forward(std::get<__i>(__t)); - } - - - - - - template - constexpr _Head& - __get_helper2(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept - { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } - - template - constexpr const _Head& - __get_helper2(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept - { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } - - - template - constexpr _Tp& - get(tuple<_Types...>& __t) noexcept - { return std::__get_helper2<_Tp>(__t); } - - - template - constexpr _Tp&& - get(tuple<_Types...>&& __t) noexcept - { return std::forward<_Tp&&>(std::__get_helper2<_Tp>(__t)); } - - - template - constexpr const _Tp& - get(const tuple<_Types...>& __t) noexcept - { return std::__get_helper2<_Tp>(__t); } - - - - template - constexpr const _Tp&& - get(const tuple<_Types...>&& __t) noexcept - { return std::forward(std::__get_helper2<_Tp>(__t)); } - - - - template - struct __tuple_compare - { - static constexpr bool - __eq(const _Tp& __t, const _Up& __u) - { - return bool(std::get<__i>(__t) == std::get<__i>(__u)) - && __tuple_compare<_Tp, _Up, __i + 1, __size>::__eq(__t, __u); - } - - static constexpr bool - __less(const _Tp& __t, const _Up& __u) - { - return bool(std::get<__i>(__t) < std::get<__i>(__u)) - || (!bool(std::get<__i>(__u) < std::get<__i>(__t)) - && __tuple_compare<_Tp, _Up, __i + 1, __size>::__less(__t, __u)); - } - }; - - template - struct __tuple_compare<_Tp, _Up, __size, __size> - { - static constexpr bool - __eq(const _Tp&, const _Up&) { return true; } - - static constexpr bool - __less(const _Tp&, const _Up&) { return false; } - }; - - template - constexpr bool - operator==(const tuple<_TElements...>& __t, - const tuple<_UElements...>& __u) - { - static_assert(sizeof...(_TElements) == sizeof...(_UElements), - "tuple objects can only be compared if they have equal sizes."); - using __compare = __tuple_compare, - tuple<_UElements...>, - 0, sizeof...(_TElements)>; - return __compare::__eq(__t, __u); - } -# 1433 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/tuple" 3 - template - constexpr bool - operator<(const tuple<_TElements...>& __t, - const tuple<_UElements...>& __u) - { - static_assert(sizeof...(_TElements) == sizeof...(_UElements), - "tuple objects can only be compared if they have equal sizes."); - using __compare = __tuple_compare, - tuple<_UElements...>, - 0, sizeof...(_TElements)>; - return __compare::__less(__t, __u); - } - - template - constexpr bool - operator!=(const tuple<_TElements...>& __t, - const tuple<_UElements...>& __u) - { return !(__t == __u); } - - template - constexpr bool - operator>(const tuple<_TElements...>& __t, - const tuple<_UElements...>& __u) - { return __u < __t; } - - template - constexpr bool - operator<=(const tuple<_TElements...>& __t, - const tuple<_UElements...>& __u) - { return !(__u < __t); } - - template - constexpr bool - operator>=(const tuple<_TElements...>& __t, - const tuple<_UElements...>& __u) - { return !(__t < __u); } - - - - template - constexpr tuple::__type...> - make_tuple(_Elements&&... __args) - { - typedef tuple::__type...> - __result_type; - return __result_type(std::forward<_Elements>(__args)...); - } - - - - - template - constexpr tuple<_Elements&&...> - forward_as_tuple(_Elements&&... __args) noexcept - { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); } - - template - struct __make_tuple_impl; - - template - struct __make_tuple_impl<_Idx, tuple<_Tp...>, _Tuple, _Nm> - : __make_tuple_impl<_Idx + 1, - tuple<_Tp..., __tuple_element_t<_Idx, _Tuple>>, - _Tuple, _Nm> - { }; - - template - struct __make_tuple_impl<_Nm, tuple<_Tp...>, _Tuple, _Nm> - { - typedef tuple<_Tp...> __type; - }; - - template - struct __do_make_tuple - : __make_tuple_impl<0, tuple<>, _Tuple, std::tuple_size<_Tuple>::value> - { }; - - - template - struct __make_tuple - : public __do_make_tuple<__remove_cvref_t<_Tuple>> - { }; - - - template - struct __combine_tuples; - - template<> - struct __combine_tuples<> - { - typedef tuple<> __type; - }; - - template - struct __combine_tuples> - { - typedef tuple<_Ts...> __type; - }; - - template - struct __combine_tuples, tuple<_T2s...>, _Rem...> - { - typedef typename __combine_tuples, - _Rem...>::__type __type; - }; - - - template - struct __tuple_cat_result - { - typedef typename __combine_tuples - ::__type...>::__type __type; - }; - - - - template - struct __make_1st_indices; - - template<> - struct __make_1st_indices<> - { - typedef std::_Index_tuple<> __type; - }; - - template - struct __make_1st_indices<_Tp, _Tpls...> - { - typedef typename std::_Build_index_tuple::type>::value>::__type __type; - }; - - - - - template - struct __tuple_concater; - - template - struct __tuple_concater<_Ret, std::_Index_tuple<_Is...>, _Tp, _Tpls...> - { - template - static constexpr _Ret - _S_do(_Tp&& __tp, _Tpls&&... __tps, _Us&&... __us) - { - typedef typename __make_1st_indices<_Tpls...>::__type __idx; - typedef __tuple_concater<_Ret, __idx, _Tpls...> __next; - return __next::_S_do(std::forward<_Tpls>(__tps)..., - std::forward<_Us>(__us)..., - std::get<_Is>(std::forward<_Tp>(__tp))...); - } - }; - - template - struct __tuple_concater<_Ret, std::_Index_tuple<>> - { - template - static constexpr _Ret - _S_do(_Us&&... __us) - { - return _Ret(std::forward<_Us>(__us)...); - } - }; - - - template...>::value>::type> - constexpr auto - tuple_cat(_Tpls&&... __tpls) - -> typename __tuple_cat_result<_Tpls...>::__type - { - typedef typename __tuple_cat_result<_Tpls...>::__type __ret; - typedef typename __make_1st_indices<_Tpls...>::__type __idx; - typedef __tuple_concater<__ret, __idx, _Tpls...> __concater; - return __concater::_S_do(std::forward<_Tpls>(__tpls)...); - } - - - - - template - constexpr tuple<_Elements&...> - tie(_Elements&... __args) noexcept - { return tuple<_Elements&...>(__args...); } - - - template - - inline - - - typename enable_if<__and_<__is_swappable<_Elements>...>::value - >::type - - - - swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y) - noexcept(noexcept(__x.swap(__y))) - { __x.swap(__y); } - - - template - - typename enable_if...>::value>::type - swap(tuple<_Elements...>&, tuple<_Elements...>&) = delete; - - - - - - - struct _Swallow_assign - { - template - constexpr const _Swallow_assign& - operator=(const _Tp&) const - { return *this; } - }; - - - - constexpr _Swallow_assign ignore{}; - - - template - struct uses_allocator, _Alloc> : true_type { }; -# 1669 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/tuple" 3 - template - template - - inline - pair<_T1, _T2>:: - pair(piecewise_construct_t, - tuple<_Args1...> __first, tuple<_Args2...> __second) - : pair(__first, __second, - typename _Build_index_tuple::__type(), - typename _Build_index_tuple::__type()) - { } - - template - template - inline - pair<_T1, _T2>:: - pair(tuple<_Args1...>& __tuple1, tuple<_Args2...>& __tuple2, - _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>) - : first(std::forward<_Args1>(std::get<_Indexes1>(__tuple1))...), - second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...) - { } -# 1759 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/tuple" 3 - -} -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/unique_ptr.h" 2 3 - - - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - template class auto_ptr; -#pragma GCC diagnostic pop - - - - template - struct default_delete - { - - constexpr default_delete() noexcept = default; - - - - - - - template>> - default_delete(const default_delete<_Up>&) noexcept { } - - - void - operator()(_Tp* __ptr) const - { - static_assert(!is_void<_Tp>::value, - "can't delete pointer to incomplete type"); - static_assert(sizeof(_Tp)>0, - "can't delete pointer to incomplete type"); - delete __ptr; - } - }; - - - - - - template - struct default_delete<_Tp[]> - { - public: - - constexpr default_delete() noexcept = default; -# 108 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/unique_ptr.h" 3 - template>> - default_delete(const default_delete<_Up[]>&) noexcept { } - - - template - typename enable_if::value>::type - operator()(_Up* __ptr) const - { - static_assert(sizeof(_Tp)>0, - "can't delete pointer to incomplete type"); - delete [] __ptr; - } - }; - - - - - template - class __uniq_ptr_impl - { - template - struct _Ptr - { - using type = _Up*; - }; - - template - struct - _Ptr<_Up, _Ep, __void_t::type::pointer>> - { - using type = typename remove_reference<_Ep>::type::pointer; - }; - - public: - using _DeleterConstraint = enable_if< - __and_<__not_>, - is_default_constructible<_Dp>>::value>; - - using pointer = typename _Ptr<_Tp, _Dp>::type; - - static_assert( !is_rvalue_reference<_Dp>::value, - "unique_ptr's deleter type must be a function object type" - " or an lvalue reference type" ); - - __uniq_ptr_impl() = default; - __uniq_ptr_impl(pointer __p) : _M_t() { _M_ptr() = __p; } - - template - __uniq_ptr_impl(pointer __p, _Del&& __d) - : _M_t(__p, std::forward<_Del>(__d)) { } - - __uniq_ptr_impl(__uniq_ptr_impl&& __u) noexcept - : _M_t(std::move(__u._M_t)) - { __u._M_ptr() = nullptr; } - - __uniq_ptr_impl& operator=(__uniq_ptr_impl&& __u) noexcept - { - reset(__u.release()); - _M_deleter() = std::forward<_Dp>(__u._M_deleter()); - return *this; - } - - pointer& _M_ptr() { return std::get<0>(_M_t); } - pointer _M_ptr() const { return std::get<0>(_M_t); } - _Dp& _M_deleter() { return std::get<1>(_M_t); } - const _Dp& _M_deleter() const { return std::get<1>(_M_t); } - - void reset(pointer __p) noexcept - { - const pointer __old_p = _M_ptr(); - _M_ptr() = __p; - if (__old_p) - _M_deleter()(__old_p); - } - - pointer release() noexcept - { - pointer __p = _M_ptr(); - _M_ptr() = nullptr; - return __p; - } - - void - swap(__uniq_ptr_impl& __rhs) noexcept - { - using std::swap; - swap(this->_M_ptr(), __rhs._M_ptr()); - swap(this->_M_deleter(), __rhs._M_deleter()); - } - - private: - tuple _M_t; - }; - - - template ::value, - bool = is_move_assignable<_Dp>::value> - struct __uniq_ptr_data : __uniq_ptr_impl<_Tp, _Dp> - { - using __uniq_ptr_impl<_Tp, _Dp>::__uniq_ptr_impl; - __uniq_ptr_data(__uniq_ptr_data&&) = default; - __uniq_ptr_data& operator=(__uniq_ptr_data&&) = default; - }; - - template - struct __uniq_ptr_data<_Tp, _Dp, true, false> : __uniq_ptr_impl<_Tp, _Dp> - { - using __uniq_ptr_impl<_Tp, _Dp>::__uniq_ptr_impl; - __uniq_ptr_data(__uniq_ptr_data&&) = default; - __uniq_ptr_data& operator=(__uniq_ptr_data&&) = delete; - }; - - template - struct __uniq_ptr_data<_Tp, _Dp, false, true> : __uniq_ptr_impl<_Tp, _Dp> - { - using __uniq_ptr_impl<_Tp, _Dp>::__uniq_ptr_impl; - __uniq_ptr_data(__uniq_ptr_data&&) = delete; - __uniq_ptr_data& operator=(__uniq_ptr_data&&) = default; - }; - - template - struct __uniq_ptr_data<_Tp, _Dp, false, false> : __uniq_ptr_impl<_Tp, _Dp> - { - using __uniq_ptr_impl<_Tp, _Dp>::__uniq_ptr_impl; - __uniq_ptr_data(__uniq_ptr_data&&) = delete; - __uniq_ptr_data& operator=(__uniq_ptr_data&&) = delete; - }; - - - - template > - class unique_ptr - { - template - using _DeleterConstraint = - typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type; - - __uniq_ptr_data<_Tp, _Dp> _M_t; - - public: - using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; - using element_type = _Tp; - using deleter_type = _Dp; - - private: - - - template - using __safe_conversion_up = __and_< - is_convertible::pointer, pointer>, - __not_> - >; - - public: - - - - template> - constexpr unique_ptr() noexcept - : _M_t() - { } - - - - - - - - template> - explicit - unique_ptr(pointer __p) noexcept - : _M_t(__p) - { } -# 291 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/unique_ptr.h" 3 - template>> - unique_ptr(pointer __p, const deleter_type& __d) noexcept - : _M_t(__p, __d) { } -# 303 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/unique_ptr.h" 3 - template>> - unique_ptr(pointer __p, - __enable_if_t::value, - _Del&&> __d) noexcept - : _M_t(__p, std::move(__d)) - { } - - template::type> - unique_ptr(pointer, - __enable_if_t::value, - _DelUnref&&>) = delete; - - - template> - constexpr unique_ptr(nullptr_t) noexcept - : _M_t() - { } - - - - - unique_ptr(unique_ptr&&) = default; - - - - - - - - template, - typename conditional::value, - is_same<_Ep, _Dp>, - is_convertible<_Ep, _Dp>>::type>> - unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept - : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter())) - { } - - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - - template, is_same<_Dp, default_delete<_Tp>>>> - unique_ptr(auto_ptr<_Up>&& __u) noexcept; -#pragma GCC diagnostic pop - - - - ~unique_ptr() noexcept - { - static_assert(__is_invocable::value, - "unique_ptr's deleter must be invocable with a pointer"); - auto& __ptr = _M_t._M_ptr(); - if (__ptr != nullptr) - get_deleter()(std::move(__ptr)); - __ptr = pointer(); - } - - - - - - - - unique_ptr& operator=(unique_ptr&&) = default; -# 379 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/unique_ptr.h" 3 - template - typename enable_if< __and_< - __safe_conversion_up<_Up, _Ep>, - is_assignable - >::value, - unique_ptr&>::type - operator=(unique_ptr<_Up, _Ep>&& __u) noexcept - { - reset(__u.release()); - get_deleter() = std::forward<_Ep>(__u.get_deleter()); - return *this; - } - - - unique_ptr& - operator=(nullptr_t) noexcept - { - reset(); - return *this; - } - - - - - typename add_lvalue_reference::type - operator*() const - { - ; - return *get(); - } - - - pointer - operator->() const noexcept - { - ; - return get(); - } - - - pointer - get() const noexcept - { return _M_t._M_ptr(); } - - - deleter_type& - get_deleter() noexcept - { return _M_t._M_deleter(); } - - - const deleter_type& - get_deleter() const noexcept - { return _M_t._M_deleter(); } - - - explicit operator bool() const noexcept - { return get() == pointer() ? false : true; } - - - - - pointer - release() noexcept - { return _M_t.release(); } - - - - - - - - void - reset(pointer __p = pointer()) noexcept - { - static_assert(__is_invocable::value, - "unique_ptr's deleter must be invocable with a pointer"); - _M_t.reset(std::move(__p)); - } - - - void - swap(unique_ptr& __u) noexcept - { - static_assert(__is_swappable<_Dp>::value, "deleter must be swappable"); - _M_t.swap(__u._M_t); - } - - - unique_ptr(const unique_ptr&) = delete; - unique_ptr& operator=(const unique_ptr&) = delete; - }; - - - - - - template - class unique_ptr<_Tp[], _Dp> - { - template - using _DeleterConstraint = - typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type; - - __uniq_ptr_data<_Tp, _Dp> _M_t; - - template - using __remove_cv = typename remove_cv<_Up>::type; - - - template - using __is_derived_Tp - = __and_< is_base_of<_Tp, _Up>, - __not_, __remove_cv<_Up>>> >; - - public: - using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; - using element_type = _Tp; - using deleter_type = _Dp; - - - - template, - typename _UP_pointer = typename _UPtr::pointer, - typename _UP_element_type = typename _UPtr::element_type> - using __safe_conversion_up = __and_< - is_array<_Up>, - is_same, - is_same<_UP_pointer, _UP_element_type*>, - is_convertible<_UP_element_type(*)[], element_type(*)[]> - >; - - - template - using __safe_conversion_raw = __and_< - __or_<__or_, - is_same<_Up, nullptr_t>>, - __and_, - is_same, - is_convertible< - typename remove_pointer<_Up>::type(*)[], - element_type(*)[]> - > - > - >; - - - - - template> - constexpr unique_ptr() noexcept - : _M_t() - { } -# 540 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/unique_ptr.h" 3 - template, - typename = typename enable_if< - __safe_conversion_raw<_Up>::value, bool>::type> - explicit - unique_ptr(_Up __p) noexcept - : _M_t(__p) - { } -# 558 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/unique_ptr.h" 3 - template, - is_copy_constructible<_Del>>> - unique_ptr(_Up __p, const deleter_type& __d) noexcept - : _M_t(__p, __d) { } -# 572 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/unique_ptr.h" 3 - template, - is_move_constructible<_Del>>> - unique_ptr(_Up __p, - __enable_if_t::value, - _Del&&> __d) noexcept - : _M_t(std::move(__p), std::move(__d)) - { } - - template::type, - typename = _Require<__safe_conversion_raw<_Up>>> - unique_ptr(_Up, - __enable_if_t::value, - _DelUnref&&>) = delete; - - - unique_ptr(unique_ptr&&) = default; - - - template> - constexpr unique_ptr(nullptr_t) noexcept - : _M_t() - { } - - template, - typename conditional::value, - is_same<_Ep, _Dp>, - is_convertible<_Ep, _Dp>>::type>> - unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept - : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter())) - { } - - - ~unique_ptr() - { - auto& __ptr = _M_t._M_ptr(); - if (__ptr != nullptr) - get_deleter()(__ptr); - __ptr = pointer(); - } - - - - - - - - unique_ptr& - operator=(unique_ptr&&) = default; -# 631 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/unique_ptr.h" 3 - template - typename - enable_if<__and_<__safe_conversion_up<_Up, _Ep>, - is_assignable - >::value, - unique_ptr&>::type - operator=(unique_ptr<_Up, _Ep>&& __u) noexcept - { - reset(__u.release()); - get_deleter() = std::forward<_Ep>(__u.get_deleter()); - return *this; - } - - - unique_ptr& - operator=(nullptr_t) noexcept - { - reset(); - return *this; - } - - - - - typename std::add_lvalue_reference::type - operator[](size_t __i) const - { - ; - return get()[__i]; - } - - - pointer - get() const noexcept - { return _M_t._M_ptr(); } - - - deleter_type& - get_deleter() noexcept - { return _M_t._M_deleter(); } - - - const deleter_type& - get_deleter() const noexcept - { return _M_t._M_deleter(); } - - - explicit operator bool() const noexcept - { return get() == pointer() ? false : true; } - - - - - pointer - release() noexcept - { return _M_t.release(); } - - - - - - - - template , - __and_, - is_pointer<_Up>, - is_convertible< - typename remove_pointer<_Up>::type(*)[], - element_type(*)[] - > - > - > - >> - void - reset(_Up __p) noexcept - { _M_t.reset(std::move(__p)); } - - void reset(nullptr_t = nullptr) noexcept - { reset(pointer()); } - - - void - swap(unique_ptr& __u) noexcept - { - static_assert(__is_swappable<_Dp>::value, "deleter must be swappable"); - _M_t.swap(__u._M_t); - } - - - unique_ptr(const unique_ptr&) = delete; - unique_ptr& operator=(const unique_ptr&) = delete; - }; - - - - - template - inline - - - typename enable_if<__is_swappable<_Dp>::value>::type - - - - swap(unique_ptr<_Tp, _Dp>& __x, - unique_ptr<_Tp, _Dp>& __y) noexcept - { __x.swap(__y); } - - - template - typename enable_if::value>::type - swap(unique_ptr<_Tp, _Dp>&, - unique_ptr<_Tp, _Dp>&) = delete; - - - - template - inline bool - operator==(const unique_ptr<_Tp, _Dp>& __x, - const unique_ptr<_Up, _Ep>& __y) - { return __x.get() == __y.get(); } - - - template - inline bool - operator==(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept - { return !__x; } - - - - template - inline bool - operator==(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept - { return !__x; } - - - template - inline bool - operator!=(const unique_ptr<_Tp, _Dp>& __x, - const unique_ptr<_Up, _Ep>& __y) - { return __x.get() != __y.get(); } - - - template - inline bool - operator!=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept - { return (bool)__x; } - - - template - inline bool - operator!=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept - { return (bool)__x; } - - - - template - inline bool - operator<(const unique_ptr<_Tp, _Dp>& __x, - const unique_ptr<_Up, _Ep>& __y) - { - typedef typename - std::common_type::pointer, - typename unique_ptr<_Up, _Ep>::pointer>::type _CT; - return std::less<_CT>()(__x.get(), __y.get()); - } - - - template - inline bool - operator<(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) - { - return std::less::pointer>()(__x.get(), - nullptr); - } - - - template - inline bool - operator<(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) - { - return std::less::pointer>()(nullptr, - __x.get()); - } - - - template - inline bool - operator<=(const unique_ptr<_Tp, _Dp>& __x, - const unique_ptr<_Up, _Ep>& __y) - { return !(__y < __x); } - - - template - inline bool - operator<=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) - { return !(nullptr < __x); } - - - template - inline bool - operator<=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) - { return !(__x < nullptr); } - - - template - inline bool - operator>(const unique_ptr<_Tp, _Dp>& __x, - const unique_ptr<_Up, _Ep>& __y) - { return (__y < __x); } - - - template - inline bool - operator>(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) - { - return std::less::pointer>()(nullptr, - __x.get()); - } - - - template - inline bool - operator>(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) - { - return std::less::pointer>()(__x.get(), - nullptr); - } - - - template - inline bool - operator>=(const unique_ptr<_Tp, _Dp>& __x, - const unique_ptr<_Up, _Ep>& __y) - { return !(__x < __y); } - - - template - inline bool - operator>=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) - { return !(__x < nullptr); } - - - template - inline bool - operator>=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) - { return !(nullptr < __x); } -# 911 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/unique_ptr.h" 3 - template::__enable_hash_call> - struct __uniq_ptr_hash - - : private __poison_hash<_Ptr> - - { - size_t - operator()(const _Up& __u) const - noexcept(noexcept(std::declval>()(std::declval<_Ptr>()))) - { return hash<_Ptr>()(__u.get()); } - }; - - template - struct __uniq_ptr_hash<_Up, _Ptr, false> - : private __poison_hash<_Ptr> - { }; - - - - template - struct hash> - : public __hash_base>, - public __uniq_ptr_hash> - { }; - - - - - - - - template - struct _MakeUniq - { typedef unique_ptr<_Tp> __single_object; }; - - template - struct _MakeUniq<_Tp[]> - { typedef unique_ptr<_Tp[]> __array; }; - - template - struct _MakeUniq<_Tp[_Bound]> - { struct __invalid_type { }; }; - - - - - template - inline typename _MakeUniq<_Tp>::__single_object - make_unique(_Args&&... __args) - { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); } - - - template - inline typename _MakeUniq<_Tp>::__array - make_unique(size_t __num) - { return unique_ptr<_Tp>(new remove_extent_t<_Tp>[__num]()); } - - - template - inline typename _MakeUniq<_Tp>::__invalid_type - make_unique(_Args&&...) = delete; -# 992 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/unique_ptr.h" 3 - -} -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_conv.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - - template - bool - __do_str_codecvt(const _InChar* __first, const _InChar* __last, - _OutStr& __outstr, const _Codecvt& __cvt, _State& __state, - size_t& __count, _Fn __fn) - { - if (__first == __last) - { - __outstr.clear(); - __count = 0; - return true; - } - - size_t __outchars = 0; - auto __next = __first; - const auto __maxlen = __cvt.max_length() + 1; - - codecvt_base::result __result; - do - { - __outstr.resize(__outstr.size() + (__last - __next) * __maxlen); - auto __outnext = &__outstr.front() + __outchars; - auto const __outlast = &__outstr.back() + 1; - __result = (__cvt.*__fn)(__state, __next, __last, __next, - __outnext, __outlast, __outnext); - __outchars = __outnext - &__outstr.front(); - } - while (__result == codecvt_base::partial && __next != __last - && (__outstr.size() - __outchars) < __maxlen); - - if (__result == codecvt_base::error) - { - __count = __next - __first; - return false; - } - - - - if (is_same()) - if (__result == codecvt_base::noconv) - { - __outstr.assign(__first, __last); - __count = __last - __first; - return true; - } - - __outstr.resize(__outchars); - __count = __next - __first; - return true; - } - - - template - inline bool - __str_codecvt_in(const char* __first, const char* __last, - basic_string<_CharT, _Traits, _Alloc>& __outstr, - const codecvt<_CharT, char, _State>& __cvt, - _State& __state, size_t& __count) - { - using _Codecvt = codecvt<_CharT, char, _State>; - using _ConvFn - = codecvt_base::result - (_Codecvt::*)(_State&, const char*, const char*, const char*&, - _CharT*, _CharT*, _CharT*&) const; - _ConvFn __fn = &codecvt<_CharT, char, _State>::in; - return __do_str_codecvt(__first, __last, __outstr, __cvt, __state, - __count, __fn); - } - - - template - inline bool - __str_codecvt_in(const char* __first, const char* __last, - basic_string<_CharT, _Traits, _Alloc>& __outstr, - const codecvt<_CharT, char, _State>& __cvt) - { - _State __state = {}; - size_t __n; - return __str_codecvt_in(__first, __last, __outstr, __cvt, __state, __n); - } - - - template - inline bool - __str_codecvt_in_all(const char* __first, const char* __last, - basic_string<_CharT, _Traits, _Alloc>& __outstr, - const codecvt<_CharT, char, _State>& __cvt) - { - _State __state = {}; - size_t __n; - return __str_codecvt_in(__first, __last, __outstr, __cvt, __state, __n) - && (__n == (__last - __first)); - } - - - template - inline bool - __str_codecvt_out(const _CharT* __first, const _CharT* __last, - basic_string& __outstr, - const codecvt<_CharT, char, _State>& __cvt, - _State& __state, size_t& __count) - { - using _Codecvt = codecvt<_CharT, char, _State>; - using _ConvFn - = codecvt_base::result - (_Codecvt::*)(_State&, const _CharT*, const _CharT*, const _CharT*&, - char*, char*, char*&) const; - _ConvFn __fn = &codecvt<_CharT, char, _State>::out; - return __do_str_codecvt(__first, __last, __outstr, __cvt, __state, - __count, __fn); - } - - - template - inline bool - __str_codecvt_out(const _CharT* __first, const _CharT* __last, - basic_string& __outstr, - const codecvt<_CharT, char, _State>& __cvt) - { - _State __state = {}; - size_t __n; - return __str_codecvt_out(__first, __last, __outstr, __cvt, __state, __n); - } - - - template - inline bool - __str_codecvt_out_all(const _CharT* __first, const _CharT* __last, - basic_string& __outstr, - const codecvt<_CharT, char, _State>& __cvt) - { - _State __state = {}; - size_t __n; - return __str_codecvt_out(__first, __last, __outstr, __cvt, __state, __n) - && (__n == (__last - __first)); - } -# 226 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_conv.h" 3 -namespace __cxx11 { - - - template, - typename _Byte_alloc = allocator> - class wstring_convert - { - public: - typedef basic_string, _Byte_alloc> byte_string; - typedef basic_string<_Elem, char_traits<_Elem>, _Wide_alloc> wide_string; - typedef typename _Codecvt::state_type state_type; - typedef typename wide_string::traits_type::int_type int_type; - - - wstring_convert() : _M_cvt(new _Codecvt()) { } - - - - - - - - explicit - wstring_convert(_Codecvt* __pcvt) : _M_cvt(__pcvt) - { - if (!_M_cvt) - __throw_logic_error("wstring_convert"); - } -# 264 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_conv.h" 3 - wstring_convert(_Codecvt* __pcvt, state_type __state) - : _M_cvt(__pcvt), _M_state(__state), _M_with_cvtstate(true) - { - if (!_M_cvt) - __throw_logic_error("wstring_convert"); - } - - - - - - - explicit - wstring_convert(const byte_string& __byte_err, - const wide_string& __wide_err = wide_string()) - : _M_cvt(new _Codecvt), - _M_byte_err_string(__byte_err), _M_wide_err_string(__wide_err), - _M_with_strings(true) - { - if (!_M_cvt) - __throw_logic_error("wstring_convert"); - } - - ~wstring_convert() = default; - - - - wstring_convert(const wstring_convert&) = delete; - wstring_convert& operator=(const wstring_convert&) = delete; - - - wide_string - from_bytes(char __byte) - { - char __bytes[2] = { __byte }; - return from_bytes(__bytes, __bytes+1); - } - - wide_string - from_bytes(const char* __ptr) - { return from_bytes(__ptr, __ptr+char_traits::length(__ptr)); } - - wide_string - from_bytes(const byte_string& __str) - { - auto __ptr = __str.data(); - return from_bytes(__ptr, __ptr + __str.size()); - } - - wide_string - from_bytes(const char* __first, const char* __last) - { - if (!_M_with_cvtstate) - _M_state = state_type(); - wide_string __out{ _M_wide_err_string.get_allocator() }; - if (__str_codecvt_in(__first, __last, __out, *_M_cvt, _M_state, - _M_count)) - return __out; - if (_M_with_strings) - return _M_wide_err_string; - __throw_range_error("wstring_convert::from_bytes"); - } - - - - byte_string - to_bytes(_Elem __wchar) - { - _Elem __wchars[2] = { __wchar }; - return to_bytes(__wchars, __wchars+1); - } - - byte_string - to_bytes(const _Elem* __ptr) - { - return to_bytes(__ptr, __ptr+wide_string::traits_type::length(__ptr)); - } - - byte_string - to_bytes(const wide_string& __wstr) - { - auto __ptr = __wstr.data(); - return to_bytes(__ptr, __ptr + __wstr.size()); - } - - byte_string - to_bytes(const _Elem* __first, const _Elem* __last) - { - if (!_M_with_cvtstate) - _M_state = state_type(); - byte_string __out{ _M_byte_err_string.get_allocator() }; - if (__str_codecvt_out(__first, __last, __out, *_M_cvt, _M_state, - _M_count)) - return __out; - if (_M_with_strings) - return _M_byte_err_string; - __throw_range_error("wstring_convert::to_bytes"); - } - - - - - - size_t converted() const noexcept { return _M_count; } - - - state_type state() const { return _M_state; } - - private: - unique_ptr<_Codecvt> _M_cvt; - byte_string _M_byte_err_string; - wide_string _M_wide_err_string; - state_type _M_state = state_type(); - size_t _M_count = 0; - bool _M_with_cvtstate = false; - bool _M_with_strings = false; - }; - -} - - - template> - class wbuffer_convert : public basic_streambuf<_Elem, _Tr> - { - typedef basic_streambuf<_Elem, _Tr> _Wide_streambuf; - - public: - typedef typename _Codecvt::state_type state_type; - - - wbuffer_convert() : wbuffer_convert(nullptr) { } -# 405 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/locale_conv.h" 3 - explicit - wbuffer_convert(streambuf* __bytebuf, _Codecvt* __pcvt = new _Codecvt, - state_type __state = state_type()) - : _M_buf(__bytebuf), _M_cvt(__pcvt), _M_state(__state) - { - if (!_M_cvt) - __throw_logic_error("wbuffer_convert"); - - _M_always_noconv = _M_cvt->always_noconv(); - - if (_M_buf) - { - this->setp(_M_put_area, _M_put_area + _S_buffer_length); - this->setg(_M_get_area + _S_putback_length, - _M_get_area + _S_putback_length, - _M_get_area + _S_putback_length); - } - } - - ~wbuffer_convert() = default; - - - - wbuffer_convert(const wbuffer_convert&) = delete; - wbuffer_convert& operator=(const wbuffer_convert&) = delete; - - streambuf* rdbuf() const noexcept { return _M_buf; } - - streambuf* - rdbuf(streambuf *__bytebuf) noexcept - { - auto __prev = _M_buf; - _M_buf = __bytebuf; - return __prev; - } - - - state_type state() const noexcept { return _M_state; } - - protected: - int - sync() - { return _M_buf && _M_conv_put() && !_M_buf->pubsync() ? 0 : -1; } - - typename _Wide_streambuf::int_type - overflow(typename _Wide_streambuf::int_type __out) - { - if (!_M_buf || !_M_conv_put()) - return _Tr::eof(); - else if (!_Tr::eq_int_type(__out, _Tr::eof())) - return this->sputc(__out); - return _Tr::not_eof(__out); - } - - typename _Wide_streambuf::int_type - underflow() - { - if (!_M_buf) - return _Tr::eof(); - - if (this->gptr() < this->egptr() || (_M_buf && _M_conv_get())) - return _Tr::to_int_type(*this->gptr()); - else - return _Tr::eof(); - } - - streamsize - xsputn(const typename _Wide_streambuf::char_type* __s, streamsize __n) - { - if (!_M_buf || __n == 0) - return 0; - streamsize __done = 0; - do - { - auto __nn = std::min(this->epptr() - this->pptr(), - __n - __done); - _Tr::copy(this->pptr(), __s + __done, __nn); - this->pbump(__nn); - __done += __nn; - } while (__done < __n && _M_conv_put()); - return __done; - } - - private: - - bool - _M_conv_get() - { - const streamsize __pb1 = this->gptr() - this->eback(); - const streamsize __pb2 = _S_putback_length; - const streamsize __npb = std::min(__pb1, __pb2); - - _Tr::move(_M_get_area + _S_putback_length - __npb, - this->gptr() - __npb, __npb); - - streamsize __nbytes = sizeof(_M_get_buf) - _M_unconv; - __nbytes = std::min(__nbytes, _M_buf->in_avail()); - if (__nbytes < 1) - __nbytes = 1; - __nbytes = _M_buf->sgetn(_M_get_buf + _M_unconv, __nbytes); - if (__nbytes < 1) - return false; - __nbytes += _M_unconv; - - - - _Elem* __outbuf = _M_get_area + _S_putback_length; - _Elem* __outnext = __outbuf; - const char* __bnext = _M_get_buf; - - codecvt_base::result __result; - if (_M_always_noconv) - __result = codecvt_base::noconv; - else - { - _Elem* __outend = _M_get_area + _S_buffer_length; - - __result = _M_cvt->in(_M_state, - __bnext, __bnext + __nbytes, __bnext, - __outbuf, __outend, __outnext); - } - - if (__result == codecvt_base::noconv) - { - - auto __get_buf = reinterpret_cast(_M_get_buf); - _Tr::copy(__outbuf, __get_buf, __nbytes); - _M_unconv = 0; - return true; - } - - if ((_M_unconv = _M_get_buf + __nbytes - __bnext)) - char_traits::move(_M_get_buf, __bnext, _M_unconv); - - this->setg(__outbuf, __outbuf, __outnext); - - return __result != codecvt_base::error; - } - - - bool - _M_put(...) - { return false; } - - bool - _M_put(const char* __p, streamsize __n) - { - if (_M_buf->sputn(__p, __n) < __n) - return false; - return true; - } - - - bool - _M_conv_put() - { - _Elem* const __first = this->pbase(); - const _Elem* const __last = this->pptr(); - const streamsize __pending = __last - __first; - - if (_M_always_noconv) - return _M_put(__first, __pending); - - char __outbuf[2 * _S_buffer_length]; - - const _Elem* __next = __first; - const _Elem* __start; - do - { - __start = __next; - char* __outnext = __outbuf; - char* const __outlast = __outbuf + sizeof(__outbuf); - auto __result = _M_cvt->out(_M_state, __next, __last, __next, - __outnext, __outlast, __outnext); - if (__result == codecvt_base::error) - return false; - else if (__result == codecvt_base::noconv) - return _M_put(__next, __pending); - - if (!_M_put(__outbuf, __outnext - __outbuf)) - return false; - } - while (__next != __last && __next != __start); - - if (__next != __last) - _Tr::move(__first, __next, __last - __next); - - this->pbump(__first - __next); - return __next != __first; - } - - streambuf* _M_buf; - unique_ptr<_Codecvt> _M_cvt; - state_type _M_state; - - static const streamsize _S_buffer_length = 32; - static const streamsize _S_putback_length = 3; - _Elem _M_put_area[_S_buffer_length]; - _Elem _M_get_area[_S_buffer_length]; - streamsize _M_unconv = 0; - char _M_get_buf[_S_buffer_length-_S_putback_length]; - bool _M_always_noconv; - }; - - - - - - -} -# 44 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/locale" 2 3 -# 44 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 2 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/quoted_string.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/quoted_string.h" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/quoted_string.h" 3 - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -namespace __cxx11 { -# 64 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - template - class basic_stringbuf : public basic_streambuf<_CharT, _Traits> - { - struct __xfer_bufptrs; - public: - - typedef _CharT char_type; - typedef _Traits traits_type; - - - typedef _Alloc allocator_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - typedef basic_streambuf __streambuf_type; - typedef basic_string __string_type; - typedef typename __string_type::size_type __size_type; - - protected: - - ios_base::openmode _M_mode; - - - __string_type _M_string; - - public: -# 99 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - basic_stringbuf() - : __streambuf_type(), _M_mode(ios_base::in | ios_base::out), _M_string() - { } -# 110 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - explicit - basic_stringbuf(ios_base::openmode __mode) - : __streambuf_type(), _M_mode(__mode), _M_string() - { } -# 123 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - explicit - basic_stringbuf(const __string_type& __str, - ios_base::openmode __mode = ios_base::in | ios_base::out) - : __streambuf_type(), _M_mode(), - _M_string(__str.data(), __str.size(), __str.get_allocator()) - { _M_stringbuf_init(__mode); } - - - basic_stringbuf(const basic_stringbuf&) = delete; - - basic_stringbuf(basic_stringbuf&& __rhs) - : basic_stringbuf(std::move(__rhs), __xfer_bufptrs(__rhs, this)) - { __rhs._M_sync(const_cast(__rhs._M_string.data()), 0, 0); } - - - - basic_stringbuf& - operator=(const basic_stringbuf&) = delete; - - basic_stringbuf& - operator=(basic_stringbuf&& __rhs) - { - __xfer_bufptrs __st{__rhs, this}; - const __streambuf_type& __base = __rhs; - __streambuf_type::operator=(__base); - this->pubimbue(__rhs.getloc()); - _M_mode = __rhs._M_mode; - _M_string = std::move(__rhs._M_string); - __rhs._M_sync(const_cast(__rhs._M_string.data()), 0, 0); - return *this; - } - - void - swap(basic_stringbuf& __rhs) - { - __xfer_bufptrs __l_st{*this, std::__addressof(__rhs)}; - __xfer_bufptrs __r_st{__rhs, this}; - __streambuf_type& __base = __rhs; - __streambuf_type::swap(__base); - __rhs.pubimbue(this->pubimbue(__rhs.getloc())); - std::swap(_M_mode, __rhs._M_mode); - std::swap(_M_string, __rhs._M_string); - } -# 177 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - __string_type - str() const - { - __string_type __ret(_M_string.get_allocator()); - if (this->pptr()) - { - - if (this->pptr() > this->egptr()) - __ret.assign(this->pbase(), this->pptr()); - else - __ret.assign(this->pbase(), this->egptr()); - } - else - __ret = _M_string; - return __ret; - } -# 201 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - void - str(const __string_type& __s) - { - - - _M_string.assign(__s.data(), __s.size()); - _M_stringbuf_init(_M_mode); - } - - protected: - - void - _M_stringbuf_init(ios_base::openmode __mode) - { - _M_mode = __mode; - __size_type __len = 0; - if (_M_mode & (ios_base::ate | ios_base::app)) - __len = _M_string.size(); - _M_sync(const_cast(_M_string.data()), 0, __len); - } - - virtual streamsize - showmanyc() - { - streamsize __ret = -1; - if (_M_mode & ios_base::in) - { - _M_update_egptr(); - __ret = this->egptr() - this->gptr(); - } - return __ret; - } - - virtual int_type - underflow(); - - virtual int_type - pbackfail(int_type __c = traits_type::eof()); - - virtual int_type - overflow(int_type __c = traits_type::eof()); -# 254 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - virtual __streambuf_type* - setbuf(char_type* __s, streamsize __n) - { - if (__s && __n >= 0) - { - - - - - - - _M_string.clear(); - - - _M_sync(__s, __n, 0); - } - return this; - } - - virtual pos_type - seekoff(off_type __off, ios_base::seekdir __way, - ios_base::openmode __mode = ios_base::in | ios_base::out); - - virtual pos_type - seekpos(pos_type __sp, - ios_base::openmode __mode = ios_base::in | ios_base::out); - - - - - void - _M_sync(char_type* __base, __size_type __i, __size_type __o); - - - - void - _M_update_egptr() - { - const bool __testin = _M_mode & ios_base::in; - if (this->pptr() && this->pptr() > this->egptr()) - { - if (__testin) - this->setg(this->eback(), this->gptr(), this->pptr()); - else - this->setg(this->pptr(), this->pptr(), this->pptr()); - } - } - - - - void - _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off); - - private: - - - - - struct __xfer_bufptrs - { - __xfer_bufptrs(const basic_stringbuf& __from, basic_stringbuf* __to) - : _M_to{__to}, _M_goff{-1, -1, -1}, _M_poff{-1, -1, -1} - { - const _CharT* const __str = __from._M_string.data(); - const _CharT* __end = nullptr; - if (__from.eback()) - { - _M_goff[0] = __from.eback() - __str; - _M_goff[1] = __from.gptr() - __str; - _M_goff[2] = __from.egptr() - __str; - __end = __from.egptr(); - } - if (__from.pbase()) - { - _M_poff[0] = __from.pbase() - __str; - _M_poff[1] = __from.pptr() - __from.pbase(); - _M_poff[2] = __from.epptr() - __str; - if (__from.pptr() > __end) - __end = __from.pptr(); - } - - - if (__end) - { - - - auto& __mut_from = const_cast(__from); - __mut_from._M_string._M_length(__end - __str); - } - } - - ~__xfer_bufptrs() - { - char_type* __str = const_cast(_M_to->_M_string.data()); - if (_M_goff[0] != -1) - _M_to->setg(__str+_M_goff[0], __str+_M_goff[1], __str+_M_goff[2]); - if (_M_poff[0] != -1) - _M_to->_M_pbump(__str+_M_poff[0], __str+_M_poff[2], _M_poff[1]); - } - - basic_stringbuf* _M_to; - off_type _M_goff[3]; - off_type _M_poff[3]; - }; -# 368 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - basic_stringbuf(basic_stringbuf&& __rhs, __xfer_bufptrs&&) - : __streambuf_type(static_cast(__rhs)), - _M_mode(__rhs._M_mode), _M_string(std::move(__rhs._M_string)) - { } - - }; -# 391 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - template - class basic_istringstream : public basic_istream<_CharT, _Traits> - { - public: - - typedef _CharT char_type; - typedef _Traits traits_type; - - - typedef _Alloc allocator_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - - typedef basic_string<_CharT, _Traits, _Alloc> __string_type; - typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; - typedef basic_istream __istream_type; - - private: - __stringbuf_type _M_stringbuf; - - public: -# 425 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - basic_istringstream() - : __istream_type(), _M_stringbuf(ios_base::in) - { this->init(&_M_stringbuf); } -# 441 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - explicit - basic_istringstream(ios_base::openmode __mode) - : __istream_type(), _M_stringbuf(__mode | ios_base::in) - { this->init(&_M_stringbuf); } -# 459 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - explicit - basic_istringstream(const __string_type& __str, - ios_base::openmode __mode = ios_base::in) - : __istream_type(), _M_stringbuf(__str, __mode | ios_base::in) - { this->init(&_M_stringbuf); } - - - - - - - - ~basic_istringstream() - { } - - - basic_istringstream(const basic_istringstream&) = delete; - - basic_istringstream(basic_istringstream&& __rhs) - : __istream_type(std::move(__rhs)), - _M_stringbuf(std::move(__rhs._M_stringbuf)) - { __istream_type::set_rdbuf(&_M_stringbuf); } - - - - basic_istringstream& - operator=(const basic_istringstream&) = delete; - - basic_istringstream& - operator=(basic_istringstream&& __rhs) - { - __istream_type::operator=(std::move(__rhs)); - _M_stringbuf = std::move(__rhs._M_stringbuf); - return *this; - } - - void - swap(basic_istringstream& __rhs) - { - __istream_type::swap(__rhs); - _M_stringbuf.swap(__rhs._M_stringbuf); - } -# 510 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - __stringbuf_type* - rdbuf() const - { return const_cast<__stringbuf_type*>(&_M_stringbuf); } - - - - - - __string_type - str() const - { return _M_stringbuf.str(); } - - - - - - - - void - str(const __string_type& __s) - { _M_stringbuf.str(__s); } - }; -# 549 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - template - class basic_ostringstream : public basic_ostream<_CharT, _Traits> - { - public: - - typedef _CharT char_type; - typedef _Traits traits_type; - - - typedef _Alloc allocator_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - - typedef basic_string<_CharT, _Traits, _Alloc> __string_type; - typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; - typedef basic_ostream __ostream_type; - - private: - __stringbuf_type _M_stringbuf; - - public: -# 583 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - basic_ostringstream() - : __ostream_type(), _M_stringbuf(ios_base::out) - { this->init(&_M_stringbuf); } -# 599 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - explicit - basic_ostringstream(ios_base::openmode __mode) - : __ostream_type(), _M_stringbuf(__mode | ios_base::out) - { this->init(&_M_stringbuf); } -# 617 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - explicit - basic_ostringstream(const __string_type& __str, - ios_base::openmode __mode = ios_base::out) - : __ostream_type(), _M_stringbuf(__str, __mode | ios_base::out) - { this->init(&_M_stringbuf); } - - - - - - - - ~basic_ostringstream() - { } - - - basic_ostringstream(const basic_ostringstream&) = delete; - - basic_ostringstream(basic_ostringstream&& __rhs) - : __ostream_type(std::move(__rhs)), - _M_stringbuf(std::move(__rhs._M_stringbuf)) - { __ostream_type::set_rdbuf(&_M_stringbuf); } - - - - basic_ostringstream& - operator=(const basic_ostringstream&) = delete; - - basic_ostringstream& - operator=(basic_ostringstream&& __rhs) - { - __ostream_type::operator=(std::move(__rhs)); - _M_stringbuf = std::move(__rhs._M_stringbuf); - return *this; - } - - void - swap(basic_ostringstream& __rhs) - { - __ostream_type::swap(__rhs); - _M_stringbuf.swap(__rhs._M_stringbuf); - } -# 668 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - __stringbuf_type* - rdbuf() const - { return const_cast<__stringbuf_type*>(&_M_stringbuf); } - - - - - - __string_type - str() const - { return _M_stringbuf.str(); } - - - - - - - - void - str(const __string_type& __s) - { _M_stringbuf.str(__s); } - }; -# 707 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - template - class basic_stringstream : public basic_iostream<_CharT, _Traits> - { - public: - - typedef _CharT char_type; - typedef _Traits traits_type; - - - typedef _Alloc allocator_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - - typedef basic_string<_CharT, _Traits, _Alloc> __string_type; - typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; - typedef basic_iostream __iostream_type; - - private: - __stringbuf_type _M_stringbuf; - - public: -# 741 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - basic_stringstream() - : __iostream_type(), _M_stringbuf(ios_base::out | ios_base::in) - { this->init(&_M_stringbuf); } -# 755 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - explicit - basic_stringstream(ios_base::openmode __m) - : __iostream_type(), _M_stringbuf(__m) - { this->init(&_M_stringbuf); } -# 771 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - explicit - basic_stringstream(const __string_type& __str, - ios_base::openmode __m = ios_base::out | ios_base::in) - : __iostream_type(), _M_stringbuf(__str, __m) - { this->init(&_M_stringbuf); } - - - - - - - - ~basic_stringstream() - { } - - - basic_stringstream(const basic_stringstream&) = delete; - - basic_stringstream(basic_stringstream&& __rhs) - : __iostream_type(std::move(__rhs)), - _M_stringbuf(std::move(__rhs._M_stringbuf)) - { __iostream_type::set_rdbuf(&_M_stringbuf); } - - - - basic_stringstream& - operator=(const basic_stringstream&) = delete; - - basic_stringstream& - operator=(basic_stringstream&& __rhs) - { - __iostream_type::operator=(std::move(__rhs)); - _M_stringbuf = std::move(__rhs._M_stringbuf); - return *this; - } - - void - swap(basic_stringstream& __rhs) - { - __iostream_type::swap(__rhs); - _M_stringbuf.swap(__rhs._M_stringbuf); - } -# 822 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 3 - __stringbuf_type* - rdbuf() const - { return const_cast<__stringbuf_type*>(&_M_stringbuf); } - - - - - - __string_type - str() const - { return _M_stringbuf.str(); } - - - - - - - - void - str(const __string_type& __s) - { _M_stringbuf.str(__s); } - }; - - - - template - inline void - swap(basic_stringbuf<_CharT, _Traits, _Allocator>& __x, - basic_stringbuf<_CharT, _Traits, _Allocator>& __y) - { __x.swap(__y); } - - - template - inline void - swap(basic_istringstream<_CharT, _Traits, _Allocator>& __x, - basic_istringstream<_CharT, _Traits, _Allocator>& __y) - { __x.swap(__y); } - - - template - inline void - swap(basic_ostringstream<_CharT, _Traits, _Allocator>& __x, - basic_ostringstream<_CharT, _Traits, _Allocator>& __y) - { __x.swap(__y); } - - - template - inline void - swap(basic_stringstream<_CharT, _Traits, _Allocator>& __x, - basic_stringstream<_CharT, _Traits, _Allocator>& __y) - { __x.swap(__y); } - - -} - -} - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/sstream.tcc" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/sstream.tcc" 3 - -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/sstream.tcc" 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - template - typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type - basic_stringbuf<_CharT, _Traits, _Alloc>:: - pbackfail(int_type __c) - { - int_type __ret = traits_type::eof(); - if (this->eback() < this->gptr()) - { - - - const bool __testeof = traits_type::eq_int_type(__c, __ret); - if (!__testeof) - { - const bool __testeq = traits_type::eq(traits_type:: - to_char_type(__c), - this->gptr()[-1]); - const bool __testout = this->_M_mode & ios_base::out; - if (__testeq || __testout) - { - this->gbump(-1); - if (!__testeq) - *this->gptr() = traits_type::to_char_type(__c); - __ret = __c; - } - } - else - { - this->gbump(-1); - __ret = traits_type::not_eof(__c); - } - } - return __ret; - } - - template - typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type - basic_stringbuf<_CharT, _Traits, _Alloc>:: - overflow(int_type __c) - { - const bool __testout = this->_M_mode & ios_base::out; - if (__builtin_expect(!__testout, false)) - return traits_type::eof(); - - const bool __testeof = traits_type::eq_int_type(__c, traits_type::eof()); - if (__builtin_expect(__testeof, false)) - return traits_type::not_eof(__c); - - const __size_type __capacity = _M_string.capacity(); - - - if ((this->epptr() - this->pbase()) < __capacity) - { - - char_type* __base = const_cast(_M_string.data()); - _M_pbump(__base, __base + __capacity, this->pptr() - this->pbase()); - if (_M_mode & ios_base::in) - { - const __size_type __nget = this->gptr() - this->eback(); - const __size_type __eget = this->egptr() - this->eback(); - this->setg(__base, __base + __nget, __base + __eget + 1); - } - *this->pptr() = traits_type::to_char_type(__c); - this->pbump(1); - return __c; - } - - - const __size_type __max_size = _M_string.max_size(); - const bool __testput = this->pptr() < this->epptr(); - if (__builtin_expect(!__testput && __capacity == __max_size, false)) - return traits_type::eof(); - - - - const char_type __conv = traits_type::to_char_type(__c); - if (!__testput) - { -# 129 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/sstream.tcc" 3 - const __size_type __opt_len = std::max(__size_type(2 * __capacity), - __size_type(512)); - const __size_type __len = std::min(__opt_len, __max_size); - __string_type __tmp(_M_string.get_allocator()); - __tmp.reserve(__len); - if (this->pbase()) - __tmp.assign(this->pbase(), this->epptr() - this->pbase()); - __tmp.push_back(__conv); - _M_string.swap(__tmp); - _M_sync(const_cast(_M_string.data()), - this->gptr() - this->eback(), this->pptr() - this->pbase()); - } - else - *this->pptr() = __conv; - this->pbump(1); - return __c; - } - - template - typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type - basic_stringbuf<_CharT, _Traits, _Alloc>:: - underflow() - { - int_type __ret = traits_type::eof(); - const bool __testin = this->_M_mode & ios_base::in; - if (__testin) - { - - _M_update_egptr(); - - if (this->gptr() < this->egptr()) - __ret = traits_type::to_int_type(*this->gptr()); - } - return __ret; - } - - template - typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type - basic_stringbuf<_CharT, _Traits, _Alloc>:: - seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode) - { - pos_type __ret = pos_type(off_type(-1)); - bool __testin = (ios_base::in & this->_M_mode & __mode) != 0; - bool __testout = (ios_base::out & this->_M_mode & __mode) != 0; - const bool __testboth = __testin && __testout && __way != ios_base::cur; - __testin &= !(__mode & ios_base::out); - __testout &= !(__mode & ios_base::in); - - - - const char_type* __beg = __testin ? this->eback() : this->pbase(); - if ((__beg || !__off) && (__testin || __testout || __testboth)) - { - _M_update_egptr(); - - off_type __newoffi = __off; - off_type __newoffo = __newoffi; - if (__way == ios_base::cur) - { - __newoffi += this->gptr() - __beg; - __newoffo += this->pptr() - __beg; - } - else if (__way == ios_base::end) - __newoffo = __newoffi += this->egptr() - __beg; - - if ((__testin || __testboth) - && __newoffi >= 0 - && this->egptr() - __beg >= __newoffi) - { - this->setg(this->eback(), this->eback() + __newoffi, - this->egptr()); - __ret = pos_type(__newoffi); - } - if ((__testout || __testboth) - && __newoffo >= 0 - && this->egptr() - __beg >= __newoffo) - { - _M_pbump(this->pbase(), this->epptr(), __newoffo); - __ret = pos_type(__newoffo); - } - } - return __ret; - } - - template - typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type - basic_stringbuf<_CharT, _Traits, _Alloc>:: - seekpos(pos_type __sp, ios_base::openmode __mode) - { - pos_type __ret = pos_type(off_type(-1)); - const bool __testin = (ios_base::in & this->_M_mode & __mode) != 0; - const bool __testout = (ios_base::out & this->_M_mode & __mode) != 0; - - const char_type* __beg = __testin ? this->eback() : this->pbase(); - if ((__beg || !off_type(__sp)) && (__testin || __testout)) - { - _M_update_egptr(); - - const off_type __pos(__sp); - const bool __testpos = (0 <= __pos - && __pos <= this->egptr() - __beg); - if (__testpos) - { - if (__testin) - this->setg(this->eback(), this->eback() + __pos, - this->egptr()); - if (__testout) - _M_pbump(this->pbase(), this->epptr(), __pos); - __ret = __sp; - } - } - return __ret; - } - - template - void - basic_stringbuf<_CharT, _Traits, _Alloc>:: - _M_sync(char_type* __base, __size_type __i, __size_type __o) - { - const bool __testin = _M_mode & ios_base::in; - const bool __testout = _M_mode & ios_base::out; - char_type* __endg = __base + _M_string.size(); - char_type* __endp = __base + _M_string.capacity(); - - if (__base != _M_string.data()) - { - - __endg += __i; - __i = 0; - __endp = __endg; - } - - if (__testin) - this->setg(__base, __base + __i, __endg); - if (__testout) - { - _M_pbump(__base, __endp, __o); - - - - if (!__testin) - this->setg(__endg, __endg, __endg); - } - } - - template - void - basic_stringbuf<_CharT, _Traits, _Alloc>:: - _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off) - { - this->setp(__pbeg, __pend); - while (__off > __gnu_cxx::__numeric_traits::__max) - { - this->pbump(__gnu_cxx::__numeric_traits::__max); - __off -= __gnu_cxx::__numeric_traits::__max; - } - this->pbump(__off); - } - - - - - extern template class basic_stringbuf; - extern template class basic_istringstream; - extern template class basic_ostringstream; - extern template class basic_stringstream; - - - extern template class basic_stringbuf; - extern template class basic_istringstream; - extern template class basic_ostringstream; - extern template class basic_stringstream; - - - - -} -# 880 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/sstream" 2 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/quoted_string.h" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - namespace __detail { - - - - template - struct _Quoted_string - { - static_assert(is_reference<_String>::value - || is_pointer<_String>::value, - "String type must be pointer or reference"); - - _Quoted_string(_String __str, _CharT __del, _CharT __esc) - : _M_string(__str), _M_delim{__del}, _M_escape{__esc} - { } - - _Quoted_string& - operator=(_Quoted_string&) = delete; - - _String _M_string; - _CharT _M_delim; - _CharT _M_escape; - }; -# 91 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/quoted_string.h" 3 - template - std::basic_ostream<_CharT, _Traits>& - operator<<(std::basic_ostream<_CharT, _Traits>& __os, - const _Quoted_string& __str) - { - std::basic_ostringstream<_CharT, _Traits> __ostr; - __ostr << __str._M_delim; - for (const _CharT* __c = __str._M_string; *__c; ++__c) - { - if (*__c == __str._M_delim || *__c == __str._M_escape) - __ostr << __str._M_escape; - __ostr << *__c; - } - __ostr << __str._M_delim; - - return __os << __ostr.str(); - } - - - - - - - - template - std::basic_ostream<_CharT, _Traits>& - operator<<(std::basic_ostream<_CharT, _Traits>& __os, - const _Quoted_string<_String, _CharT>& __str) - { - std::basic_ostringstream<_CharT, _Traits> __ostr; - __ostr << __str._M_delim; - for (auto __c : __str._M_string) - { - if (__c == __str._M_delim || __c == __str._M_escape) - __ostr << __str._M_escape; - __ostr << __c; - } - __ostr << __str._M_delim; - - return __os << __ostr.str(); - } - - - - - - template - std::basic_istream<_CharT, _Traits>& - operator>>(std::basic_istream<_CharT, _Traits>& __is, - const _Quoted_string&, - _CharT>& __str) - { - _CharT __c; - __is >> __c; - if (!__is.good()) - return __is; - if (__c != __str._M_delim) - { - __is.unget(); - __is >> __str._M_string; - return __is; - } - __str._M_string.clear(); - std::ios_base::fmtflags __flags - = __is.flags(__is.flags() & ~std::ios_base::skipws); - do - { - __is >> __c; - if (!__is.good()) - break; - if (__c == __str._M_escape) - { - __is >> __c; - if (!__is.good()) - break; - } - else if (__c == __str._M_delim) - break; - __str._M_string += __c; - } - while (true); - __is.setf(__flags); - - return __is; - } - } - - -} -# 46 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 2 3 - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - struct _Resetiosflags { ios_base::fmtflags _M_mask; }; -# 65 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 3 - inline _Resetiosflags - resetiosflags(ios_base::fmtflags __mask) - { return { __mask }; } - - template - inline basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, _Resetiosflags __f) - { - __is.setf(ios_base::fmtflags(0), __f._M_mask); - return __is; - } - - template - inline basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, _Resetiosflags __f) - { - __os.setf(ios_base::fmtflags(0), __f._M_mask); - return __os; - } - - - struct _Setiosflags { ios_base::fmtflags _M_mask; }; -# 95 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 3 - inline _Setiosflags - setiosflags(ios_base::fmtflags __mask) - { return { __mask }; } - - template - inline basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, _Setiosflags __f) - { - __is.setf(__f._M_mask); - return __is; - } - - template - inline basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, _Setiosflags __f) - { - __os.setf(__f._M_mask); - return __os; - } - - - struct _Setbase { int _M_base; }; -# 126 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 3 - inline _Setbase - setbase(int __base) - { return { __base }; } - - template - inline basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, _Setbase __f) - { - __is.setf(__f._M_base == 8 ? ios_base::oct : - __f._M_base == 10 ? ios_base::dec : - __f._M_base == 16 ? ios_base::hex : - ios_base::fmtflags(0), ios_base::basefield); - return __is; - } - - template - inline basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, _Setbase __f) - { - __os.setf(__f._M_base == 8 ? ios_base::oct : - __f._M_base == 10 ? ios_base::dec : - __f._M_base == 16 ? ios_base::hex : - ios_base::fmtflags(0), ios_base::basefield); - return __os; - } - - - template - struct _Setfill { _CharT _M_c; }; -# 163 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 3 - template - inline _Setfill<_CharT> - setfill(_CharT __c) - { return { __c }; } - - template - inline basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, _Setfill<_CharT> __f) - { - __is.fill(__f._M_c); - return __is; - } - - template - inline basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, _Setfill<_CharT> __f) - { - __os.fill(__f._M_c); - return __os; - } - - - struct _Setprecision { int _M_n; }; -# 194 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 3 - inline _Setprecision - setprecision(int __n) - { return { __n }; } - - template - inline basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, _Setprecision __f) - { - __is.precision(__f._M_n); - return __is; - } - - template - inline basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, _Setprecision __f) - { - __os.precision(__f._M_n); - return __os; - } - - - struct _Setw { int _M_n; }; -# 224 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 3 - inline _Setw - setw(int __n) - { return { __n }; } - - template - inline basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, _Setw __f) - { - __is.width(__f._M_n); - return __is; - } - - template - inline basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, _Setw __f) - { - __os.width(__f._M_n); - return __os; - } - - - - template - struct _Get_money { _MoneyT& _M_mon; bool _M_intl; }; -# 257 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 3 - template - inline _Get_money<_MoneyT> - get_money(_MoneyT& __mon, bool __intl = false) - { return { __mon, __intl }; } - - template - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, _Get_money<_MoneyT> __f) - { - typename basic_istream<_CharT, _Traits>::sentry __cerb(__is, false); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - typedef istreambuf_iterator<_CharT, _Traits> _Iter; - typedef money_get<_CharT, _Iter> _MoneyGet; - - const _MoneyGet& __mg = use_facet<_MoneyGet>(__is.getloc()); - __mg.get(_Iter(__is.rdbuf()), _Iter(), __f._M_intl, - __is, __err, __f._M_mon); - } - catch(__cxxabiv1::__forced_unwind&) - { - __is._M_setstate(ios_base::badbit); - throw; - } - catch(...) - { __is._M_setstate(ios_base::badbit); } - if (__err) - __is.setstate(__err); - } - return __is; - } - - - template - struct _Put_money { const _MoneyT& _M_mon; bool _M_intl; }; -# 304 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 3 - template - inline _Put_money<_MoneyT> - put_money(const _MoneyT& __mon, bool __intl = false) - { return { __mon, __intl }; } - - template - basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_money<_MoneyT> __f) - { - typename basic_ostream<_CharT, _Traits>::sentry __cerb(__os); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - typedef ostreambuf_iterator<_CharT, _Traits> _Iter; - typedef money_put<_CharT, _Iter> _MoneyPut; - - const _MoneyPut& __mp = use_facet<_MoneyPut>(__os.getloc()); - if (__mp.put(_Iter(__os.rdbuf()), __f._M_intl, __os, - __os.fill(), __f._M_mon).failed()) - __err |= ios_base::badbit; - } - catch(__cxxabiv1::__forced_unwind&) - { - __os._M_setstate(ios_base::badbit); - throw; - } - catch(...) - { __os._M_setstate(ios_base::badbit); } - if (__err) - __os.setstate(__err); - } - return __os; - } - - template - struct _Put_time - { - const std::tm* _M_tmb; - const _CharT* _M_fmt; - }; -# 356 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 3 - template - inline _Put_time<_CharT> - put_time(const std::tm* __tmb, const _CharT* __fmt) - { return { __tmb, __fmt }; } - - template - basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_time<_CharT> __f) - { - typename basic_ostream<_CharT, _Traits>::sentry __cerb(__os); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - typedef ostreambuf_iterator<_CharT, _Traits> _Iter; - typedef time_put<_CharT, _Iter> _TimePut; - - const _CharT* const __fmt_end = __f._M_fmt + - _Traits::length(__f._M_fmt); - - const _TimePut& __mp = use_facet<_TimePut>(__os.getloc()); - if (__mp.put(_Iter(__os.rdbuf()), __os, __os.fill(), - __f._M_tmb, __f._M_fmt, __fmt_end).failed()) - __err |= ios_base::badbit; - } - catch(__cxxabiv1::__forced_unwind&) - { - __os._M_setstate(ios_base::badbit); - throw; - } - catch(...) - { __os._M_setstate(ios_base::badbit); } - if (__err) - __os.setstate(__err); - } - return __os; - } - - template - struct _Get_time - { - std::tm* _M_tmb; - const _CharT* _M_fmt; - }; -# 411 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 3 - template - inline _Get_time<_CharT> - get_time(std::tm* __tmb, const _CharT* __fmt) - { return { __tmb, __fmt }; } - - template - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, _Get_time<_CharT> __f) - { - typename basic_istream<_CharT, _Traits>::sentry __cerb(__is, false); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - try - { - typedef istreambuf_iterator<_CharT, _Traits> _Iter; - typedef time_get<_CharT, _Iter> _TimeGet; - - const _CharT* const __fmt_end = __f._M_fmt + - _Traits::length(__f._M_fmt); - - const _TimeGet& __mg = use_facet<_TimeGet>(__is.getloc()); - __mg.get(_Iter(__is.rdbuf()), _Iter(), __is, - __err, __f._M_tmb, __f._M_fmt, __fmt_end); - } - catch(__cxxabiv1::__forced_unwind&) - { - __is._M_setstate(ios_base::badbit); - throw; - } - catch(...) - { __is._M_setstate(ios_base::badbit); } - if (__err) - __is.setstate(__err); - } - return __is; - } -# 459 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 3 - template - inline auto - quoted(const _CharT* __string, - _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\')) - { - return __detail::_Quoted_string(__string, __delim, - __escape); - } - - template - inline auto - quoted(const basic_string<_CharT, _Traits, _Alloc>& __string, - _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\')) - { - return __detail::_Quoted_string< - const basic_string<_CharT, _Traits, _Alloc>&, _CharT>( - __string, __delim, __escape); - } - - template - inline auto - quoted(basic_string<_CharT, _Traits, _Alloc>& __string, - _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\')) - { - return __detail::_Quoted_string< - basic_string<_CharT, _Traits, _Alloc>&, _CharT>( - __string, __delim, __escape); - } -# 508 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/iomanip" 3 - extern template ostream& operator<<(ostream&, _Setfill); - extern template ostream& operator<<(ostream&, _Setiosflags); - extern template ostream& operator<<(ostream&, _Resetiosflags); - extern template ostream& operator<<(ostream&, _Setbase); - extern template ostream& operator<<(ostream&, _Setprecision); - extern template ostream& operator<<(ostream&, _Setw); - extern template istream& operator>>(istream&, _Setfill); - extern template istream& operator>>(istream&, _Setiosflags); - extern template istream& operator>>(istream&, _Resetiosflags); - extern template istream& operator>>(istream&, _Setbase); - extern template istream& operator>>(istream&, _Setprecision); - extern template istream& operator>>(istream&, _Setw); - - - extern template wostream& operator<<(wostream&, _Setfill); - extern template wostream& operator<<(wostream&, _Setiosflags); - extern template wostream& operator<<(wostream&, _Resetiosflags); - extern template wostream& operator<<(wostream&, _Setbase); - extern template wostream& operator<<(wostream&, _Setprecision); - extern template wostream& operator<<(wostream&, _Setw); - extern template wistream& operator>>(wistream&, _Setfill); - extern template wistream& operator>>(wistream&, _Setiosflags); - extern template wistream& operator>>(wistream&, _Resetiosflags); - extern template wistream& operator>>(wistream&, _Setbase); - extern template wistream& operator>>(wistream&, _Setprecision); - extern template wistream& operator>>(wistream&, _Setw); - - - - -} -# 31 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Defines.hpp" 2 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cmath" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cmath" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cmath" 3 - - - - - -# 1 "/usr/include/math.h" 1 3 4 -# 29 "/usr/include/math.h" 3 4 -extern "C" { - - - -# 1 "/usr/include/bits/huge_val.h" 1 3 4 -# 34 "/usr/include/math.h" 2 3 4 - -# 1 "/usr/include/bits/huge_valf.h" 1 3 4 -# 36 "/usr/include/math.h" 2 3 4 -# 1 "/usr/include/bits/huge_vall.h" 1 3 4 -# 37 "/usr/include/math.h" 2 3 4 - - -# 1 "/usr/include/bits/inf.h" 1 3 4 -# 40 "/usr/include/math.h" 2 3 4 - - -# 1 "/usr/include/bits/nan.h" 1 3 4 -# 43 "/usr/include/math.h" 2 3 4 - - - -# 1 "/usr/include/bits/mathdef.h" 1 3 4 -# 28 "/usr/include/bits/mathdef.h" 3 4 -typedef float float_t; -typedef double double_t; -# 47 "/usr/include/math.h" 2 3 4 -# 70 "/usr/include/math.h" 3 4 -# 1 "/usr/include/bits/mathcalls.h" 1 3 4 -# 52 "/usr/include/bits/mathcalls.h" 3 4 - - -extern double acos (double __x) throw (); extern double __acos (double __x) throw (); - -extern double asin (double __x) throw (); extern double __asin (double __x) throw (); - -extern double atan (double __x) throw (); extern double __atan (double __x) throw (); - -extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); - - -extern double cos (double __x) throw (); extern double __cos (double __x) throw (); - -extern double sin (double __x) throw (); extern double __sin (double __x) throw (); - -extern double tan (double __x) throw (); extern double __tan (double __x) throw (); - - - - -extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); - -extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); - -extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); - - - - -extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw () - ; - - - - - -extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); - -extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); - -extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); - - - - - - - -extern double exp (double __x) throw (); extern double __exp (double __x) throw (); - - -extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); - - -extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); - - -extern double log (double __x) throw (); extern double __log (double __x) throw (); - - -extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); - - -extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw () - __attribute__ ((__nonnull__ (2))); - - - - -extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); - -extern double pow10 (double __x) throw (); extern double __pow10 (double __x) throw (); - - - - - -extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); - - -extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); - - -extern double logb (double __x) throw (); extern double __logb (double __x) throw (); - - - - - - -extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); - - -extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); - - - - - - - - -extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); - - -extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); - - - - - -extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); - - - - - - -extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); - - - - - - - - -extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); - - -extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); - - -extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); - - -extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); - - - - -extern int __isinf (double __value) throw () __attribute__ ((__const__)); - - -extern int __finite (double __value) throw () __attribute__ ((__const__)); - - - - - -extern int isinf (double __value) throw () __attribute__ ((__const__)); - - -extern int finite (double __value) throw () __attribute__ ((__const__)); - - -extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); - - - -extern double significand (double __x) throw (); extern double __significand (double __x) throw (); - - - - - -extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); - - - - - - -extern double nan (const char *__tagb) throw () __attribute__ ((__const__)); extern double __nan (const char *__tagb) throw () __attribute__ ((__const__)); - - - - - -extern int __isnan (double __value) throw () __attribute__ ((__const__)); - - - -extern int isnan (double __value) throw () __attribute__ ((__const__)); - - -extern double j0 (double) throw (); extern double __j0 (double) throw (); -extern double j1 (double) throw (); extern double __j1 (double) throw (); -extern double jn (int, double) throw (); extern double __jn (int, double) throw (); -extern double y0 (double) throw (); extern double __y0 (double) throw (); -extern double y1 (double) throw (); extern double __y1 (double) throw (); -extern double yn (int, double) throw (); extern double __yn (int, double) throw (); - - - - - - -extern double erf (double) throw (); extern double __erf (double) throw (); -extern double erfc (double) throw (); extern double __erfc (double) throw (); -extern double lgamma (double) throw (); extern double __lgamma (double) throw (); - - - - - - -extern double tgamma (double) throw (); extern double __tgamma (double) throw (); - - - - - -extern double gamma (double) throw (); extern double __gamma (double) throw (); - - - - - - -extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); - - - - - - - -extern double rint (double __x) throw (); extern double __rint (double __x) throw (); - - -extern double nextafter (double __x, double __y) throw () __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) throw () __attribute__ ((__const__)); - -extern double nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); - - - -extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); - - - -extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); - - - -extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); - - - - -extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); - - - -extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); - - - -extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); - - - -extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); - - - - -extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); - - - - - - -extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); -extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); - - - -extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); -extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); - - - -extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); - - -extern double fmax (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmax (double __x, double __y) throw () __attribute__ ((__const__)); - - -extern double fmin (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmin (double __x, double __y) throw () __attribute__ ((__const__)); - - - -extern int __fpclassify (double __value) throw () - __attribute__ ((__const__)); - - -extern int __signbit (double __value) throw () - __attribute__ ((__const__)); - - - -extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); - - - - - - - - -extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); -# 71 "/usr/include/math.h" 2 3 4 -# 89 "/usr/include/math.h" 3 4 -# 1 "/usr/include/bits/mathcalls.h" 1 3 4 -# 52 "/usr/include/bits/mathcalls.h" 3 4 - - -extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); - -extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); - -extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); - -extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); - - -extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); - -extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); - -extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); - - - - -extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); - -extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); - -extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); - - - - -extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw () - ; - - - - - -extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); - -extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); - -extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); - - - - - - - -extern float expf (float __x) throw (); extern float __expf (float __x) throw (); - - -extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); - - -extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); - - -extern float logf (float __x) throw (); extern float __logf (float __x) throw (); - - -extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); - - -extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw () - __attribute__ ((__nonnull__ (2))); - - - - -extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); - -extern float pow10f (float __x) throw (); extern float __pow10f (float __x) throw (); - - - - - -extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); - - -extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); - - -extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); - - - - - - -extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); - - -extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); - - - - - - - - -extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); - - -extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); - - - - - -extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); - - - - - - -extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); - - - - - - - - -extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); - - -extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); - - -extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); - - -extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); - - - - -extern int __isinff (float __value) throw () __attribute__ ((__const__)); - - -extern int __finitef (float __value) throw () __attribute__ ((__const__)); - - - - - -extern int isinff (float __value) throw () __attribute__ ((__const__)); - - -extern int finitef (float __value) throw () __attribute__ ((__const__)); - - -extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); - - - -extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); - - - - - -extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); - - - - - - -extern float nanf (const char *__tagb) throw () __attribute__ ((__const__)); extern float __nanf (const char *__tagb) throw () __attribute__ ((__const__)); - - - - - -extern int __isnanf (float __value) throw () __attribute__ ((__const__)); - - - -extern int isnanf (float __value) throw () __attribute__ ((__const__)); - - -extern float j0f (float) throw (); extern float __j0f (float) throw (); -extern float j1f (float) throw (); extern float __j1f (float) throw (); -extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); -extern float y0f (float) throw (); extern float __y0f (float) throw (); -extern float y1f (float) throw (); extern float __y1f (float) throw (); -extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); - - - - - - -extern float erff (float) throw (); extern float __erff (float) throw (); -extern float erfcf (float) throw (); extern float __erfcf (float) throw (); -extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); - - - - - - -extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); - - - - - -extern float gammaf (float) throw (); extern float __gammaf (float) throw (); - - - - - - -extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); - - - - - - - -extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); - - -extern float nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); - -extern float nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); - - - -extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); - - - -extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); - - - -extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); - - - - -extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); - - - -extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); - - - -extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); - - - -extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); - - - - -extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); - - - - - - -extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); -extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); - - - -extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); -extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); - - - -extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); - - -extern float fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); - - -extern float fminf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminf (float __x, float __y) throw () __attribute__ ((__const__)); - - - -extern int __fpclassifyf (float __value) throw () - __attribute__ ((__const__)); - - -extern int __signbitf (float __value) throw () - __attribute__ ((__const__)); - - - -extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); - - - - - - - - -extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); -# 90 "/usr/include/math.h" 2 3 4 -# 133 "/usr/include/math.h" 3 4 -# 1 "/usr/include/bits/mathcalls.h" 1 3 4 -# 52 "/usr/include/bits/mathcalls.h" 3 4 - - -extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); - -extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); - -extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); - -extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); - - -extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); - -extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); - -extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); - - - - -extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); - -extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); - -extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); - - - - -extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw () - ; - - - - - -extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); - -extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); - -extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); - - - - - - - -extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); - - -extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); - - -extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); - - -extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); - - -extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); - - -extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw () - __attribute__ ((__nonnull__ (2))); - - - - -extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); - -extern long double pow10l (long double __x) throw (); extern long double __pow10l (long double __x) throw (); - - - - - -extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); - - -extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); - - -extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); - - - - - - -extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); - - -extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); - - - - - - - - -extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); - - -extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); - - - - - -extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); - - - - - - -extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); - - - - - - - - -extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); - - -extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); - - -extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); - - -extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); - - - - -extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); - - -extern int __finitel (long double __value) throw () __attribute__ ((__const__)); - - - - - -extern int isinfl (long double __value) throw () __attribute__ ((__const__)); - - -extern int finitel (long double __value) throw () __attribute__ ((__const__)); - - -extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); - - - -extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); - - - - - -extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); - - - - - - -extern long double nanl (const char *__tagb) throw () __attribute__ ((__const__)); extern long double __nanl (const char *__tagb) throw () __attribute__ ((__const__)); - - - - - -extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); - - - -extern int isnanl (long double __value) throw () __attribute__ ((__const__)); - - -extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); -extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); -extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); -extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); -extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); -extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); - - - - - - -extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); -extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); -extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); - - - - - - -extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); - - - - - -extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); - - - - - - -extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); - - - - - - - -extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); - - -extern long double nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); - -extern long double nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); - - - -extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); - - - -extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); - - - -extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); - - - - -extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); - - - -extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); - - - -extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); - - - -extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); - - - - -extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw (); - - - - - - -extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); -extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); - - - -extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); -extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); - - - -extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); - - -extern long double fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); - - -extern long double fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); - - - -extern int __fpclassifyl (long double __value) throw () - __attribute__ ((__const__)); - - -extern int __signbitl (long double __value) throw () - __attribute__ ((__const__)); - - - -extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw (); - - - - - - - - -extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); -# 134 "/usr/include/math.h" 2 3 4 -# 149 "/usr/include/math.h" 3 4 -extern int signgam; -# 190 "/usr/include/math.h" 3 4 -enum - { - FP_NAN = - - 0, - FP_INFINITE = - - 1, - FP_ZERO = - - 2, - FP_SUBNORMAL = - - 3, - FP_NORMAL = - - 4 - }; -# 288 "/usr/include/math.h" 3 4 -typedef enum -{ - _IEEE_ = -1, - _SVID_, - _XOPEN_, - _POSIX_, - _ISOC_ -} _LIB_VERSION_TYPE; - - - - -extern _LIB_VERSION_TYPE _LIB_VERSION; -# 311 "/usr/include/math.h" 3 4 -struct __exception - - - - { - int type; - char *name; - double arg1; - double arg2; - double retval; - }; - - -extern int matherr (struct __exception *__exc) throw (); -# 475 "/usr/include/math.h" 3 4 -} -# 46 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cmath" 2 3 -# 77 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cmath" 3 -extern "C++" -{ -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - using ::acos; - - - inline constexpr float - acos(float __x) - { return __builtin_acosf(__x); } - - inline constexpr long double - acos(long double __x) - { return __builtin_acosl(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - acos(_Tp __x) - { return __builtin_acos(__x); } - - using ::asin; - - - inline constexpr float - asin(float __x) - { return __builtin_asinf(__x); } - - inline constexpr long double - asin(long double __x) - { return __builtin_asinl(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - asin(_Tp __x) - { return __builtin_asin(__x); } - - using ::atan; - - - inline constexpr float - atan(float __x) - { return __builtin_atanf(__x); } - - inline constexpr long double - atan(long double __x) - { return __builtin_atanl(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - atan(_Tp __x) - { return __builtin_atan(__x); } - - using ::atan2; - - - inline constexpr float - atan2(float __y, float __x) - { return __builtin_atan2f(__y, __x); } - - inline constexpr long double - atan2(long double __y, long double __x) - { return __builtin_atan2l(__y, __x); } - - - template - inline constexpr - typename __gnu_cxx::__promote_2<_Tp, _Up>::__type - atan2(_Tp __y, _Up __x) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return atan2(__type(__y), __type(__x)); - } - - using ::ceil; - - - inline constexpr float - ceil(float __x) - { return __builtin_ceilf(__x); } - - inline constexpr long double - ceil(long double __x) - { return __builtin_ceill(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - ceil(_Tp __x) - { return __builtin_ceil(__x); } - - using ::cos; - - - inline constexpr float - cos(float __x) - { return __builtin_cosf(__x); } - - inline constexpr long double - cos(long double __x) - { return __builtin_cosl(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - cos(_Tp __x) - { return __builtin_cos(__x); } - - using ::cosh; - - - inline constexpr float - cosh(float __x) - { return __builtin_coshf(__x); } - - inline constexpr long double - cosh(long double __x) - { return __builtin_coshl(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - cosh(_Tp __x) - { return __builtin_cosh(__x); } - - using ::exp; - - - inline constexpr float - exp(float __x) - { return __builtin_expf(__x); } - - inline constexpr long double - exp(long double __x) - { return __builtin_expl(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - exp(_Tp __x) - { return __builtin_exp(__x); } - - using ::fabs; - - - inline constexpr float - fabs(float __x) - { return __builtin_fabsf(__x); } - - inline constexpr long double - fabs(long double __x) - { return __builtin_fabsl(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - fabs(_Tp __x) - { return __builtin_fabs(__x); } - - using ::floor; - - - inline constexpr float - floor(float __x) - { return __builtin_floorf(__x); } - - inline constexpr long double - floor(long double __x) - { return __builtin_floorl(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - floor(_Tp __x) - { return __builtin_floor(__x); } - - using ::fmod; - - - inline constexpr float - fmod(float __x, float __y) - { return __builtin_fmodf(__x, __y); } - - inline constexpr long double - fmod(long double __x, long double __y) - { return __builtin_fmodl(__x, __y); } - - - template - inline constexpr - typename __gnu_cxx::__promote_2<_Tp, _Up>::__type - fmod(_Tp __x, _Up __y) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return fmod(__type(__x), __type(__y)); - } - - using ::frexp; - - - inline float - frexp(float __x, int* __exp) - { return __builtin_frexpf(__x, __exp); } - - inline long double - frexp(long double __x, int* __exp) - { return __builtin_frexpl(__x, __exp); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - frexp(_Tp __x, int* __exp) - { return __builtin_frexp(__x, __exp); } - - using ::ldexp; - - - inline constexpr float - ldexp(float __x, int __exp) - { return __builtin_ldexpf(__x, __exp); } - - inline constexpr long double - ldexp(long double __x, int __exp) - { return __builtin_ldexpl(__x, __exp); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - ldexp(_Tp __x, int __exp) - { return __builtin_ldexp(__x, __exp); } - - using ::log; - - - inline constexpr float - log(float __x) - { return __builtin_logf(__x); } - - inline constexpr long double - log(long double __x) - { return __builtin_logl(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - log(_Tp __x) - { return __builtin_log(__x); } - - using ::log10; - - - inline constexpr float - log10(float __x) - { return __builtin_log10f(__x); } - - inline constexpr long double - log10(long double __x) - { return __builtin_log10l(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - log10(_Tp __x) - { return __builtin_log10(__x); } - - using ::modf; - - - inline float - modf(float __x, float* __iptr) - { return __builtin_modff(__x, __iptr); } - - inline long double - modf(long double __x, long double* __iptr) - { return __builtin_modfl(__x, __iptr); } - - - using ::pow; - - - inline constexpr float - pow(float __x, float __y) - { return __builtin_powf(__x, __y); } - - inline constexpr long double - pow(long double __x, long double __y) - { return __builtin_powl(__x, __y); } -# 412 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cmath" 3 - template - inline constexpr - typename __gnu_cxx::__promote_2<_Tp, _Up>::__type - pow(_Tp __x, _Up __y) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return pow(__type(__x), __type(__y)); - } - - using ::sin; - - - inline constexpr float - sin(float __x) - { return __builtin_sinf(__x); } - - inline constexpr long double - sin(long double __x) - { return __builtin_sinl(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - sin(_Tp __x) - { return __builtin_sin(__x); } - - using ::sinh; - - - inline constexpr float - sinh(float __x) - { return __builtin_sinhf(__x); } - - inline constexpr long double - sinh(long double __x) - { return __builtin_sinhl(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - sinh(_Tp __x) - { return __builtin_sinh(__x); } - - using ::sqrt; - - - inline constexpr float - sqrt(float __x) - { return __builtin_sqrtf(__x); } - - inline constexpr long double - sqrt(long double __x) - { return __builtin_sqrtl(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - sqrt(_Tp __x) - { return __builtin_sqrt(__x); } - - using ::tan; - - - inline constexpr float - tan(float __x) - { return __builtin_tanf(__x); } - - inline constexpr long double - tan(long double __x) - { return __builtin_tanl(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - tan(_Tp __x) - { return __builtin_tan(__x); } - - using ::tanh; - - - inline constexpr float - tanh(float __x) - { return __builtin_tanhf(__x); } - - inline constexpr long double - tanh(long double __x) - { return __builtin_tanhl(__x); } - - - template - inline constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - tanh(_Tp __x) - { return __builtin_tanh(__x); } -# 536 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cmath" 3 - constexpr int - fpclassify(float __x) - { return __builtin_fpclassify(0, 1, 4, - 3, 2, __x); } - - constexpr int - fpclassify(double __x) - { return __builtin_fpclassify(0, 1, 4, - 3, 2, __x); } - - constexpr int - fpclassify(long double __x) - { return __builtin_fpclassify(0, 1, 4, - 3, 2, __x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - int>::__type - fpclassify(_Tp __x) - { return __x != 0 ? 4 : 2; } - - - - constexpr bool - isfinite(float __x) - { return __builtin_isfinite(__x); } - - constexpr bool - isfinite(double __x) - { return __builtin_isfinite(__x); } - - constexpr bool - isfinite(long double __x) - { return __builtin_isfinite(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - bool>::__type - isfinite(_Tp __x) - { return true; } - - - - constexpr bool - isinf(float __x) - { return __builtin_isinf(__x); } - - - - using ::isinf; - - - - - - - constexpr bool - isinf(long double __x) - { return __builtin_isinf(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - bool>::__type - isinf(_Tp __x) - { return false; } - - - - constexpr bool - isnan(float __x) - { return __builtin_isnan(__x); } - - - - using ::isnan; - - - - - - - constexpr bool - isnan(long double __x) - { return __builtin_isnan(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - bool>::__type - isnan(_Tp __x) - { return false; } - - - - constexpr bool - isnormal(float __x) - { return __builtin_isnormal(__x); } - - constexpr bool - isnormal(double __x) - { return __builtin_isnormal(__x); } - - constexpr bool - isnormal(long double __x) - { return __builtin_isnormal(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - bool>::__type - isnormal(_Tp __x) - { return __x != 0 ? true : false; } - - - - - constexpr bool - signbit(float __x) - { return __builtin_signbit(__x); } - - constexpr bool - signbit(double __x) - { return __builtin_signbit(__x); } - - constexpr bool - signbit(long double __x) - { return __builtin_signbit(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - bool>::__type - signbit(_Tp __x) - { return __x < 0 ? true : false; } - - - - constexpr bool - isgreater(float __x, float __y) - { return __builtin_isgreater(__x, __y); } - - constexpr bool - isgreater(double __x, double __y) - { return __builtin_isgreater(__x, __y); } - - constexpr bool - isgreater(long double __x, long double __y) - { return __builtin_isgreater(__x, __y); } - - - - template - constexpr typename - __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value - && __is_arithmetic<_Up>::__value), bool>::__type - isgreater(_Tp __x, _Up __y) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return __builtin_isgreater(__type(__x), __type(__y)); - } - - - - constexpr bool - isgreaterequal(float __x, float __y) - { return __builtin_isgreaterequal(__x, __y); } - - constexpr bool - isgreaterequal(double __x, double __y) - { return __builtin_isgreaterequal(__x, __y); } - - constexpr bool - isgreaterequal(long double __x, long double __y) - { return __builtin_isgreaterequal(__x, __y); } - - - - template - constexpr typename - __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value - && __is_arithmetic<_Up>::__value), bool>::__type - isgreaterequal(_Tp __x, _Up __y) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return __builtin_isgreaterequal(__type(__x), __type(__y)); - } - - - - constexpr bool - isless(float __x, float __y) - { return __builtin_isless(__x, __y); } - - constexpr bool - isless(double __x, double __y) - { return __builtin_isless(__x, __y); } - - constexpr bool - isless(long double __x, long double __y) - { return __builtin_isless(__x, __y); } - - - - template - constexpr typename - __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value - && __is_arithmetic<_Up>::__value), bool>::__type - isless(_Tp __x, _Up __y) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return __builtin_isless(__type(__x), __type(__y)); - } - - - - constexpr bool - islessequal(float __x, float __y) - { return __builtin_islessequal(__x, __y); } - - constexpr bool - islessequal(double __x, double __y) - { return __builtin_islessequal(__x, __y); } - - constexpr bool - islessequal(long double __x, long double __y) - { return __builtin_islessequal(__x, __y); } - - - - template - constexpr typename - __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value - && __is_arithmetic<_Up>::__value), bool>::__type - islessequal(_Tp __x, _Up __y) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return __builtin_islessequal(__type(__x), __type(__y)); - } - - - - constexpr bool - islessgreater(float __x, float __y) - { return __builtin_islessgreater(__x, __y); } - - constexpr bool - islessgreater(double __x, double __y) - { return __builtin_islessgreater(__x, __y); } - - constexpr bool - islessgreater(long double __x, long double __y) - { return __builtin_islessgreater(__x, __y); } - - - - template - constexpr typename - __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value - && __is_arithmetic<_Up>::__value), bool>::__type - islessgreater(_Tp __x, _Up __y) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return __builtin_islessgreater(__type(__x), __type(__y)); - } - - - - constexpr bool - isunordered(float __x, float __y) - { return __builtin_isunordered(__x, __y); } - - constexpr bool - isunordered(double __x, double __y) - { return __builtin_isunordered(__x, __y); } - - constexpr bool - isunordered(long double __x, long double __y) - { return __builtin_isunordered(__x, __y); } - - - - template - constexpr typename - __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value - && __is_arithmetic<_Up>::__value), bool>::__type - isunordered(_Tp __x, _Up __y) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return __builtin_isunordered(__type(__x), __type(__y)); - } -# 1065 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cmath" 3 - using ::double_t; - using ::float_t; - - - using ::acosh; - using ::acoshf; - using ::acoshl; - - using ::asinh; - using ::asinhf; - using ::asinhl; - - using ::atanh; - using ::atanhf; - using ::atanhl; - - using ::cbrt; - using ::cbrtf; - using ::cbrtl; - - using ::copysign; - using ::copysignf; - using ::copysignl; - - using ::erf; - using ::erff; - using ::erfl; - - using ::erfc; - using ::erfcf; - using ::erfcl; - - using ::exp2; - using ::exp2f; - using ::exp2l; - - using ::expm1; - using ::expm1f; - using ::expm1l; - - using ::fdim; - using ::fdimf; - using ::fdiml; - - using ::fma; - using ::fmaf; - using ::fmal; - - using ::fmax; - using ::fmaxf; - using ::fmaxl; - - using ::fmin; - using ::fminf; - using ::fminl; - - using ::hypot; - using ::hypotf; - using ::hypotl; - - using ::ilogb; - using ::ilogbf; - using ::ilogbl; - - using ::lgamma; - using ::lgammaf; - using ::lgammal; - - - using ::llrint; - using ::llrintf; - using ::llrintl; - - using ::llround; - using ::llroundf; - using ::llroundl; - - - using ::log1p; - using ::log1pf; - using ::log1pl; - - using ::log2; - using ::log2f; - using ::log2l; - - using ::logb; - using ::logbf; - using ::logbl; - - using ::lrint; - using ::lrintf; - using ::lrintl; - - using ::lround; - using ::lroundf; - using ::lroundl; - - using ::nan; - using ::nanf; - using ::nanl; - - using ::nearbyint; - using ::nearbyintf; - using ::nearbyintl; - - using ::nextafter; - using ::nextafterf; - using ::nextafterl; - - using ::nexttoward; - using ::nexttowardf; - using ::nexttowardl; - - using ::remainder; - using ::remainderf; - using ::remainderl; - - using ::remquo; - using ::remquof; - using ::remquol; - - using ::rint; - using ::rintf; - using ::rintl; - - using ::round; - using ::roundf; - using ::roundl; - - using ::scalbln; - using ::scalblnf; - using ::scalblnl; - - using ::scalbn; - using ::scalbnf; - using ::scalbnl; - - using ::tgamma; - using ::tgammaf; - using ::tgammal; - - using ::trunc; - using ::truncf; - using ::truncl; - - - - constexpr float - acosh(float __x) - { return __builtin_acoshf(__x); } - - constexpr long double - acosh(long double __x) - { return __builtin_acoshl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - acosh(_Tp __x) - { return __builtin_acosh(__x); } - - - - constexpr float - asinh(float __x) - { return __builtin_asinhf(__x); } - - constexpr long double - asinh(long double __x) - { return __builtin_asinhl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - asinh(_Tp __x) - { return __builtin_asinh(__x); } - - - - constexpr float - atanh(float __x) - { return __builtin_atanhf(__x); } - - constexpr long double - atanh(long double __x) - { return __builtin_atanhl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - atanh(_Tp __x) - { return __builtin_atanh(__x); } - - - - constexpr float - cbrt(float __x) - { return __builtin_cbrtf(__x); } - - constexpr long double - cbrt(long double __x) - { return __builtin_cbrtl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - cbrt(_Tp __x) - { return __builtin_cbrt(__x); } - - - - constexpr float - copysign(float __x, float __y) - { return __builtin_copysignf(__x, __y); } - - constexpr long double - copysign(long double __x, long double __y) - { return __builtin_copysignl(__x, __y); } - - - - template - constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type - copysign(_Tp __x, _Up __y) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return copysign(__type(__x), __type(__y)); - } - - - - constexpr float - erf(float __x) - { return __builtin_erff(__x); } - - constexpr long double - erf(long double __x) - { return __builtin_erfl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - erf(_Tp __x) - { return __builtin_erf(__x); } - - - - constexpr float - erfc(float __x) - { return __builtin_erfcf(__x); } - - constexpr long double - erfc(long double __x) - { return __builtin_erfcl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - erfc(_Tp __x) - { return __builtin_erfc(__x); } - - - - constexpr float - exp2(float __x) - { return __builtin_exp2f(__x); } - - constexpr long double - exp2(long double __x) - { return __builtin_exp2l(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - exp2(_Tp __x) - { return __builtin_exp2(__x); } - - - - constexpr float - expm1(float __x) - { return __builtin_expm1f(__x); } - - constexpr long double - expm1(long double __x) - { return __builtin_expm1l(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - expm1(_Tp __x) - { return __builtin_expm1(__x); } - - - - constexpr float - fdim(float __x, float __y) - { return __builtin_fdimf(__x, __y); } - - constexpr long double - fdim(long double __x, long double __y) - { return __builtin_fdiml(__x, __y); } - - - - template - constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type - fdim(_Tp __x, _Up __y) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return fdim(__type(__x), __type(__y)); - } - - - - constexpr float - fma(float __x, float __y, float __z) - { return __builtin_fmaf(__x, __y, __z); } - - constexpr long double - fma(long double __x, long double __y, long double __z) - { return __builtin_fmal(__x, __y, __z); } - - - - template - constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type - fma(_Tp __x, _Up __y, _Vp __z) - { - typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type; - return fma(__type(__x), __type(__y), __type(__z)); - } - - - - constexpr float - fmax(float __x, float __y) - { return __builtin_fmaxf(__x, __y); } - - constexpr long double - fmax(long double __x, long double __y) - { return __builtin_fmaxl(__x, __y); } - - - - template - constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type - fmax(_Tp __x, _Up __y) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return fmax(__type(__x), __type(__y)); - } - - - - constexpr float - fmin(float __x, float __y) - { return __builtin_fminf(__x, __y); } - - constexpr long double - fmin(long double __x, long double __y) - { return __builtin_fminl(__x, __y); } - - - - template - constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type - fmin(_Tp __x, _Up __y) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return fmin(__type(__x), __type(__y)); - } - - - - constexpr float - hypot(float __x, float __y) - { return __builtin_hypotf(__x, __y); } - - constexpr long double - hypot(long double __x, long double __y) - { return __builtin_hypotl(__x, __y); } - - - - template - constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type - hypot(_Tp __x, _Up __y) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return hypot(__type(__x), __type(__y)); - } - - - - constexpr int - ilogb(float __x) - { return __builtin_ilogbf(__x); } - - constexpr int - ilogb(long double __x) - { return __builtin_ilogbl(__x); } - - - - template - constexpr - typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - int>::__type - ilogb(_Tp __x) - { return __builtin_ilogb(__x); } - - - - constexpr float - lgamma(float __x) - { return __builtin_lgammaf(__x); } - - constexpr long double - lgamma(long double __x) - { return __builtin_lgammal(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - lgamma(_Tp __x) - { return __builtin_lgamma(__x); } - - - - constexpr long long - llrint(float __x) - { return __builtin_llrintf(__x); } - - constexpr long long - llrint(long double __x) - { return __builtin_llrintl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - long long>::__type - llrint(_Tp __x) - { return __builtin_llrint(__x); } - - - - constexpr long long - llround(float __x) - { return __builtin_llroundf(__x); } - - constexpr long long - llround(long double __x) - { return __builtin_llroundl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - long long>::__type - llround(_Tp __x) - { return __builtin_llround(__x); } - - - - constexpr float - log1p(float __x) - { return __builtin_log1pf(__x); } - - constexpr long double - log1p(long double __x) - { return __builtin_log1pl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - log1p(_Tp __x) - { return __builtin_log1p(__x); } - - - - - constexpr float - log2(float __x) - { return __builtin_log2f(__x); } - - constexpr long double - log2(long double __x) - { return __builtin_log2l(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - log2(_Tp __x) - { return __builtin_log2(__x); } - - - - constexpr float - logb(float __x) - { return __builtin_logbf(__x); } - - constexpr long double - logb(long double __x) - { return __builtin_logbl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - logb(_Tp __x) - { return __builtin_logb(__x); } - - - - constexpr long - lrint(float __x) - { return __builtin_lrintf(__x); } - - constexpr long - lrint(long double __x) - { return __builtin_lrintl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - long>::__type - lrint(_Tp __x) - { return __builtin_lrint(__x); } - - - - constexpr long - lround(float __x) - { return __builtin_lroundf(__x); } - - constexpr long - lround(long double __x) - { return __builtin_lroundl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - long>::__type - lround(_Tp __x) - { return __builtin_lround(__x); } - - - - constexpr float - nearbyint(float __x) - { return __builtin_nearbyintf(__x); } - - constexpr long double - nearbyint(long double __x) - { return __builtin_nearbyintl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - nearbyint(_Tp __x) - { return __builtin_nearbyint(__x); } - - - - constexpr float - nextafter(float __x, float __y) - { return __builtin_nextafterf(__x, __y); } - - constexpr long double - nextafter(long double __x, long double __y) - { return __builtin_nextafterl(__x, __y); } - - - - template - constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type - nextafter(_Tp __x, _Up __y) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return nextafter(__type(__x), __type(__y)); - } - - - - constexpr float - nexttoward(float __x, long double __y) - { return __builtin_nexttowardf(__x, __y); } - - constexpr long double - nexttoward(long double __x, long double __y) - { return __builtin_nexttowardl(__x, __y); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - nexttoward(_Tp __x, long double __y) - { return __builtin_nexttoward(__x, __y); } - - - - constexpr float - remainder(float __x, float __y) - { return __builtin_remainderf(__x, __y); } - - constexpr long double - remainder(long double __x, long double __y) - { return __builtin_remainderl(__x, __y); } - - - - template - constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type - remainder(_Tp __x, _Up __y) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return remainder(__type(__x), __type(__y)); - } - - - - inline float - remquo(float __x, float __y, int* __pquo) - { return __builtin_remquof(__x, __y, __pquo); } - - inline long double - remquo(long double __x, long double __y, int* __pquo) - { return __builtin_remquol(__x, __y, __pquo); } - - - - template - inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type - remquo(_Tp __x, _Up __y, int* __pquo) - { - typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; - return remquo(__type(__x), __type(__y), __pquo); - } - - - - constexpr float - rint(float __x) - { return __builtin_rintf(__x); } - - constexpr long double - rint(long double __x) - { return __builtin_rintl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - rint(_Tp __x) - { return __builtin_rint(__x); } - - - - constexpr float - round(float __x) - { return __builtin_roundf(__x); } - - constexpr long double - round(long double __x) - { return __builtin_roundl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - round(_Tp __x) - { return __builtin_round(__x); } - - - - constexpr float - scalbln(float __x, long __ex) - { return __builtin_scalblnf(__x, __ex); } - - constexpr long double - scalbln(long double __x, long __ex) - { return __builtin_scalblnl(__x, __ex); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - scalbln(_Tp __x, long __ex) - { return __builtin_scalbln(__x, __ex); } - - - - constexpr float - scalbn(float __x, int __ex) - { return __builtin_scalbnf(__x, __ex); } - - constexpr long double - scalbn(long double __x, int __ex) - { return __builtin_scalbnl(__x, __ex); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - scalbn(_Tp __x, int __ex) - { return __builtin_scalbn(__x, __ex); } - - - - constexpr float - tgamma(float __x) - { return __builtin_tgammaf(__x); } - - constexpr long double - tgamma(long double __x) - { return __builtin_tgammal(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - tgamma(_Tp __x) - { return __builtin_tgamma(__x); } - - - - constexpr float - trunc(float __x) - { return __builtin_truncf(__x); } - - constexpr long double - trunc(long double __x) - { return __builtin_truncl(__x); } - - - - template - constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, - double>::__type - trunc(_Tp __x) - { return __builtin_trunc(__x); } -# 1923 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cmath" 3 - -} - - - - - -} -# 32 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Defines.hpp" 2 - -# 1 "/usr/include/string.h" 1 3 4 -# 27 "/usr/include/string.h" 3 4 -extern "C" { - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 1 3 4 -# 33 "/usr/include/string.h" 2 3 4 - - - - - - - - - -extern void *memcpy (void *__restrict __dest, const void *__restrict __src, - size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern void *memmove (void *__dest, const void *__src, size_t __n) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - - - - -extern void *memccpy (void *__restrict __dest, const void *__restrict __src, - int __c, size_t __n) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - - - -extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); - - -extern int memcmp (const void *__s1, const void *__s2, size_t __n) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - - - -extern "C++" -{ -extern void *memchr (void *__s, int __c, size_t __n) - throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -extern const void *memchr (const void *__s, int __c, size_t __n) - throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -# 90 "/usr/include/string.h" 3 4 -} - - - - - - - - - - -extern "C++" void *rawmemchr (void *__s, int __c) - throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -extern "C++" const void *rawmemchr (const void *__s, int __c) - throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); - - - - - - - -extern "C++" void *memrchr (void *__s, int __c, size_t __n) - throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) - throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); - - - - - - - - - -extern char *strcpy (char *__restrict __dest, const char *__restrict __src) - throw () __attribute__ ((__nonnull__ (1, 2))); - -extern char *strncpy (char *__restrict __dest, - const char *__restrict __src, size_t __n) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern char *strcat (char *__restrict __dest, const char *__restrict __src) - throw () __attribute__ ((__nonnull__ (1, 2))); - -extern char *strncat (char *__restrict __dest, const char *__restrict __src, - size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern int strcmp (const char *__s1, const char *__s2) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - -extern int strncmp (const char *__s1, const char *__s2, size_t __n) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern int strcoll (const char *__s1, const char *__s2) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - -extern size_t strxfrm (char *__restrict __dest, - const char *__restrict __src, size_t __n) - throw () __attribute__ ((__nonnull__ (2))); - -# 162 "/usr/include/string.h" 3 4 -extern int strcoll_l (const char *__s1, const char *__s2, __locale_t __l) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); - -extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, - __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); - - - - - -extern char *strdup (const char *__s) - throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); - - - - - - -extern char *strndup (const char *__string, size_t __n) - throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); -# 207 "/usr/include/string.h" 3 4 - - - -extern "C++" -{ -extern char *strchr (char *__s, int __c) - throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -extern const char *strchr (const char *__s, int __c) - throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -# 230 "/usr/include/string.h" 3 4 -} - - - - - - -extern "C++" -{ -extern char *strrchr (char *__s, int __c) - throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -extern const char *strrchr (const char *__s, int __c) - throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -# 257 "/usr/include/string.h" 3 4 -} - - - - - - - - - - -extern "C++" char *strchrnul (char *__s, int __c) - throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -extern "C++" const char *strchrnul (const char *__s, int __c) - throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); - - - - - - - - - -extern size_t strcspn (const char *__s, const char *__reject) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern size_t strspn (const char *__s, const char *__accept) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern "C++" -{ -extern char *strpbrk (char *__s, const char *__accept) - throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); -extern const char *strpbrk (const char *__s, const char *__accept) - throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); -# 309 "/usr/include/string.h" 3 4 -} - - - - - - -extern "C++" -{ -extern char *strstr (char *__haystack, const char *__needle) - throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); -extern const char *strstr (const char *__haystack, const char *__needle) - throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); -# 336 "/usr/include/string.h" 3 4 -} - - - - - - - -extern char *strtok (char *__restrict __s, const char *__restrict __delim) - throw () __attribute__ ((__nonnull__ (2))); - - - - -extern char *__strtok_r (char *__restrict __s, - const char *__restrict __delim, - char **__restrict __save_ptr) - throw () __attribute__ ((__nonnull__ (2, 3))); - -extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, - char **__restrict __save_ptr) - throw () __attribute__ ((__nonnull__ (2, 3))); - - - - - -extern "C++" char *strcasestr (char *__haystack, const char *__needle) - throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); -extern "C++" const char *strcasestr (const char *__haystack, - const char *__needle) - throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); -# 378 "/usr/include/string.h" 3 4 -extern void *memmem (const void *__haystack, size_t __haystacklen, - const void *__needle, size_t __needlelen) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); - - - -extern void *__mempcpy (void *__restrict __dest, - const void *__restrict __src, size_t __n) - throw () __attribute__ ((__nonnull__ (1, 2))); -extern void *mempcpy (void *__restrict __dest, - const void *__restrict __src, size_t __n) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - - - -extern size_t strlen (const char *__s) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); - - - - - -extern size_t strnlen (const char *__string, size_t __maxlen) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); - - - - - -extern char *strerror (int __errnum) throw (); - -# 434 "/usr/include/string.h" 3 4 -extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) - throw () __attribute__ ((__nonnull__ (2))) ; - - - - - -extern char *strerror_l (int __errnum, __locale_t __l) throw (); - - - - - -extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); - - - -extern void bcopy (const void *__src, void *__dest, size_t __n) - throw () __attribute__ ((__nonnull__ (1, 2))); - - -extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); - - -extern int bcmp (const void *__s1, const void *__s2, size_t __n) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - - - -extern "C++" -{ -extern char *index (char *__s, int __c) - throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -extern const char *index (const char *__s, int __c) - throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -# 483 "/usr/include/string.h" 3 4 -} - - - - - - - -extern "C++" -{ -extern char *rindex (char *__s, int __c) - throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -extern const char *rindex (const char *__s, int __c) - throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -# 511 "/usr/include/string.h" 3 4 -} - - - - - - - -extern int ffs (int __i) throw () __attribute__ ((__const__)); - - - - -extern int ffsl (long int __l) throw () __attribute__ ((__const__)); - -__extension__ extern int ffsll (long long int __ll) - throw () __attribute__ ((__const__)); - - - - -extern int strcasecmp (const char *__s1, const char *__s2) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - - - - - -extern int strcasecmp_l (const char *__s1, const char *__s2, - __locale_t __loc) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); - -extern int strncasecmp_l (const char *__s1, const char *__s2, - size_t __n, __locale_t __loc) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); - - - - - -extern char *strsep (char **__restrict __stringp, - const char *__restrict __delim) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - - -extern char *strsignal (int __sig) throw (); - - -extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) - throw () __attribute__ ((__nonnull__ (1, 2))); -extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - -extern char *__stpncpy (char *__restrict __dest, - const char *__restrict __src, size_t __n) - throw () __attribute__ ((__nonnull__ (1, 2))); -extern char *stpncpy (char *__restrict __dest, - const char *__restrict __src, size_t __n) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - - -extern int strverscmp (const char *__s1, const char *__s2) - throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); - - -extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); - - - - - - - -extern "C++" char *basename (char *__filename) - throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); -extern "C++" const char *basename (const char *__filename) - throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); -# 642 "/usr/include/string.h" 3 4 -} -# 34 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Defines.hpp" 2 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/limits" 1 3 -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/limits" 3 - -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/limits" 3 -# 158 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/limits" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - - enum float_round_style - { - round_indeterminate = -1, - round_toward_zero = 0, - round_to_nearest = 1, - round_toward_infinity = 2, - round_toward_neg_infinity = 3 - }; - - - - - - - - enum float_denorm_style - { - - denorm_indeterminate = -1, - - denorm_absent = 0, - - denorm_present = 1 - }; -# 202 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/limits" 3 - struct __numeric_limits_base - { - - - static constexpr bool is_specialized = false; - - - - - static constexpr int digits = 0; - - - static constexpr int digits10 = 0; - - - - - static constexpr int max_digits10 = 0; - - - - static constexpr bool is_signed = false; - - - static constexpr bool is_integer = false; - - - - - static constexpr bool is_exact = false; - - - - static constexpr int radix = 0; - - - - static constexpr int min_exponent = 0; - - - - static constexpr int min_exponent10 = 0; - - - - - static constexpr int max_exponent = 0; - - - - static constexpr int max_exponent10 = 0; - - - static constexpr bool has_infinity = false; - - - - static constexpr bool has_quiet_NaN = false; - - - - static constexpr bool has_signaling_NaN = false; - - - static constexpr float_denorm_style has_denorm = denorm_absent; - - - - static constexpr bool has_denorm_loss = false; - - - - static constexpr bool is_iec559 = false; - - - - - static constexpr bool is_bounded = false; -# 288 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/limits" 3 - static constexpr bool is_modulo = false; - - - static constexpr bool traps = false; - - - static constexpr bool tinyness_before = false; - - - - - static constexpr float_round_style round_style = - round_toward_zero; - }; -# 311 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/limits" 3 - template - struct numeric_limits : public __numeric_limits_base - { - - - static constexpr _Tp - min() noexcept { return _Tp(); } - - - static constexpr _Tp - max() noexcept { return _Tp(); } - - - - - static constexpr _Tp - lowest() noexcept { return _Tp(); } - - - - - static constexpr _Tp - epsilon() noexcept { return _Tp(); } - - - static constexpr _Tp - round_error() noexcept { return _Tp(); } - - - static constexpr _Tp - infinity() noexcept { return _Tp(); } - - - - static constexpr _Tp - quiet_NaN() noexcept { return _Tp(); } - - - - static constexpr _Tp - signaling_NaN() noexcept { return _Tp(); } - - - - - static constexpr _Tp - denorm_min() noexcept { return _Tp(); } - }; - - - - - template - struct numeric_limits - : public numeric_limits<_Tp> { }; - - template - struct numeric_limits - : public numeric_limits<_Tp> { }; - - template - struct numeric_limits - : public numeric_limits<_Tp> { }; -# 383 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/limits" 3 - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr bool - min() noexcept { return false; } - - static constexpr bool - max() noexcept { return true; } - - - static constexpr bool - lowest() noexcept { return min(); } - - static constexpr int digits = 1; - static constexpr int digits10 = 0; - - static constexpr int max_digits10 = 0; - - static constexpr bool is_signed = false; - static constexpr bool is_integer = true; - static constexpr bool is_exact = true; - static constexpr int radix = 2; - - static constexpr bool - epsilon() noexcept { return false; } - - static constexpr bool - round_error() noexcept { return false; } - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm - = denorm_absent; - static constexpr bool has_denorm_loss = false; - - static constexpr bool - infinity() noexcept { return false; } - - static constexpr bool - quiet_NaN() noexcept { return false; } - - static constexpr bool - signaling_NaN() noexcept { return false; } - - static constexpr bool - denorm_min() noexcept { return false; } - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = false; - - - - - static constexpr bool traps = true; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style - = round_toward_zero; - }; - - - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr char - min() noexcept { return (((char)(-1) < 0) ? -(((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0) - 1 : (char)0); } - - static constexpr char - max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } - - - static constexpr char - lowest() noexcept { return min(); } - - - static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); - static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); - - static constexpr int max_digits10 = 0; - - static constexpr bool is_signed = ((char)(-1) < 0); - static constexpr bool is_integer = true; - static constexpr bool is_exact = true; - static constexpr int radix = 2; - - static constexpr char - epsilon() noexcept { return 0; } - - static constexpr char - round_error() noexcept { return 0; } - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm - = denorm_absent; - static constexpr bool has_denorm_loss = false; - - static constexpr - char infinity() noexcept { return char(); } - - static constexpr char - quiet_NaN() noexcept { return char(); } - - static constexpr char - signaling_NaN() noexcept { return char(); } - - static constexpr char - denorm_min() noexcept { return static_cast(0); } - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = !is_signed; - - static constexpr bool traps = true; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style - = round_toward_zero; - }; - - - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr signed char - min() noexcept { return -0x7f - 1; } - - static constexpr signed char - max() noexcept { return 0x7f; } - - - static constexpr signed char - lowest() noexcept { return min(); } - - - static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); - static constexpr int digits10 - = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); - - static constexpr int max_digits10 = 0; - - static constexpr bool is_signed = true; - static constexpr bool is_integer = true; - static constexpr bool is_exact = true; - static constexpr int radix = 2; - - static constexpr signed char - epsilon() noexcept { return 0; } - - static constexpr signed char - round_error() noexcept { return 0; } - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm - = denorm_absent; - static constexpr bool has_denorm_loss = false; - - static constexpr signed char - infinity() noexcept { return static_cast(0); } - - static constexpr signed char - quiet_NaN() noexcept { return static_cast(0); } - - static constexpr signed char - signaling_NaN() noexcept - { return static_cast(0); } - - static constexpr signed char - denorm_min() noexcept - { return static_cast(0); } - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = false; - - static constexpr bool traps = true; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style - = round_toward_zero; - }; - - - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr unsigned char - min() noexcept { return 0; } - - static constexpr unsigned char - max() noexcept { return 0x7f * 2U + 1; } - - - static constexpr unsigned char - lowest() noexcept { return min(); } - - - static constexpr int digits - = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); - static constexpr int digits10 - = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); - - static constexpr int max_digits10 = 0; - - static constexpr bool is_signed = false; - static constexpr bool is_integer = true; - static constexpr bool is_exact = true; - static constexpr int radix = 2; - - static constexpr unsigned char - epsilon() noexcept { return 0; } - - static constexpr unsigned char - round_error() noexcept { return 0; } - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm - = denorm_absent; - static constexpr bool has_denorm_loss = false; - - static constexpr unsigned char - infinity() noexcept - { return static_cast(0); } - - static constexpr unsigned char - quiet_NaN() noexcept - { return static_cast(0); } - - static constexpr unsigned char - signaling_NaN() noexcept - { return static_cast(0); } - - static constexpr unsigned char - denorm_min() noexcept - { return static_cast(0); } - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = true; - - static constexpr bool traps = true; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style - = round_toward_zero; - }; - - - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr wchar_t - min() noexcept { return (((wchar_t)(-1) < 0) ? -(((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0) - 1 : (wchar_t)0); } - - static constexpr wchar_t - max() noexcept { return (((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0); } - - - static constexpr wchar_t - lowest() noexcept { return min(); } - - - static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); - static constexpr int digits10 - = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); - - static constexpr int max_digits10 = 0; - - static constexpr bool is_signed = ((wchar_t)(-1) < 0); - static constexpr bool is_integer = true; - static constexpr bool is_exact = true; - static constexpr int radix = 2; - - static constexpr wchar_t - epsilon() noexcept { return 0; } - - static constexpr wchar_t - round_error() noexcept { return 0; } - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm - = denorm_absent; - static constexpr bool has_denorm_loss = false; - - static constexpr wchar_t - infinity() noexcept { return wchar_t(); } - - static constexpr wchar_t - quiet_NaN() noexcept { return wchar_t(); } - - static constexpr wchar_t - signaling_NaN() noexcept { return wchar_t(); } - - static constexpr wchar_t - denorm_min() noexcept { return wchar_t(); } - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = !is_signed; - - static constexpr bool traps = true; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style - = round_toward_zero; - }; -# 796 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/limits" 3 - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr char16_t - min() noexcept { return (((char16_t)(-1) < 0) ? -(((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0) - 1 : (char16_t)0); } - - static constexpr char16_t - max() noexcept { return (((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0); } - - static constexpr char16_t - lowest() noexcept { return min(); } - - static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); - static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); - static constexpr int max_digits10 = 0; - static constexpr bool is_signed = ((char16_t)(-1) < 0); - static constexpr bool is_integer = true; - static constexpr bool is_exact = true; - static constexpr int radix = 2; - - static constexpr char16_t - epsilon() noexcept { return 0; } - - static constexpr char16_t - round_error() noexcept { return 0; } - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm = denorm_absent; - static constexpr bool has_denorm_loss = false; - - static constexpr char16_t - infinity() noexcept { return char16_t(); } - - static constexpr char16_t - quiet_NaN() noexcept { return char16_t(); } - - static constexpr char16_t - signaling_NaN() noexcept { return char16_t(); } - - static constexpr char16_t - denorm_min() noexcept { return char16_t(); } - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = !is_signed; - - static constexpr bool traps = true; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style = round_toward_zero; - }; - - - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr char32_t - min() noexcept { return (((char32_t)(-1) < 0) ? -(((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0) - 1 : (char32_t)0); } - - static constexpr char32_t - max() noexcept { return (((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0); } - - static constexpr char32_t - lowest() noexcept { return min(); } - - static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); - static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); - static constexpr int max_digits10 = 0; - static constexpr bool is_signed = ((char32_t)(-1) < 0); - static constexpr bool is_integer = true; - static constexpr bool is_exact = true; - static constexpr int radix = 2; - - static constexpr char32_t - epsilon() noexcept { return 0; } - - static constexpr char32_t - round_error() noexcept { return 0; } - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm = denorm_absent; - static constexpr bool has_denorm_loss = false; - - static constexpr char32_t - infinity() noexcept { return char32_t(); } - - static constexpr char32_t - quiet_NaN() noexcept { return char32_t(); } - - static constexpr char32_t - signaling_NaN() noexcept { return char32_t(); } - - static constexpr char32_t - denorm_min() noexcept { return char32_t(); } - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = !is_signed; - - static constexpr bool traps = true; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style = round_toward_zero; - }; - - - - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr short - min() noexcept { return -0x7fff - 1; } - - static constexpr short - max() noexcept { return 0x7fff; } - - - static constexpr short - lowest() noexcept { return min(); } - - - static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); - static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); - - static constexpr int max_digits10 = 0; - - static constexpr bool is_signed = true; - static constexpr bool is_integer = true; - static constexpr bool is_exact = true; - static constexpr int radix = 2; - - static constexpr short - epsilon() noexcept { return 0; } - - static constexpr short - round_error() noexcept { return 0; } - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm - = denorm_absent; - static constexpr bool has_denorm_loss = false; - - static constexpr short - infinity() noexcept { return short(); } - - static constexpr short - quiet_NaN() noexcept { return short(); } - - static constexpr short - signaling_NaN() noexcept { return short(); } - - static constexpr short - denorm_min() noexcept { return short(); } - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = false; - - static constexpr bool traps = true; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style - = round_toward_zero; - }; - - - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr unsigned short - min() noexcept { return 0; } - - static constexpr unsigned short - max() noexcept { return 0x7fff * 2U + 1; } - - - static constexpr unsigned short - lowest() noexcept { return min(); } - - - static constexpr int digits - = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); - static constexpr int digits10 - = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); - - static constexpr int max_digits10 = 0; - - static constexpr bool is_signed = false; - static constexpr bool is_integer = true; - static constexpr bool is_exact = true; - static constexpr int radix = 2; - - static constexpr unsigned short - epsilon() noexcept { return 0; } - - static constexpr unsigned short - round_error() noexcept { return 0; } - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm - = denorm_absent; - static constexpr bool has_denorm_loss = false; - - static constexpr unsigned short - infinity() noexcept - { return static_cast(0); } - - static constexpr unsigned short - quiet_NaN() noexcept - { return static_cast(0); } - - static constexpr unsigned short - signaling_NaN() noexcept - { return static_cast(0); } - - static constexpr unsigned short - denorm_min() noexcept - { return static_cast(0); } - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = true; - - static constexpr bool traps = true; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style - = round_toward_zero; - }; - - - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr int - min() noexcept { return -0x7fffffff - 1; } - - static constexpr int - max() noexcept { return 0x7fffffff; } - - - static constexpr int - lowest() noexcept { return min(); } - - - static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); - static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); - - static constexpr int max_digits10 = 0; - - static constexpr bool is_signed = true; - static constexpr bool is_integer = true; - static constexpr bool is_exact = true; - static constexpr int radix = 2; - - static constexpr int - epsilon() noexcept { return 0; } - - static constexpr int - round_error() noexcept { return 0; } - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm - = denorm_absent; - static constexpr bool has_denorm_loss = false; - - static constexpr int - infinity() noexcept { return static_cast(0); } - - static constexpr int - quiet_NaN() noexcept { return static_cast(0); } - - static constexpr int - signaling_NaN() noexcept { return static_cast(0); } - - static constexpr int - denorm_min() noexcept { return static_cast(0); } - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = false; - - static constexpr bool traps = true; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style - = round_toward_zero; - }; - - - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr unsigned int - min() noexcept { return 0; } - - static constexpr unsigned int - max() noexcept { return 0x7fffffff * 2U + 1; } - - - static constexpr unsigned int - lowest() noexcept { return min(); } - - - static constexpr int digits - = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); - static constexpr int digits10 - = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); - - static constexpr int max_digits10 = 0; - - static constexpr bool is_signed = false; - static constexpr bool is_integer = true; - static constexpr bool is_exact = true; - static constexpr int radix = 2; - - static constexpr unsigned int - epsilon() noexcept { return 0; } - - static constexpr unsigned int - round_error() noexcept { return 0; } - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm - = denorm_absent; - static constexpr bool has_denorm_loss = false; - - static constexpr unsigned int - infinity() noexcept { return static_cast(0); } - - static constexpr unsigned int - quiet_NaN() noexcept - { return static_cast(0); } - - static constexpr unsigned int - signaling_NaN() noexcept - { return static_cast(0); } - - static constexpr unsigned int - denorm_min() noexcept - { return static_cast(0); } - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = true; - - static constexpr bool traps = true; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style - = round_toward_zero; - }; - - - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr long - min() noexcept { return -0x7fffffffffffffffL - 1; } - - static constexpr long - max() noexcept { return 0x7fffffffffffffffL; } - - - static constexpr long - lowest() noexcept { return min(); } - - - static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); - static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); - - static constexpr int max_digits10 = 0; - - static constexpr bool is_signed = true; - static constexpr bool is_integer = true; - static constexpr bool is_exact = true; - static constexpr int radix = 2; - - static constexpr long - epsilon() noexcept { return 0; } - - static constexpr long - round_error() noexcept { return 0; } - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm - = denorm_absent; - static constexpr bool has_denorm_loss = false; - - static constexpr long - infinity() noexcept { return static_cast(0); } - - static constexpr long - quiet_NaN() noexcept { return static_cast(0); } - - static constexpr long - signaling_NaN() noexcept { return static_cast(0); } - - static constexpr long - denorm_min() noexcept { return static_cast(0); } - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = false; - - static constexpr bool traps = true; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style - = round_toward_zero; - }; - - - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr unsigned long - min() noexcept { return 0; } - - static constexpr unsigned long - max() noexcept { return 0x7fffffffffffffffL * 2UL + 1; } - - - static constexpr unsigned long - lowest() noexcept { return min(); } - - - static constexpr int digits - = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); - static constexpr int digits10 - = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); - - static constexpr int max_digits10 = 0; - - static constexpr bool is_signed = false; - static constexpr bool is_integer = true; - static constexpr bool is_exact = true; - static constexpr int radix = 2; - - static constexpr unsigned long - epsilon() noexcept { return 0; } - - static constexpr unsigned long - round_error() noexcept { return 0; } - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm - = denorm_absent; - static constexpr bool has_denorm_loss = false; - - static constexpr unsigned long - infinity() noexcept - { return static_cast(0); } - - static constexpr unsigned long - quiet_NaN() noexcept - { return static_cast(0); } - - static constexpr unsigned long - signaling_NaN() noexcept - { return static_cast(0); } - - static constexpr unsigned long - denorm_min() noexcept - { return static_cast(0); } - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = true; - - static constexpr bool traps = true; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style - = round_toward_zero; - }; - - - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr long long - min() noexcept { return -0x7fffffffffffffffLL - 1; } - - static constexpr long long - max() noexcept { return 0x7fffffffffffffffLL; } - - - static constexpr long long - lowest() noexcept { return min(); } - - - static constexpr int digits - = (sizeof(long long) * 8 - ((long long)(-1) < 0)); - static constexpr int digits10 - = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); - - static constexpr int max_digits10 = 0; - - static constexpr bool is_signed = true; - static constexpr bool is_integer = true; - static constexpr bool is_exact = true; - static constexpr int radix = 2; - - static constexpr long long - epsilon() noexcept { return 0; } - - static constexpr long long - round_error() noexcept { return 0; } - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm - = denorm_absent; - static constexpr bool has_denorm_loss = false; - - static constexpr long long - infinity() noexcept { return static_cast(0); } - - static constexpr long long - quiet_NaN() noexcept { return static_cast(0); } - - static constexpr long long - signaling_NaN() noexcept - { return static_cast(0); } - - static constexpr long long - denorm_min() noexcept { return static_cast(0); } - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = false; - - static constexpr bool traps = true; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style - = round_toward_zero; - }; - - - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr unsigned long long - min() noexcept { return 0; } - - static constexpr unsigned long long - max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } - - - static constexpr unsigned long long - lowest() noexcept { return min(); } - - - static constexpr int digits - = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); - static constexpr int digits10 - = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); - - static constexpr int max_digits10 = 0; - - static constexpr bool is_signed = false; - static constexpr bool is_integer = true; - static constexpr bool is_exact = true; - static constexpr int radix = 2; - - static constexpr unsigned long long - epsilon() noexcept { return 0; } - - static constexpr unsigned long long - round_error() noexcept { return 0; } - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm - = denorm_absent; - static constexpr bool has_denorm_loss = false; - - static constexpr unsigned long long - infinity() noexcept - { return static_cast(0); } - - static constexpr unsigned long long - quiet_NaN() noexcept - { return static_cast(0); } - - static constexpr unsigned long long - signaling_NaN() noexcept - { return static_cast(0); } - - static constexpr unsigned long long - denorm_min() noexcept - { return static_cast(0); } - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = true; - - static constexpr bool traps = true; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style - = round_toward_zero; - }; -# 1636 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/limits" 3 - template<> struct numeric_limits<__int128> { static constexpr bool is_specialized = true; static constexpr __int128 min() noexcept { return (((__int128)(-1) < 0) ? -(((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0) - 1 : (__int128)0); } static constexpr __int128 max() noexcept { return (((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0); } static constexpr int digits = 128 - 1; static constexpr int digits10 = (128 - 1) * 643L / 2136; static constexpr bool is_signed = true; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr __int128 epsilon() noexcept { return 0; } static constexpr __int128 round_error() noexcept { return 0; } static constexpr __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr __int128 infinity() noexcept { return static_cast<__int128>(0); } static constexpr __int128 quiet_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 signaling_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 denorm_min() noexcept { return static_cast<__int128>(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static constexpr bool is_specialized = true; static constexpr unsigned __int128 min() noexcept { return 0; } static constexpr unsigned __int128 max() noexcept { return (((unsigned __int128)(-1) < 0) ? (((((unsigned __int128)1 << ((128 - ((unsigned __int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(unsigned __int128)0); } static constexpr unsigned __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int digits = 128; static constexpr int digits10 = 128 * 643L / 2136; static constexpr bool is_signed = false; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr unsigned __int128 epsilon() noexcept { return 0; } static constexpr unsigned __int128 round_error() noexcept { return 0; } static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr unsigned __int128 infinity() noexcept { return static_cast(0); } static constexpr unsigned __int128 quiet_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 signaling_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 denorm_min() noexcept { return static_cast(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = true; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; -# 1659 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/limits" 3 - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr float - min() noexcept { return 1.17549435082228750796873653722224568e-38F; } - - static constexpr float - max() noexcept { return 3.40282346638528859811704183484516925e+38F; } - - - static constexpr float - lowest() noexcept { return -3.40282346638528859811704183484516925e+38F; } - - - static constexpr int digits = 24; - static constexpr int digits10 = 6; - - static constexpr int max_digits10 - = (2 + (24) * 643L / 2136); - - static constexpr bool is_signed = true; - static constexpr bool is_integer = false; - static constexpr bool is_exact = false; - static constexpr int radix = 2; - - static constexpr float - epsilon() noexcept { return 1.19209289550781250000000000000000000e-7F; } - - static constexpr float - round_error() noexcept { return 0.5F; } - - static constexpr int min_exponent = (-125); - static constexpr int min_exponent10 = (-37); - static constexpr int max_exponent = 128; - static constexpr int max_exponent10 = 38; - - static constexpr bool has_infinity = 1; - static constexpr bool has_quiet_NaN = 1; - static constexpr bool has_signaling_NaN = has_quiet_NaN; - static constexpr float_denorm_style has_denorm - = bool(1) ? denorm_present : denorm_absent; - static constexpr bool has_denorm_loss - = false; - - static constexpr float - infinity() noexcept { return __builtin_huge_valf(); } - - static constexpr float - quiet_NaN() noexcept { return __builtin_nanf(""); } - - static constexpr float - signaling_NaN() noexcept { return __builtin_nansf(""); } - - static constexpr float - denorm_min() noexcept { return 1.40129846432481707092372958328991613e-45F; } - - static constexpr bool is_iec559 - = has_infinity && has_quiet_NaN && has_denorm == denorm_present; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = false; - - static constexpr bool traps = false; - static constexpr bool tinyness_before - = false; - static constexpr float_round_style round_style - = round_to_nearest; - }; - - - - - - - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr double - min() noexcept { return double(2.22507385850720138309023271733240406e-308L); } - - static constexpr double - max() noexcept { return double(1.79769313486231570814527423731704357e+308L); } - - - static constexpr double - lowest() noexcept { return -double(1.79769313486231570814527423731704357e+308L); } - - - static constexpr int digits = 53; - static constexpr int digits10 = 15; - - static constexpr int max_digits10 - = (2 + (53) * 643L / 2136); - - static constexpr bool is_signed = true; - static constexpr bool is_integer = false; - static constexpr bool is_exact = false; - static constexpr int radix = 2; - - static constexpr double - epsilon() noexcept { return double(2.22044604925031308084726333618164062e-16L); } - - static constexpr double - round_error() noexcept { return 0.5; } - - static constexpr int min_exponent = (-1021); - static constexpr int min_exponent10 = (-307); - static constexpr int max_exponent = 1024; - static constexpr int max_exponent10 = 308; - - static constexpr bool has_infinity = 1; - static constexpr bool has_quiet_NaN = 1; - static constexpr bool has_signaling_NaN = has_quiet_NaN; - static constexpr float_denorm_style has_denorm - = bool(1) ? denorm_present : denorm_absent; - static constexpr bool has_denorm_loss - = false; - - static constexpr double - infinity() noexcept { return __builtin_huge_val(); } - - static constexpr double - quiet_NaN() noexcept { return __builtin_nan(""); } - - static constexpr double - signaling_NaN() noexcept { return __builtin_nans(""); } - - static constexpr double - denorm_min() noexcept { return double(4.94065645841246544176568792868221372e-324L); } - - static constexpr bool is_iec559 - = has_infinity && has_quiet_NaN && has_denorm == denorm_present; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = false; - - static constexpr bool traps = false; - static constexpr bool tinyness_before - = false; - static constexpr float_round_style round_style - = round_to_nearest; - }; - - - - - - - template<> - struct numeric_limits - { - static constexpr bool is_specialized = true; - - static constexpr long double - min() noexcept { return 3.36210314311209350626267781732175260e-4932L; } - - static constexpr long double - max() noexcept { return 1.18973149535723176502126385303097021e+4932L; } - - - static constexpr long double - lowest() noexcept { return -1.18973149535723176502126385303097021e+4932L; } - - - static constexpr int digits = 64; - static constexpr int digits10 = 18; - - static constexpr int max_digits10 - = (2 + (64) * 643L / 2136); - - static constexpr bool is_signed = true; - static constexpr bool is_integer = false; - static constexpr bool is_exact = false; - static constexpr int radix = 2; - - static constexpr long double - epsilon() noexcept { return 1.08420217248550443400745280086994171e-19L; } - - static constexpr long double - round_error() noexcept { return 0.5L; } - - static constexpr int min_exponent = (-16381); - static constexpr int min_exponent10 = (-4931); - static constexpr int max_exponent = 16384; - static constexpr int max_exponent10 = 4932; - - static constexpr bool has_infinity = 1; - static constexpr bool has_quiet_NaN = 1; - static constexpr bool has_signaling_NaN = has_quiet_NaN; - static constexpr float_denorm_style has_denorm - = bool(1) ? denorm_present : denorm_absent; - static constexpr bool has_denorm_loss - = false; - - static constexpr long double - infinity() noexcept { return __builtin_huge_vall(); } - - static constexpr long double - quiet_NaN() noexcept { return __builtin_nanl(""); } - - static constexpr long double - signaling_NaN() noexcept { return __builtin_nansl(""); } - - static constexpr long double - denorm_min() noexcept { return 3.64519953188247460252840593361941982e-4951L; } - - static constexpr bool is_iec559 - = has_infinity && has_quiet_NaN && has_denorm == denorm_present; - static constexpr bool is_bounded = true; - static constexpr bool is_modulo = false; - - static constexpr bool traps = false; - static constexpr bool tinyness_before = - false; - static constexpr float_round_style round_style = - round_to_nearest; - }; - - - - - - -} -# 36 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Defines.hpp" 2 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include-fixed/limits.h" 1 3 4 -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include-fixed/limits.h" 3 4 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include-fixed/syslimits.h" 1 3 4 - - - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include-fixed/limits.h" 1 3 4 -# 195 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include-fixed/limits.h" 3 4 -# 1 "/usr/include/limits.h" 1 3 4 -# 144 "/usr/include/limits.h" 3 4 -# 1 "/usr/include/bits/posix1_lim.h" 1 3 4 -# 160 "/usr/include/bits/posix1_lim.h" 3 4 -# 1 "/usr/include/bits/local_lim.h" 1 3 4 -# 38 "/usr/include/bits/local_lim.h" 3 4 -# 1 "/usr/include/linux/limits.h" 1 3 4 -# 39 "/usr/include/bits/local_lim.h" 2 3 4 -# 161 "/usr/include/bits/posix1_lim.h" 2 3 4 -# 145 "/usr/include/limits.h" 2 3 4 - - - -# 1 "/usr/include/bits/posix2_lim.h" 1 3 4 -# 149 "/usr/include/limits.h" 2 3 4 - - - -# 1 "/usr/include/bits/xopen_lim.h" 1 3 4 -# 33 "/usr/include/bits/xopen_lim.h" 3 4 -# 1 "/usr/include/bits/stdio_lim.h" 1 3 4 -# 34 "/usr/include/bits/xopen_lim.h" 2 3 4 -# 153 "/usr/include/limits.h" 2 3 4 -# 196 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include-fixed/limits.h" 2 3 4 -# 8 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include-fixed/syslimits.h" 2 3 4 -# 35 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include-fixed/limits.h" 2 3 4 -# 37 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Defines.hpp" 2 -# 55 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Defines.hpp" - -# 55 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Defines.hpp" -using std::isnan; -using std::isinf; - -namespace SGTELIB { - - const double EPSILON = 1E-13; - const double PI = 3.141592654; - const double INF = std::numeric_limits::max(); - const double NaN = std::numeric_limits::quiet_NaN(); - - const bool APPROX_CDF = true; - - - - - enum norm_t { - NORM_0 , - NORM_1 , - NORM_2 , - NORM_INF - }; - - - - enum scaling_t { - SCALING_NONE , - SCALING_MEANSTD , - SCALING_BOUNDS - }; - - const scaling_t scaling_method = SCALING_MEANSTD; - const int boolean_rounding = 2; - - - - - - - - enum model_output_t { - NORMAL_OUTPUT , - FIXED_OUTPUT , - BINARY_OUTPUT - }; - - - enum bbo_t { - BBO_OBJ , - BBO_CON , - BBO_DUM - }; - - enum param_domain_t { - PARAM_DOMAIN_CONTINUOUS, - PARAM_DOMAIN_INTEGER, - PARAM_DOMAIN_BOOL, - PARAM_DOMAIN_CAT, - PARAM_DOMAIN_MISC - }; - - - - - enum param_status_t { - STATUS_FIXED, - STATUS_OPTIM, - STATUS_MODEL_DEFINED - }; - - - -} -# 30 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.hpp" 2 -# 1 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Exception.hpp" 1 -# 31 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Exception.hpp" -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdlib" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdlib" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdlib" 3 -# 32 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Exception.hpp" 2 - -namespace SGTELIB { - - class Exception : public std::exception { - - private: - - std::string _file; - int _line; - std::string _err_msg; - - mutable std::string _tmp; - - public: - - virtual const char * what ( void ) const throw() { - std::ostringstream oss; - oss << _file << ":" << _line << " (" << _err_msg << ")"; - _tmp = oss.str(); - return _tmp.c_str(); - } - - Exception ( const std::string & file , - int line , - const std::string & err_msg ) - : _file(file) , _line(line) , _err_msg(err_msg) {} - - virtual ~Exception ( void ) throw() {} - }; -} -# 31 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.hpp" 2 -# 1 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Matrix.hpp" 1 -# 29 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Matrix.hpp" -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/set" 1 3 -# 58 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/set" 3 - -# 59 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/set" 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 1 3 -# 61 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 3 - -# 62 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 3 - - - - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/aligned_buffer.h" 1 3 -# 32 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/aligned_buffer.h" 3 - -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/aligned_buffer.h" 3 - - - - - - - - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/aligned_buffer.h" 3 -namespace __gnu_cxx -{ - - - - - template - struct __aligned_membuf - { - - - - - - struct _Tp2 { _Tp _M_t; }; - - alignas(__alignof__(_Tp2::_M_t)) unsigned char _M_storage[sizeof(_Tp)]; - - __aligned_membuf() = default; - - - __aligned_membuf(std::nullptr_t) { } - - void* - _M_addr() noexcept - { return static_cast(&_M_storage); } - - const void* - _M_addr() const noexcept - { return static_cast(&_M_storage); } - - _Tp* - _M_ptr() noexcept - { return static_cast<_Tp*>(_M_addr()); } - - const _Tp* - _M_ptr() const noexcept - { return static_cast(_M_addr()); } - }; -# 89 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/ext/aligned_buffer.h" 3 - template - struct __aligned_buffer - : std::aligned_storage - { - typename - std::aligned_storage::type _M_storage; - - __aligned_buffer() = default; - - - __aligned_buffer(std::nullptr_t) { } - - void* - _M_addr() noexcept - { - return static_cast(&_M_storage); - } - - const void* - _M_addr() const noexcept - { - return static_cast(&_M_storage); - } - - _Tp* - _M_ptr() noexcept - { return static_cast<_Tp*>(_M_addr()); } - - const _Tp* - _M_ptr() const noexcept - { return static_cast(_M_addr()); } - }; - - -} -# 70 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 2 3 - - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 99 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 3 - enum _Rb_tree_color { _S_red = false, _S_black = true }; - - struct _Rb_tree_node_base - { - typedef _Rb_tree_node_base* _Base_ptr; - typedef const _Rb_tree_node_base* _Const_Base_ptr; - - _Rb_tree_color _M_color; - _Base_ptr _M_parent; - _Base_ptr _M_left; - _Base_ptr _M_right; - - static _Base_ptr - _S_minimum(_Base_ptr __x) noexcept - { - while (__x->_M_left != 0) __x = __x->_M_left; - return __x; - } - - static _Const_Base_ptr - _S_minimum(_Const_Base_ptr __x) noexcept - { - while (__x->_M_left != 0) __x = __x->_M_left; - return __x; - } - - static _Base_ptr - _S_maximum(_Base_ptr __x) noexcept - { - while (__x->_M_right != 0) __x = __x->_M_right; - return __x; - } - - static _Const_Base_ptr - _S_maximum(_Const_Base_ptr __x) noexcept - { - while (__x->_M_right != 0) __x = __x->_M_right; - return __x; - } - }; - - - template - struct _Rb_tree_key_compare - { - _Key_compare _M_key_compare; - - _Rb_tree_key_compare() - noexcept(is_nothrow_default_constructible<_Key_compare>::value) - - : _M_key_compare() - { } - - _Rb_tree_key_compare(const _Key_compare& __comp) - : _M_key_compare(__comp) - { } - - - - _Rb_tree_key_compare(const _Rb_tree_key_compare&) = default; - - _Rb_tree_key_compare(_Rb_tree_key_compare&& __x) - noexcept(is_nothrow_copy_constructible<_Key_compare>::value) - : _M_key_compare(__x._M_key_compare) - { } - - }; - - - struct _Rb_tree_header - { - _Rb_tree_node_base _M_header; - size_t _M_node_count; - - _Rb_tree_header() noexcept - { - _M_header._M_color = _S_red; - _M_reset(); - } - - - _Rb_tree_header(_Rb_tree_header&& __x) noexcept - { - if (__x._M_header._M_parent != nullptr) - _M_move_data(__x); - else - { - _M_header._M_color = _S_red; - _M_reset(); - } - } - - - void - _M_move_data(_Rb_tree_header& __from) - { - _M_header._M_color = __from._M_header._M_color; - _M_header._M_parent = __from._M_header._M_parent; - _M_header._M_left = __from._M_header._M_left; - _M_header._M_right = __from._M_header._M_right; - _M_header._M_parent->_M_parent = &_M_header; - _M_node_count = __from._M_node_count; - - __from._M_reset(); - } - - void - _M_reset() - { - _M_header._M_parent = 0; - _M_header._M_left = &_M_header; - _M_header._M_right = &_M_header; - _M_node_count = 0; - } - }; - - template - struct _Rb_tree_node : public _Rb_tree_node_base - { - typedef _Rb_tree_node<_Val>* _Link_type; -# 231 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 3 - __gnu_cxx::__aligned_membuf<_Val> _M_storage; - - _Val* - _M_valptr() - { return _M_storage._M_ptr(); } - - const _Val* - _M_valptr() const - { return _M_storage._M_ptr(); } - - }; - - __attribute__ ((__pure__)) _Rb_tree_node_base* - _Rb_tree_increment(_Rb_tree_node_base* __x) throw (); - - __attribute__ ((__pure__)) const _Rb_tree_node_base* - _Rb_tree_increment(const _Rb_tree_node_base* __x) throw (); - - __attribute__ ((__pure__)) _Rb_tree_node_base* - _Rb_tree_decrement(_Rb_tree_node_base* __x) throw (); - - __attribute__ ((__pure__)) const _Rb_tree_node_base* - _Rb_tree_decrement(const _Rb_tree_node_base* __x) throw (); - - template - struct _Rb_tree_iterator - { - typedef _Tp value_type; - typedef _Tp& reference; - typedef _Tp* pointer; - - typedef bidirectional_iterator_tag iterator_category; - typedef ptrdiff_t difference_type; - - typedef _Rb_tree_iterator<_Tp> _Self; - typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; - typedef _Rb_tree_node<_Tp>* _Link_type; - - _Rb_tree_iterator() noexcept - : _M_node() { } - - explicit - _Rb_tree_iterator(_Base_ptr __x) noexcept - : _M_node(__x) { } - - reference - operator*() const noexcept - { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } - - pointer - operator->() const noexcept - { return static_cast<_Link_type> (_M_node)->_M_valptr(); } - - _Self& - operator++() noexcept - { - _M_node = _Rb_tree_increment(_M_node); - return *this; - } - - _Self - operator++(int) noexcept - { - _Self __tmp = *this; - _M_node = _Rb_tree_increment(_M_node); - return __tmp; - } - - _Self& - operator--() noexcept - { - _M_node = _Rb_tree_decrement(_M_node); - return *this; - } - - _Self - operator--(int) noexcept - { - _Self __tmp = *this; - _M_node = _Rb_tree_decrement(_M_node); - return __tmp; - } - - friend bool - operator==(const _Self& __x, const _Self& __y) noexcept - { return __x._M_node == __y._M_node; } - - - friend bool - operator!=(const _Self& __x, const _Self& __y) noexcept - { return __x._M_node != __y._M_node; } - - - _Base_ptr _M_node; - }; - - template - struct _Rb_tree_const_iterator - { - typedef _Tp value_type; - typedef const _Tp& reference; - typedef const _Tp* pointer; - - typedef _Rb_tree_iterator<_Tp> iterator; - - typedef bidirectional_iterator_tag iterator_category; - typedef ptrdiff_t difference_type; - - typedef _Rb_tree_const_iterator<_Tp> _Self; - typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr; - typedef const _Rb_tree_node<_Tp>* _Link_type; - - _Rb_tree_const_iterator() noexcept - : _M_node() { } - - explicit - _Rb_tree_const_iterator(_Base_ptr __x) noexcept - : _M_node(__x) { } - - _Rb_tree_const_iterator(const iterator& __it) noexcept - : _M_node(__it._M_node) { } - - iterator - _M_const_cast() const noexcept - { return iterator(const_cast(_M_node)); } - - reference - operator*() const noexcept - { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } - - pointer - operator->() const noexcept - { return static_cast<_Link_type>(_M_node)->_M_valptr(); } - - _Self& - operator++() noexcept - { - _M_node = _Rb_tree_increment(_M_node); - return *this; - } - - _Self - operator++(int) noexcept - { - _Self __tmp = *this; - _M_node = _Rb_tree_increment(_M_node); - return __tmp; - } - - _Self& - operator--() noexcept - { - _M_node = _Rb_tree_decrement(_M_node); - return *this; - } - - _Self - operator--(int) noexcept - { - _Self __tmp = *this; - _M_node = _Rb_tree_decrement(_M_node); - return __tmp; - } - - friend bool - operator==(const _Self& __x, const _Self& __y) noexcept - { return __x._M_node == __y._M_node; } - - - friend bool - operator!=(const _Self& __x, const _Self& __y) noexcept - { return __x._M_node != __y._M_node; } - - - _Base_ptr _M_node; - }; - - void - _Rb_tree_insert_and_rebalance(const bool __insert_left, - _Rb_tree_node_base* __x, - _Rb_tree_node_base* __p, - _Rb_tree_node_base& __header) throw (); - - _Rb_tree_node_base* - _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z, - _Rb_tree_node_base& __header) throw (); - - - template> - struct __has_is_transparent - { }; - - template - struct __has_is_transparent<_Cmp, _SfinaeType, - __void_t> - { typedef void type; }; - - template - using __has_is_transparent_t - = typename __has_is_transparent<_Cmp, _SfinaeType>::type; - - - - - - - - template > - class _Rb_tree - { - typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template - rebind<_Rb_tree_node<_Val> >::other _Node_allocator; - - typedef __gnu_cxx::__alloc_traits<_Node_allocator> _Alloc_traits; - - protected: - typedef _Rb_tree_node_base* _Base_ptr; - typedef const _Rb_tree_node_base* _Const_Base_ptr; - typedef _Rb_tree_node<_Val>* _Link_type; - typedef const _Rb_tree_node<_Val>* _Const_Link_type; - - private: - - - struct _Reuse_or_alloc_node - { - _Reuse_or_alloc_node(_Rb_tree& __t) - : _M_root(__t._M_root()), _M_nodes(__t._M_rightmost()), _M_t(__t) - { - if (_M_root) - { - _M_root->_M_parent = 0; - - if (_M_nodes->_M_left) - _M_nodes = _M_nodes->_M_left; - } - else - _M_nodes = 0; - } - - - _Reuse_or_alloc_node(const _Reuse_or_alloc_node&) = delete; - - - ~_Reuse_or_alloc_node() - { _M_t._M_erase(static_cast<_Link_type>(_M_root)); } - - template - _Link_type - - - - operator()(_Arg&& __arg) - - { - _Link_type __node = static_cast<_Link_type>(_M_extract()); - if (__node) - { - _M_t._M_destroy_node(__node); - _M_t._M_construct_node(__node, std::forward<_Arg>(__arg)); - return __node; - } - - return _M_t._M_create_node(std::forward<_Arg>(__arg)); - } - - private: - _Base_ptr - _M_extract() - { - if (!_M_nodes) - return _M_nodes; - - _Base_ptr __node = _M_nodes; - _M_nodes = _M_nodes->_M_parent; - if (_M_nodes) - { - if (_M_nodes->_M_right == __node) - { - _M_nodes->_M_right = 0; - - if (_M_nodes->_M_left) - { - _M_nodes = _M_nodes->_M_left; - - while (_M_nodes->_M_right) - _M_nodes = _M_nodes->_M_right; - - if (_M_nodes->_M_left) - _M_nodes = _M_nodes->_M_left; - } - } - else - _M_nodes->_M_left = 0; - } - else - _M_root = 0; - - return __node; - } - - _Base_ptr _M_root; - _Base_ptr _M_nodes; - _Rb_tree& _M_t; - }; - - - - struct _Alloc_node - { - _Alloc_node(_Rb_tree& __t) - : _M_t(__t) { } - - template - _Link_type - - - - operator()(_Arg&& __arg) const - - { return _M_t._M_create_node(std::forward<_Arg>(__arg)); } - - private: - _Rb_tree& _M_t; - }; - - public: - typedef _Key key_type; - typedef _Val value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef _Alloc allocator_type; - - _Node_allocator& - _M_get_Node_allocator() noexcept - { return this->_M_impl; } - - const _Node_allocator& - _M_get_Node_allocator() const noexcept - { return this->_M_impl; } - - allocator_type - get_allocator() const noexcept - { return allocator_type(_M_get_Node_allocator()); } - - protected: - _Link_type - _M_get_node() - { return _Alloc_traits::allocate(_M_get_Node_allocator(), 1); } - - void - _M_put_node(_Link_type __p) noexcept - { _Alloc_traits::deallocate(_M_get_Node_allocator(), __p, 1); } -# 611 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 3 - template - void - _M_construct_node(_Link_type __node, _Args&&... __args) - { - try - { - ::new(__node) _Rb_tree_node<_Val>; - _Alloc_traits::construct(_M_get_Node_allocator(), - __node->_M_valptr(), - std::forward<_Args>(__args)...); - } - catch(...) - { - __node->~_Rb_tree_node<_Val>(); - _M_put_node(__node); - throw; - } - } - - template - _Link_type - _M_create_node(_Args&&... __args) - { - _Link_type __tmp = _M_get_node(); - _M_construct_node(__tmp, std::forward<_Args>(__args)...); - return __tmp; - } - - - void - _M_destroy_node(_Link_type __p) noexcept - { - - - - _Alloc_traits::destroy(_M_get_Node_allocator(), __p->_M_valptr()); - __p->~_Rb_tree_node<_Val>(); - - } - - void - _M_drop_node(_Link_type __p) noexcept - { - _M_destroy_node(__p); - _M_put_node(__p); - } - - template - _Link_type - _M_clone_node(_Const_Link_type __x, _NodeGen& __node_gen) - { - _Link_type __tmp = __node_gen(*__x->_M_valptr()); - __tmp->_M_color = __x->_M_color; - __tmp->_M_left = 0; - __tmp->_M_right = 0; - return __tmp; - } - - protected: - - - - - template - - struct _Rb_tree_impl - : public _Node_allocator - , public _Rb_tree_key_compare<_Key_compare> - , public _Rb_tree_header - { - typedef _Rb_tree_key_compare<_Key_compare> _Base_key_compare; - - _Rb_tree_impl() - noexcept(is_nothrow_default_constructible<_Node_allocator>::value && is_nothrow_default_constructible<_Base_key_compare>::value) - - - : _Node_allocator() - { } - - _Rb_tree_impl(const _Rb_tree_impl& __x) - : _Node_allocator(_Alloc_traits::_S_select_on_copy(__x)) - , _Base_key_compare(__x._M_key_compare) - { } - - - - - - - _Rb_tree_impl(_Rb_tree_impl&&) = default; - - explicit - _Rb_tree_impl(_Node_allocator&& __a) - : _Node_allocator(std::move(__a)) - { } - - _Rb_tree_impl(_Rb_tree_impl&& __x, _Node_allocator&& __a) - : _Node_allocator(std::move(__a)), - _Base_key_compare(std::move(__x)), - _Rb_tree_header(std::move(__x)) - { } - - _Rb_tree_impl(const _Key_compare& __comp, _Node_allocator&& __a) - : _Node_allocator(std::move(__a)), _Base_key_compare(__comp) - { } - - }; - - _Rb_tree_impl<_Compare> _M_impl; - - protected: - _Base_ptr& - _M_root() noexcept - { return this->_M_impl._M_header._M_parent; } - - _Const_Base_ptr - _M_root() const noexcept - { return this->_M_impl._M_header._M_parent; } - - _Base_ptr& - _M_leftmost() noexcept - { return this->_M_impl._M_header._M_left; } - - _Const_Base_ptr - _M_leftmost() const noexcept - { return this->_M_impl._M_header._M_left; } - - _Base_ptr& - _M_rightmost() noexcept - { return this->_M_impl._M_header._M_right; } - - _Const_Base_ptr - _M_rightmost() const noexcept - { return this->_M_impl._M_header._M_right; } - - _Link_type - _M_begin() noexcept - { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } - - _Const_Link_type - _M_begin() const noexcept - { - return static_cast<_Const_Link_type> - (this->_M_impl._M_header._M_parent); - } - - _Base_ptr - _M_end() noexcept - { return &this->_M_impl._M_header; } - - _Const_Base_ptr - _M_end() const noexcept - { return &this->_M_impl._M_header; } - - static const _Key& - _S_key(_Const_Link_type __x) - { - - - - static_assert(__is_invocable<_Compare&, const _Key&, const _Key&>{}, - "comparison object must be invocable " - "with two arguments of key type"); -# 785 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 3 - return _KeyOfValue()(*__x->_M_valptr()); - } - - static _Link_type - _S_left(_Base_ptr __x) noexcept - { return static_cast<_Link_type>(__x->_M_left); } - - static _Const_Link_type - _S_left(_Const_Base_ptr __x) noexcept - { return static_cast<_Const_Link_type>(__x->_M_left); } - - static _Link_type - _S_right(_Base_ptr __x) noexcept - { return static_cast<_Link_type>(__x->_M_right); } - - static _Const_Link_type - _S_right(_Const_Base_ptr __x) noexcept - { return static_cast<_Const_Link_type>(__x->_M_right); } - - static const _Key& - _S_key(_Const_Base_ptr __x) - { return _S_key(static_cast<_Const_Link_type>(__x)); } - - static _Base_ptr - _S_minimum(_Base_ptr __x) noexcept - { return _Rb_tree_node_base::_S_minimum(__x); } - - static _Const_Base_ptr - _S_minimum(_Const_Base_ptr __x) noexcept - { return _Rb_tree_node_base::_S_minimum(__x); } - - static _Base_ptr - _S_maximum(_Base_ptr __x) noexcept - { return _Rb_tree_node_base::_S_maximum(__x); } - - static _Const_Base_ptr - _S_maximum(_Const_Base_ptr __x) noexcept - { return _Rb_tree_node_base::_S_maximum(__x); } - - public: - typedef _Rb_tree_iterator iterator; - typedef _Rb_tree_const_iterator const_iterator; - - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; -# 838 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 3 - pair<_Base_ptr, _Base_ptr> - _M_get_insert_unique_pos(const key_type& __k); - - pair<_Base_ptr, _Base_ptr> - _M_get_insert_equal_pos(const key_type& __k); - - pair<_Base_ptr, _Base_ptr> - _M_get_insert_hint_unique_pos(const_iterator __pos, - const key_type& __k); - - pair<_Base_ptr, _Base_ptr> - _M_get_insert_hint_equal_pos(const_iterator __pos, - const key_type& __k); - - private: - - template - iterator - _M_insert_(_Base_ptr __x, _Base_ptr __y, _Arg&& __v, _NodeGen&); - - iterator - _M_insert_node(_Base_ptr __x, _Base_ptr __y, _Link_type __z); - - template - iterator - _M_insert_lower(_Base_ptr __y, _Arg&& __v); - - template - iterator - _M_insert_equal_lower(_Arg&& __x); - - iterator - _M_insert_lower_node(_Base_ptr __p, _Link_type __z); - - iterator - _M_insert_equal_lower_node(_Link_type __z); -# 889 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 3 - template - _Link_type - _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen&); - - template - _Link_type - _M_copy(const _Rb_tree& __x, _NodeGen& __gen) - { - _Link_type __root = _M_copy(__x._M_begin(), _M_end(), __gen); - _M_leftmost() = _S_minimum(__root); - _M_rightmost() = _S_maximum(__root); - _M_impl._M_node_count = __x._M_impl._M_node_count; - return __root; - } - - _Link_type - _M_copy(const _Rb_tree& __x) - { - _Alloc_node __an(*this); - return _M_copy(__x, __an); - } - - void - _M_erase(_Link_type __x); - - iterator - _M_lower_bound(_Link_type __x, _Base_ptr __y, - const _Key& __k); - - const_iterator - _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, - const _Key& __k) const; - - iterator - _M_upper_bound(_Link_type __x, _Base_ptr __y, - const _Key& __k); - - const_iterator - _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, - const _Key& __k) const; - - public: - - - - - _Rb_tree() = default; - - - _Rb_tree(const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_impl(__comp, _Node_allocator(__a)) { } - - _Rb_tree(const _Rb_tree& __x) - : _M_impl(__x._M_impl) - { - if (__x._M_root() != 0) - _M_root() = _M_copy(__x); - } - - - _Rb_tree(const allocator_type& __a) - : _M_impl(_Node_allocator(__a)) - { } - - _Rb_tree(const _Rb_tree& __x, const allocator_type& __a) - : _M_impl(__x._M_impl._M_key_compare, _Node_allocator(__a)) - { - if (__x._M_root() != nullptr) - _M_root() = _M_copy(__x); - } - - _Rb_tree(_Rb_tree&&) = default; - - _Rb_tree(_Rb_tree&& __x, const allocator_type& __a) - : _Rb_tree(std::move(__x), _Node_allocator(__a)) - { } - - private: - _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a, true_type) - noexcept(is_nothrow_default_constructible<_Compare>::value) - : _M_impl(std::move(__x._M_impl), std::move(__a)) - { } - - _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a, false_type) - : _M_impl(__x._M_impl._M_key_compare, std::move(__a)) - { - if (__x._M_root() != nullptr) - _M_move_data(__x, false_type{}); - } - - public: - _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a) - noexcept( noexcept( - _Rb_tree(std::declval<_Rb_tree&&>(), std::declval<_Node_allocator&&>(), - std::declval())) ) - : _Rb_tree(std::move(__x), std::move(__a), - typename _Alloc_traits::is_always_equal{}) - { } - - - ~_Rb_tree() noexcept - { _M_erase(_M_begin()); } - - _Rb_tree& - operator=(const _Rb_tree& __x); - - - _Compare - key_comp() const - { return _M_impl._M_key_compare; } - - iterator - begin() noexcept - { return iterator(this->_M_impl._M_header._M_left); } - - const_iterator - begin() const noexcept - { return const_iterator(this->_M_impl._M_header._M_left); } - - iterator - end() noexcept - { return iterator(&this->_M_impl._M_header); } - - const_iterator - end() const noexcept - { return const_iterator(&this->_M_impl._M_header); } - - reverse_iterator - rbegin() noexcept - { return reverse_iterator(end()); } - - const_reverse_iterator - rbegin() const noexcept - { return const_reverse_iterator(end()); } - - reverse_iterator - rend() noexcept - { return reverse_iterator(begin()); } - - const_reverse_iterator - rend() const noexcept - { return const_reverse_iterator(begin()); } - - bool - empty() const noexcept - { return _M_impl._M_node_count == 0; } - - size_type - size() const noexcept - { return _M_impl._M_node_count; } - - size_type - max_size() const noexcept - { return _Alloc_traits::max_size(_M_get_Node_allocator()); } - - void - swap(_Rb_tree& __t) - noexcept(__is_nothrow_swappable<_Compare>::value); - - - - template - pair - _M_insert_unique(_Arg&& __x); - - template - iterator - _M_insert_equal(_Arg&& __x); - - template - iterator - _M_insert_unique_(const_iterator __pos, _Arg&& __x, _NodeGen&); - - template - iterator - _M_insert_unique_(const_iterator __pos, _Arg&& __x) - { - _Alloc_node __an(*this); - return _M_insert_unique_(__pos, std::forward<_Arg>(__x), __an); - } - - template - iterator - _M_insert_equal_(const_iterator __pos, _Arg&& __x, _NodeGen&); - - template - iterator - _M_insert_equal_(const_iterator __pos, _Arg&& __x) - { - _Alloc_node __an(*this); - return _M_insert_equal_(__pos, std::forward<_Arg>(__x), __an); - } - - template - pair - _M_emplace_unique(_Args&&... __args); - - template - iterator - _M_emplace_equal(_Args&&... __args); - - template - iterator - _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args); - - template - iterator - _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args); - - template - using __same_value_type - = is_same::value_type>; - - template - __enable_if_t<__same_value_type<_InputIterator>::value> - _M_insert_range_unique(_InputIterator __first, _InputIterator __last) - { - _Alloc_node __an(*this); - for (; __first != __last; ++__first) - _M_insert_unique_(end(), *__first, __an); - } - - template - __enable_if_t::value> - _M_insert_range_unique(_InputIterator __first, _InputIterator __last) - { - for (; __first != __last; ++__first) - _M_emplace_unique(*__first); - } - - template - __enable_if_t<__same_value_type<_InputIterator>::value> - _M_insert_range_equal(_InputIterator __first, _InputIterator __last) - { - _Alloc_node __an(*this); - for (; __first != __last; ++__first) - _M_insert_equal_(end(), *__first, __an); - } - - template - __enable_if_t::value> - _M_insert_range_equal(_InputIterator __first, _InputIterator __last) - { - _Alloc_node __an(*this); - for (; __first != __last; ++__first) - _M_emplace_equal(*__first); - } -# 1186 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 3 - private: - void - _M_erase_aux(const_iterator __position); - - void - _M_erase_aux(const_iterator __first, const_iterator __last); - - public: - - - - __attribute ((__abi_tag__ ("cxx11"))) - iterator - erase(const_iterator __position) - { - ; - const_iterator __result = __position; - ++__result; - _M_erase_aux(__position); - return __result._M_const_cast(); - } - - - __attribute ((__abi_tag__ ("cxx11"))) - iterator - erase(iterator __position) - { - ; - iterator __result = __position; - ++__result; - _M_erase_aux(__position); - return __result; - } -# 1235 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 3 - size_type - erase(const key_type& __x); - - - - - __attribute ((__abi_tag__ ("cxx11"))) - iterator - erase(const_iterator __first, const_iterator __last) - { - _M_erase_aux(__first, __last); - return __last._M_const_cast(); - } -# 1258 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 3 - void - clear() noexcept - { - _M_erase(_M_begin()); - _M_impl._M_reset(); - } - - - iterator - find(const key_type& __k); - - const_iterator - find(const key_type& __k) const; - - size_type - count(const key_type& __k) const; - - iterator - lower_bound(const key_type& __k) - { return _M_lower_bound(_M_begin(), _M_end(), __k); } - - const_iterator - lower_bound(const key_type& __k) const - { return _M_lower_bound(_M_begin(), _M_end(), __k); } - - iterator - upper_bound(const key_type& __k) - { return _M_upper_bound(_M_begin(), _M_end(), __k); } - - const_iterator - upper_bound(const key_type& __k) const - { return _M_upper_bound(_M_begin(), _M_end(), __k); } - - pair - equal_range(const key_type& __k); - - pair - equal_range(const key_type& __k) const; - - - template> - iterator - _M_find_tr(const _Kt& __k) - { - const _Rb_tree* __const_this = this; - return __const_this->_M_find_tr(__k)._M_const_cast(); - } - - template> - const_iterator - _M_find_tr(const _Kt& __k) const - { - auto __j = _M_lower_bound_tr(__k); - if (__j != end() && _M_impl._M_key_compare(__k, _S_key(__j._M_node))) - __j = end(); - return __j; - } - - template> - size_type - _M_count_tr(const _Kt& __k) const - { - auto __p = _M_equal_range_tr(__k); - return std::distance(__p.first, __p.second); - } - - template> - iterator - _M_lower_bound_tr(const _Kt& __k) - { - const _Rb_tree* __const_this = this; - return __const_this->_M_lower_bound_tr(__k)._M_const_cast(); - } - - template> - const_iterator - _M_lower_bound_tr(const _Kt& __k) const - { - auto __x = _M_begin(); - auto __y = _M_end(); - while (__x != 0) - if (!_M_impl._M_key_compare(_S_key(__x), __k)) - { - __y = __x; - __x = _S_left(__x); - } - else - __x = _S_right(__x); - return const_iterator(__y); - } - - template> - iterator - _M_upper_bound_tr(const _Kt& __k) - { - const _Rb_tree* __const_this = this; - return __const_this->_M_upper_bound_tr(__k)._M_const_cast(); - } - - template> - const_iterator - _M_upper_bound_tr(const _Kt& __k) const - { - auto __x = _M_begin(); - auto __y = _M_end(); - while (__x != 0) - if (_M_impl._M_key_compare(__k, _S_key(__x))) - { - __y = __x; - __x = _S_left(__x); - } - else - __x = _S_right(__x); - return const_iterator(__y); - } - - template> - pair - _M_equal_range_tr(const _Kt& __k) - { - const _Rb_tree* __const_this = this; - auto __ret = __const_this->_M_equal_range_tr(__k); - return { __ret.first._M_const_cast(), __ret.second._M_const_cast() }; - } - - template> - pair - _M_equal_range_tr(const _Kt& __k) const - { - auto __low = _M_lower_bound_tr(__k); - auto __high = __low; - auto& __cmp = _M_impl._M_key_compare; - while (__high != end() && !__cmp(__k, _S_key(__high._M_node))) - ++__high; - return { __low, __high }; - } - - - - bool - __rb_verify() const; - - - _Rb_tree& - operator=(_Rb_tree&&) - noexcept(_Alloc_traits::_S_nothrow_move() - && is_nothrow_move_assignable<_Compare>::value); - - template - void - _M_assign_unique(_Iterator, _Iterator); - - template - void - _M_assign_equal(_Iterator, _Iterator); - - private: - - void - _M_move_data(_Rb_tree& __x, true_type) - { _M_impl._M_move_data(__x._M_impl); } - - - - void - _M_move_data(_Rb_tree&, false_type); - - - void - _M_move_assign(_Rb_tree&, true_type); - - - - void - _M_move_assign(_Rb_tree&, false_type); -# 1610 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 3 - friend bool - operator==(const _Rb_tree& __x, const _Rb_tree& __y) - { - return __x.size() == __y.size() - && std::equal(__x.begin(), __x.end(), __y.begin()); - } -# 1627 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 3 - friend bool - operator<(const _Rb_tree& __x, const _Rb_tree& __y) - { - return std::lexicographical_compare(__x.begin(), __x.end(), - __y.begin(), __y.end()); - } - - friend bool __attribute__ ((__deprecated__)) - operator!=(const _Rb_tree& __x, const _Rb_tree& __y) - { return !(__x == __y); } - - friend bool __attribute__ ((__deprecated__)) - operator>(const _Rb_tree& __x, const _Rb_tree& __y) - { return __y < __x; } - - friend bool __attribute__ ((__deprecated__)) - operator<=(const _Rb_tree& __x, const _Rb_tree& __y) - { return !(__y < __x); } - - friend bool __attribute__ ((__deprecated__)) - operator>=(const _Rb_tree& __x, const _Rb_tree& __y) - { return !(__x < __y); } - - }; - - template - inline void - swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) - { __x.swap(__y); } - - - template - void - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_move_data(_Rb_tree& __x, false_type) - { - if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) - _M_move_data(__x, true_type()); - else - { - _Alloc_node __an(*this); - auto __lbd = - [&__an](const value_type& __cval) - { - auto& __val = const_cast(__cval); - return __an(std::move_if_noexcept(__val)); - }; - _M_root() = _M_copy(__x, __lbd); - } - } - - template - inline void - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_move_assign(_Rb_tree& __x, true_type) - { - clear(); - if (__x._M_root() != nullptr) - _M_move_data(__x, true_type()); - std::__alloc_on_move(_M_get_Node_allocator(), - __x._M_get_Node_allocator()); - } - - template - void - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_move_assign(_Rb_tree& __x, false_type) - { - if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) - return _M_move_assign(__x, true_type{}); - - - - _Reuse_or_alloc_node __roan(*this); - _M_impl._M_reset(); - if (__x._M_root() != nullptr) - { - auto __lbd = - [&__roan](const value_type& __cval) - { - auto& __val = const_cast(__cval); - return __roan(std::move(__val)); - }; - _M_root() = _M_copy(__x, __lbd); - __x.clear(); - } - } - - template - inline _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - operator=(_Rb_tree&& __x) - noexcept(_Alloc_traits::_S_nothrow_move() - && is_nothrow_move_assignable<_Compare>::value) - { - _M_impl._M_key_compare = std::move(__x._M_impl._M_key_compare); - _M_move_assign(__x, __bool_constant<_Alloc_traits::_S_nothrow_move()>()); - return *this; - } - - template - template - void - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_assign_unique(_Iterator __first, _Iterator __last) - { - _Reuse_or_alloc_node __roan(*this); - _M_impl._M_reset(); - for (; __first != __last; ++__first) - _M_insert_unique_(end(), *__first, __roan); - } - - template - template - void - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_assign_equal(_Iterator __first, _Iterator __last) - { - _Reuse_or_alloc_node __roan(*this); - _M_impl._M_reset(); - for (; __first != __last; ++__first) - _M_insert_equal_(end(), *__first, __roan); - } - - - template - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - operator=(const _Rb_tree& __x) - { - if (this != &__x) - { - - - if (_Alloc_traits::_S_propagate_on_copy_assign()) - { - auto& __this_alloc = this->_M_get_Node_allocator(); - auto& __that_alloc = __x._M_get_Node_allocator(); - if (!_Alloc_traits::_S_always_equal() - && __this_alloc != __that_alloc) - { - - - clear(); - std::__alloc_on_copy(__this_alloc, __that_alloc); - } - } - - - _Reuse_or_alloc_node __roan(*this); - _M_impl._M_reset(); - _M_impl._M_key_compare = __x._M_impl._M_key_compare; - if (__x._M_root() != 0) - _M_root() = _M_copy(__x, __roan); - } - - return *this; - } - - template - - template - - - - typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_insert_(_Base_ptr __x, _Base_ptr __p, - - _Arg&& __v, - - - - _NodeGen& __node_gen) - { - bool __insert_left = (__x != 0 || __p == _M_end() - || _M_impl._M_key_compare(_KeyOfValue()(__v), - _S_key(__p))); - - _Link_type __z = __node_gen(std::forward<_Arg>(__v)); - - _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, - this->_M_impl._M_header); - ++_M_impl._M_node_count; - return iterator(__z); - } - - template - - template - - typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - - _M_insert_lower(_Base_ptr __p, _Arg&& __v) - - - - { - bool __insert_left = (__p == _M_end() - || !_M_impl._M_key_compare(_S_key(__p), - _KeyOfValue()(__v))); - - _Link_type __z = _M_create_node(std::forward<_Arg>(__v)); - - _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, - this->_M_impl._M_header); - ++_M_impl._M_node_count; - return iterator(__z); - } - - template - - template - - typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - - _M_insert_equal_lower(_Arg&& __v) - - - - { - _Link_type __x = _M_begin(); - _Base_ptr __y = _M_end(); - while (__x != 0) - { - __y = __x; - __x = !_M_impl._M_key_compare(_S_key(__x), _KeyOfValue()(__v)) ? - _S_left(__x) : _S_right(__x); - } - return _M_insert_lower(__y, std::forward<_Arg>(__v)); - } - - template - template - typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type - _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: - _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen& __node_gen) - { - - _Link_type __top = _M_clone_node(__x, __node_gen); - __top->_M_parent = __p; - - try - { - if (__x->_M_right) - __top->_M_right = _M_copy(_S_right(__x), __top, __node_gen); - __p = __top; - __x = _S_left(__x); - - while (__x != 0) - { - _Link_type __y = _M_clone_node(__x, __node_gen); - __p->_M_left = __y; - __y->_M_parent = __p; - if (__x->_M_right) - __y->_M_right = _M_copy(_S_right(__x), __y, __node_gen); - __p = __y; - __x = _S_left(__x); - } - } - catch(...) - { - _M_erase(__top); - throw; - } - return __top; - } - - template - void - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_erase(_Link_type __x) - { - - while (__x != 0) - { - _M_erase(_S_right(__x)); - _Link_type __y = _S_left(__x); - _M_drop_node(__x); - __x = __y; - } - } - - template - typename _Rb_tree<_Key, _Val, _KeyOfValue, - _Compare, _Alloc>::iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_lower_bound(_Link_type __x, _Base_ptr __y, - const _Key& __k) - { - while (__x != 0) - if (!_M_impl._M_key_compare(_S_key(__x), __k)) - __y = __x, __x = _S_left(__x); - else - __x = _S_right(__x); - return iterator(__y); - } - - template - typename _Rb_tree<_Key, _Val, _KeyOfValue, - _Compare, _Alloc>::const_iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, - const _Key& __k) const - { - while (__x != 0) - if (!_M_impl._M_key_compare(_S_key(__x), __k)) - __y = __x, __x = _S_left(__x); - else - __x = _S_right(__x); - return const_iterator(__y); - } - - template - typename _Rb_tree<_Key, _Val, _KeyOfValue, - _Compare, _Alloc>::iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_upper_bound(_Link_type __x, _Base_ptr __y, - const _Key& __k) - { - while (__x != 0) - if (_M_impl._M_key_compare(__k, _S_key(__x))) - __y = __x, __x = _S_left(__x); - else - __x = _S_right(__x); - return iterator(__y); - } - - template - typename _Rb_tree<_Key, _Val, _KeyOfValue, - _Compare, _Alloc>::const_iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, - const _Key& __k) const - { - while (__x != 0) - if (_M_impl._M_key_compare(__k, _S_key(__x))) - __y = __x, __x = _S_left(__x); - else - __x = _S_right(__x); - return const_iterator(__y); - } - - template - pair::iterator, - typename _Rb_tree<_Key, _Val, _KeyOfValue, - _Compare, _Alloc>::iterator> - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - equal_range(const _Key& __k) - { - _Link_type __x = _M_begin(); - _Base_ptr __y = _M_end(); - while (__x != 0) - { - if (_M_impl._M_key_compare(_S_key(__x), __k)) - __x = _S_right(__x); - else if (_M_impl._M_key_compare(__k, _S_key(__x))) - __y = __x, __x = _S_left(__x); - else - { - _Link_type __xu(__x); - _Base_ptr __yu(__y); - __y = __x, __x = _S_left(__x); - __xu = _S_right(__xu); - return pair(_M_lower_bound(__x, __y, __k), - _M_upper_bound(__xu, __yu, __k)); - } - } - return pair(iterator(__y), - iterator(__y)); - } - - template - pair::const_iterator, - typename _Rb_tree<_Key, _Val, _KeyOfValue, - _Compare, _Alloc>::const_iterator> - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - equal_range(const _Key& __k) const - { - _Const_Link_type __x = _M_begin(); - _Const_Base_ptr __y = _M_end(); - while (__x != 0) - { - if (_M_impl._M_key_compare(_S_key(__x), __k)) - __x = _S_right(__x); - else if (_M_impl._M_key_compare(__k, _S_key(__x))) - __y = __x, __x = _S_left(__x); - else - { - _Const_Link_type __xu(__x); - _Const_Base_ptr __yu(__y); - __y = __x, __x = _S_left(__x); - __xu = _S_right(__xu); - return pair(_M_lower_bound(__x, __y, __k), - _M_upper_bound(__xu, __yu, __k)); - } - } - return pair(const_iterator(__y), - const_iterator(__y)); - } - - template - void - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - swap(_Rb_tree& __t) - noexcept(__is_nothrow_swappable<_Compare>::value) - { - if (_M_root() == 0) - { - if (__t._M_root() != 0) - _M_impl._M_move_data(__t._M_impl); - } - else if (__t._M_root() == 0) - __t._M_impl._M_move_data(_M_impl); - else - { - std::swap(_M_root(),__t._M_root()); - std::swap(_M_leftmost(),__t._M_leftmost()); - std::swap(_M_rightmost(),__t._M_rightmost()); - - _M_root()->_M_parent = _M_end(); - __t._M_root()->_M_parent = __t._M_end(); - std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count); - } - - std::swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare); - - _Alloc_traits::_S_on_swap(_M_get_Node_allocator(), - __t._M_get_Node_allocator()); - } - - template - pair::_Base_ptr, - typename _Rb_tree<_Key, _Val, _KeyOfValue, - _Compare, _Alloc>::_Base_ptr> - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_get_insert_unique_pos(const key_type& __k) - { - typedef pair<_Base_ptr, _Base_ptr> _Res; - _Link_type __x = _M_begin(); - _Base_ptr __y = _M_end(); - bool __comp = true; - while (__x != 0) - { - __y = __x; - __comp = _M_impl._M_key_compare(__k, _S_key(__x)); - __x = __comp ? _S_left(__x) : _S_right(__x); - } - iterator __j = iterator(__y); - if (__comp) - { - if (__j == begin()) - return _Res(__x, __y); - else - --__j; - } - if (_M_impl._M_key_compare(_S_key(__j._M_node), __k)) - return _Res(__x, __y); - return _Res(__j._M_node, 0); - } - - template - pair::_Base_ptr, - typename _Rb_tree<_Key, _Val, _KeyOfValue, - _Compare, _Alloc>::_Base_ptr> - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_get_insert_equal_pos(const key_type& __k) - { - typedef pair<_Base_ptr, _Base_ptr> _Res; - _Link_type __x = _M_begin(); - _Base_ptr __y = _M_end(); - while (__x != 0) - { - __y = __x; - __x = _M_impl._M_key_compare(__k, _S_key(__x)) ? - _S_left(__x) : _S_right(__x); - } - return _Res(__x, __y); - } - - template - - template - - pair::iterator, bool> - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - - _M_insert_unique(_Arg&& __v) - - - - { - typedef pair _Res; - pair<_Base_ptr, _Base_ptr> __res - = _M_get_insert_unique_pos(_KeyOfValue()(__v)); - - if (__res.second) - { - _Alloc_node __an(*this); - return _Res(_M_insert_(__res.first, __res.second, - std::forward<_Arg>(__v), __an), - true); - } - - return _Res(iterator(__res.first), false); - } - - template - - template - - typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - - _M_insert_equal(_Arg&& __v) - - - - { - pair<_Base_ptr, _Base_ptr> __res - = _M_get_insert_equal_pos(_KeyOfValue()(__v)); - _Alloc_node __an(*this); - return _M_insert_(__res.first, __res.second, - std::forward<_Arg>(__v), __an); - } - - template - pair::_Base_ptr, - typename _Rb_tree<_Key, _Val, _KeyOfValue, - _Compare, _Alloc>::_Base_ptr> - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_get_insert_hint_unique_pos(const_iterator __position, - const key_type& __k) - { - iterator __pos = __position._M_const_cast(); - typedef pair<_Base_ptr, _Base_ptr> _Res; - - - if (__pos._M_node == _M_end()) - { - if (size() > 0 - && _M_impl._M_key_compare(_S_key(_M_rightmost()), __k)) - return _Res(0, _M_rightmost()); - else - return _M_get_insert_unique_pos(__k); - } - else if (_M_impl._M_key_compare(__k, _S_key(__pos._M_node))) - { - - iterator __before = __pos; - if (__pos._M_node == _M_leftmost()) - return _Res(_M_leftmost(), _M_leftmost()); - else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), __k)) - { - if (_S_right(__before._M_node) == 0) - return _Res(0, __before._M_node); - else - return _Res(__pos._M_node, __pos._M_node); - } - else - return _M_get_insert_unique_pos(__k); - } - else if (_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) - { - - iterator __after = __pos; - if (__pos._M_node == _M_rightmost()) - return _Res(0, _M_rightmost()); - else if (_M_impl._M_key_compare(__k, _S_key((++__after)._M_node))) - { - if (_S_right(__pos._M_node) == 0) - return _Res(0, __pos._M_node); - else - return _Res(__after._M_node, __after._M_node); - } - else - return _M_get_insert_unique_pos(__k); - } - else - - return _Res(__pos._M_node, 0); - } - - template - - template - - - - typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_insert_unique_(const_iterator __position, - - _Arg&& __v, - - - - _NodeGen& __node_gen) - { - pair<_Base_ptr, _Base_ptr> __res - = _M_get_insert_hint_unique_pos(__position, _KeyOfValue()(__v)); - - if (__res.second) - return _M_insert_(__res.first, __res.second, - std::forward<_Arg>(__v), - __node_gen); - return iterator(__res.first); - } - - template - pair::_Base_ptr, - typename _Rb_tree<_Key, _Val, _KeyOfValue, - _Compare, _Alloc>::_Base_ptr> - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_get_insert_hint_equal_pos(const_iterator __position, const key_type& __k) - { - iterator __pos = __position._M_const_cast(); - typedef pair<_Base_ptr, _Base_ptr> _Res; - - - if (__pos._M_node == _M_end()) - { - if (size() > 0 - && !_M_impl._M_key_compare(__k, _S_key(_M_rightmost()))) - return _Res(0, _M_rightmost()); - else - return _M_get_insert_equal_pos(__k); - } - else if (!_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) - { - - iterator __before = __pos; - if (__pos._M_node == _M_leftmost()) - return _Res(_M_leftmost(), _M_leftmost()); - else if (!_M_impl._M_key_compare(__k, _S_key((--__before)._M_node))) - { - if (_S_right(__before._M_node) == 0) - return _Res(0, __before._M_node); - else - return _Res(__pos._M_node, __pos._M_node); - } - else - return _M_get_insert_equal_pos(__k); - } - else - { - - iterator __after = __pos; - if (__pos._M_node == _M_rightmost()) - return _Res(0, _M_rightmost()); - else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node), __k)) - { - if (_S_right(__pos._M_node) == 0) - return _Res(0, __pos._M_node); - else - return _Res(__after._M_node, __after._M_node); - } - else - return _Res(0, 0); - } - } - - template - - template - - - - typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_insert_equal_(const_iterator __position, - - _Arg&& __v, - - - - _NodeGen& __node_gen) - { - pair<_Base_ptr, _Base_ptr> __res - = _M_get_insert_hint_equal_pos(__position, _KeyOfValue()(__v)); - - if (__res.second) - return _M_insert_(__res.first, __res.second, - std::forward<_Arg>(__v), - __node_gen); - - return _M_insert_equal_lower(std::forward<_Arg>(__v)); - } - - - template - typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_insert_node(_Base_ptr __x, _Base_ptr __p, _Link_type __z) - { - bool __insert_left = (__x != 0 || __p == _M_end() - || _M_impl._M_key_compare(_S_key(__z), - _S_key(__p))); - - _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, - this->_M_impl._M_header); - ++_M_impl._M_node_count; - return iterator(__z); - } - - template - typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_insert_lower_node(_Base_ptr __p, _Link_type __z) - { - bool __insert_left = (__p == _M_end() - || !_M_impl._M_key_compare(_S_key(__p), - _S_key(__z))); - - _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, - this->_M_impl._M_header); - ++_M_impl._M_node_count; - return iterator(__z); - } - - template - typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_insert_equal_lower_node(_Link_type __z) - { - _Link_type __x = _M_begin(); - _Base_ptr __y = _M_end(); - while (__x != 0) - { - __y = __x; - __x = !_M_impl._M_key_compare(_S_key(__x), _S_key(__z)) ? - _S_left(__x) : _S_right(__x); - } - return _M_insert_lower_node(__y, __z); - } - - template - template - pair::iterator, bool> - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_emplace_unique(_Args&&... __args) - { - _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); - - try - { - typedef pair _Res; - auto __res = _M_get_insert_unique_pos(_S_key(__z)); - if (__res.second) - return _Res(_M_insert_node(__res.first, __res.second, __z), true); - - _M_drop_node(__z); - return _Res(iterator(__res.first), false); - } - catch(...) - { - _M_drop_node(__z); - throw; - } - } - - template - template - typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_emplace_equal(_Args&&... __args) - { - _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); - - try - { - auto __res = _M_get_insert_equal_pos(_S_key(__z)); - return _M_insert_node(__res.first, __res.second, __z); - } - catch(...) - { - _M_drop_node(__z); - throw; - } - } - - template - template - typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args) - { - _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); - - try - { - auto __res = _M_get_insert_hint_unique_pos(__pos, _S_key(__z)); - - if (__res.second) - return _M_insert_node(__res.first, __res.second, __z); - - _M_drop_node(__z); - return iterator(__res.first); - } - catch(...) - { - _M_drop_node(__z); - throw; - } - } - - template - template - typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args) - { - _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); - - try - { - auto __res = _M_get_insert_hint_equal_pos(__pos, _S_key(__z)); - - if (__res.second) - return _M_insert_node(__res.first, __res.second, __z); - - return _M_insert_equal_lower_node(__z); - } - catch(...) - { - _M_drop_node(__z); - throw; - } - } - - - - template - void - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_erase_aux(const_iterator __position) - { - _Link_type __y = - static_cast<_Link_type>(_Rb_tree_rebalance_for_erase - (const_cast<_Base_ptr>(__position._M_node), - this->_M_impl._M_header)); - _M_drop_node(__y); - --_M_impl._M_node_count; - } - - template - void - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - _M_erase_aux(const_iterator __first, const_iterator __last) - { - if (__first == begin() && __last == end()) - clear(); - else - while (__first != __last) - _M_erase_aux(__first++); - } - - template - typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - erase(const _Key& __x) - { - pair __p = equal_range(__x); - const size_type __old_size = size(); - _M_erase_aux(__p.first, __p.second); - return __old_size - size(); - } - - template - typename _Rb_tree<_Key, _Val, _KeyOfValue, - _Compare, _Alloc>::iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - find(const _Key& __k) - { - iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); - return (__j == end() - || _M_impl._M_key_compare(__k, - _S_key(__j._M_node))) ? end() : __j; - } - - template - typename _Rb_tree<_Key, _Val, _KeyOfValue, - _Compare, _Alloc>::const_iterator - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - find(const _Key& __k) const - { - const_iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); - return (__j == end() - || _M_impl._M_key_compare(__k, - _S_key(__j._M_node))) ? end() : __j; - } - - template - typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: - count(const _Key& __k) const - { - pair __p = equal_range(__k); - const size_type __n = std::distance(__p.first, __p.second); - return __n; - } - - __attribute__ ((__pure__)) unsigned int - _Rb_tree_black_count(const _Rb_tree_node_base* __node, - const _Rb_tree_node_base* __root) throw (); - - template - bool - _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const - { - if (_M_impl._M_node_count == 0 || begin() == end()) - return _M_impl._M_node_count == 0 && begin() == end() - && this->_M_impl._M_header._M_left == _M_end() - && this->_M_impl._M_header._M_right == _M_end(); - - unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root()); - for (const_iterator __it = begin(); __it != end(); ++__it) - { - _Const_Link_type __x = static_cast<_Const_Link_type>(__it._M_node); - _Const_Link_type __L = _S_left(__x); - _Const_Link_type __R = _S_right(__x); - - if (__x->_M_color == _S_red) - if ((__L && __L->_M_color == _S_red) - || (__R && __R->_M_color == _S_red)) - return false; - - if (__L && _M_impl._M_key_compare(_S_key(__x), _S_key(__L))) - return false; - if (__R && _M_impl._M_key_compare(_S_key(__R), _S_key(__x))) - return false; - - if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len) - return false; - } - - if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root())) - return false; - if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root())) - return false; - return true; - } -# 2641 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tree.h" 3 - -} -# 61 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/set" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 1 3 -# 64 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - template - class multiset; -# 92 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - template, - typename _Alloc = std::allocator<_Key> > - class set - { -# 108 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - static_assert(is_same::type, _Key>::value, - "std::set must have a non-const, non-volatile value_type"); - - - - - - - public: - - - - typedef _Key key_type; - typedef _Key value_type; - typedef _Compare key_compare; - typedef _Compare value_compare; - typedef _Alloc allocator_type; - - - private: - typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template - rebind<_Key>::other _Key_alloc_type; - - typedef _Rb_tree, - key_compare, _Key_alloc_type> _Rep_type; - _Rep_type _M_t; - - typedef __gnu_cxx::__alloc_traits<_Key_alloc_type> _Alloc_traits; - - public: - - - typedef typename _Alloc_traits::pointer pointer; - typedef typename _Alloc_traits::const_pointer const_pointer; - typedef typename _Alloc_traits::reference reference; - typedef typename _Alloc_traits::const_reference const_reference; - - - - typedef typename _Rep_type::const_iterator iterator; - typedef typename _Rep_type::const_iterator const_iterator; - typedef typename _Rep_type::const_reverse_iterator reverse_iterator; - typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; - typedef typename _Rep_type::size_type size_type; - typedef typename _Rep_type::difference_type difference_type; -# 167 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - set() = default; - - - - - - - - explicit - set(const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, _Key_alloc_type(__a)) { } -# 190 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - template - set(_InputIterator __first, _InputIterator __last) - : _M_t() - { _M_t._M_insert_range_unique(__first, __last); } -# 207 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - template - set(_InputIterator __first, _InputIterator __last, - const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, _Key_alloc_type(__a)) - { _M_t._M_insert_range_unique(__first, __last); } -# 223 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - set(const set&) = default; - - - - - - - - set(set&&) = default; -# 243 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - set(initializer_list __l, - const _Compare& __comp = _Compare(), - const allocator_type& __a = allocator_type()) - : _M_t(__comp, _Key_alloc_type(__a)) - { _M_t._M_insert_range_unique(__l.begin(), __l.end()); } - - - explicit - set(const allocator_type& __a) - : _M_t(_Key_alloc_type(__a)) { } - - - set(const set& __x, const allocator_type& __a) - : _M_t(__x._M_t, _Key_alloc_type(__a)) { } - - - set(set&& __x, const allocator_type& __a) - noexcept(is_nothrow_copy_constructible<_Compare>::value - && _Alloc_traits::_S_always_equal()) - : _M_t(std::move(__x._M_t), _Key_alloc_type(__a)) { } - - - set(initializer_list __l, const allocator_type& __a) - : _M_t(_Key_alloc_type(__a)) - { _M_t._M_insert_range_unique(__l.begin(), __l.end()); } - - - template - set(_InputIterator __first, _InputIterator __last, - const allocator_type& __a) - : _M_t(_Key_alloc_type(__a)) - { _M_t._M_insert_range_unique(__first, __last); } - - - - - - - ~set() = default; -# 297 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - set& - operator=(const set&) = default; - - - set& - operator=(set&&) = default; -# 315 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - set& - operator=(initializer_list __l) - { - _M_t._M_assign_unique(__l.begin(), __l.end()); - return *this; - } - - - - - - key_compare - key_comp() const - { return _M_t.key_comp(); } - - value_compare - value_comp() const - { return _M_t.key_comp(); } - - allocator_type - get_allocator() const noexcept - { return allocator_type(_M_t.get_allocator()); } - - - - - - - iterator - begin() const noexcept - { return _M_t.begin(); } - - - - - - - iterator - end() const noexcept - { return _M_t.end(); } - - - - - - - reverse_iterator - rbegin() const noexcept - { return _M_t.rbegin(); } - - - - - - - reverse_iterator - rend() const noexcept - { return _M_t.rend(); } - - - - - - - - iterator - cbegin() const noexcept - { return _M_t.begin(); } - - - - - - - iterator - cend() const noexcept - { return _M_t.end(); } - - - - - - - reverse_iterator - crbegin() const noexcept - { return _M_t.rbegin(); } - - - - - - - reverse_iterator - crend() const noexcept - { return _M_t.rend(); } - - - - bool - empty() const noexcept - { return _M_t.empty(); } - - - size_type - size() const noexcept - { return _M_t.size(); } - - - size_type - max_size() const noexcept - { return _M_t.max_size(); } -# 440 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - void - swap(set& __x) - noexcept(__is_nothrow_swappable<_Compare>::value) - { _M_t.swap(__x._M_t); } -# 460 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - template - std::pair - emplace(_Args&&... __args) - { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); } -# 486 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - template - iterator - emplace_hint(const_iterator __pos, _Args&&... __args) - { - return _M_t._M_emplace_hint_unique(__pos, - std::forward<_Args>(__args)...); - } -# 508 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - std::pair - insert(const value_type& __x) - { - std::pair __p = - _M_t._M_insert_unique(__x); - return std::pair(__p.first, __p.second); - } - - - std::pair - insert(value_type&& __x) - { - std::pair __p = - _M_t._M_insert_unique(std::move(__x)); - return std::pair(__p.first, __p.second); - } -# 545 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - iterator - insert(const_iterator __position, const value_type& __x) - { return _M_t._M_insert_unique_(__position, __x); } - - - iterator - insert(const_iterator __position, value_type&& __x) - { return _M_t._M_insert_unique_(__position, std::move(__x)); } -# 564 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - template - void - insert(_InputIterator __first, _InputIterator __last) - { _M_t._M_insert_range_unique(__first, __last); } -# 577 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - void - insert(initializer_list __l) - { this->insert(__l.begin(), __l.end()); } -# 652 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - __attribute ((__abi_tag__ ("cxx11"))) - iterator - erase(const_iterator __position) - { return _M_t.erase(__position); } -# 683 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - size_type - erase(const key_type& __x) - { return _M_t.erase(__x); } -# 704 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - __attribute ((__abi_tag__ ("cxx11"))) - iterator - erase(const_iterator __first, const_iterator __last) - { return _M_t.erase(__first, __last); } -# 732 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - void - clear() noexcept - { _M_t.clear(); } -# 747 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - size_type - count(const key_type& __x) const - { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } - - - template - auto - count(const _Kt& __x) const - -> decltype(_M_t._M_count_tr(__x)) - { return _M_t._M_count_tr(__x); } -# 793 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - iterator - find(const key_type& __x) - { return _M_t.find(__x); } - - const_iterator - find(const key_type& __x) const - { return _M_t.find(__x); } - - - template - auto - find(const _Kt& __x) - -> decltype(iterator{_M_t._M_find_tr(__x)}) - { return iterator{_M_t._M_find_tr(__x)}; } - - template - auto - find(const _Kt& __x) const - -> decltype(const_iterator{_M_t._M_find_tr(__x)}) - { return const_iterator{_M_t._M_find_tr(__x)}; } -# 828 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - iterator - lower_bound(const key_type& __x) - { return _M_t.lower_bound(__x); } - - const_iterator - lower_bound(const key_type& __x) const - { return _M_t.lower_bound(__x); } - - - template - auto - lower_bound(const _Kt& __x) - -> decltype(iterator(_M_t._M_lower_bound_tr(__x))) - { return iterator(_M_t._M_lower_bound_tr(__x)); } - - template - auto - lower_bound(const _Kt& __x) const - -> decltype(const_iterator(_M_t._M_lower_bound_tr(__x))) - { return const_iterator(_M_t._M_lower_bound_tr(__x)); } -# 858 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - iterator - upper_bound(const key_type& __x) - { return _M_t.upper_bound(__x); } - - const_iterator - upper_bound(const key_type& __x) const - { return _M_t.upper_bound(__x); } - - - template - auto - upper_bound(const _Kt& __x) - -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) - { return iterator(_M_t._M_upper_bound_tr(__x)); } - - template - auto - upper_bound(const _Kt& __x) const - -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) - { return const_iterator(_M_t._M_upper_bound_tr(__x)); } -# 897 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - std::pair - equal_range(const key_type& __x) - { return _M_t.equal_range(__x); } - - std::pair - equal_range(const key_type& __x) const - { return _M_t.equal_range(__x); } - - - template - auto - equal_range(const _Kt& __x) - -> decltype(pair(_M_t._M_equal_range_tr(__x))) - { return pair(_M_t._M_equal_range_tr(__x)); } - - template - auto - equal_range(const _Kt& __x) const - -> decltype(pair(_M_t._M_equal_range_tr(__x))) - { return pair(_M_t._M_equal_range_tr(__x)); } - - - - template - friend bool - operator==(const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&); - - - - - - - template - friend bool - operator<(const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&); - - }; -# 983 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - template - inline bool - operator==(const set<_Key, _Compare, _Alloc>& __x, - const set<_Key, _Compare, _Alloc>& __y) - { return __x._M_t == __y._M_t; } -# 1021 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - template - inline bool - operator<(const set<_Key, _Compare, _Alloc>& __x, - const set<_Key, _Compare, _Alloc>& __y) - { return __x._M_t < __y._M_t; } - - - template - inline bool - operator!=(const set<_Key, _Compare, _Alloc>& __x, - const set<_Key, _Compare, _Alloc>& __y) - { return !(__x == __y); } - - - template - inline bool - operator>(const set<_Key, _Compare, _Alloc>& __x, - const set<_Key, _Compare, _Alloc>& __y) - { return __y < __x; } - - - template - inline bool - operator<=(const set<_Key, _Compare, _Alloc>& __x, - const set<_Key, _Compare, _Alloc>& __y) - { return !(__y < __x); } - - - template - inline bool - operator>=(const set<_Key, _Compare, _Alloc>& __x, - const set<_Key, _Compare, _Alloc>& __y) - { return !(__x < __y); } - - - - template - inline void - swap(set<_Key, _Compare, _Alloc>& __x, set<_Key, _Compare, _Alloc>& __y) - noexcept(noexcept(__x.swap(__y))) - { __x.swap(__y); } - - -# 1084 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_set.h" 3 - -} -# 62 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/set" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 1 3 -# 64 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - template - class set; -# 94 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - template , - typename _Alloc = std::allocator<_Key> > - class multiset - { -# 110 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - static_assert(is_same::type, _Key>::value, - "std::multiset must have a non-const, non-volatile value_type"); - - - - - - - public: - - typedef _Key key_type; - typedef _Key value_type; - typedef _Compare key_compare; - typedef _Compare value_compare; - typedef _Alloc allocator_type; - - private: - - typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template - rebind<_Key>::other _Key_alloc_type; - - typedef _Rb_tree, - key_compare, _Key_alloc_type> _Rep_type; - - _Rep_type _M_t; - - typedef __gnu_cxx::__alloc_traits<_Key_alloc_type> _Alloc_traits; - - public: - typedef typename _Alloc_traits::pointer pointer; - typedef typename _Alloc_traits::const_pointer const_pointer; - typedef typename _Alloc_traits::reference reference; - typedef typename _Alloc_traits::const_reference const_reference; - - - - typedef typename _Rep_type::const_iterator iterator; - typedef typename _Rep_type::const_iterator const_iterator; - typedef typename _Rep_type::const_reverse_iterator reverse_iterator; - typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; - typedef typename _Rep_type::size_type size_type; - typedef typename _Rep_type::difference_type difference_type; -# 164 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - multiset() = default; - - - - - - - - explicit - multiset(const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, _Key_alloc_type(__a)) { } -# 186 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - template - multiset(_InputIterator __first, _InputIterator __last) - : _M_t() - { _M_t._M_insert_range_equal(__first, __last); } -# 202 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - template - multiset(_InputIterator __first, _InputIterator __last, - const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, _Key_alloc_type(__a)) - { _M_t._M_insert_range_equal(__first, __last); } -# 218 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - multiset(const multiset&) = default; -# 227 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - multiset(multiset&&) = default; -# 239 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - multiset(initializer_list __l, - const _Compare& __comp = _Compare(), - const allocator_type& __a = allocator_type()) - : _M_t(__comp, _Key_alloc_type(__a)) - { _M_t._M_insert_range_equal(__l.begin(), __l.end()); } - - - explicit - multiset(const allocator_type& __a) - : _M_t(_Key_alloc_type(__a)) { } - - - multiset(const multiset& __m, const allocator_type& __a) - : _M_t(__m._M_t, _Key_alloc_type(__a)) { } - - - multiset(multiset&& __m, const allocator_type& __a) - noexcept(is_nothrow_copy_constructible<_Compare>::value - && _Alloc_traits::_S_always_equal()) - : _M_t(std::move(__m._M_t), _Key_alloc_type(__a)) { } - - - multiset(initializer_list __l, const allocator_type& __a) - : _M_t(_Key_alloc_type(__a)) - { _M_t._M_insert_range_equal(__l.begin(), __l.end()); } - - - template - multiset(_InputIterator __first, _InputIterator __last, - const allocator_type& __a) - : _M_t(_Key_alloc_type(__a)) - { _M_t._M_insert_range_equal(__first, __last); } - - - - - - - ~multiset() = default; -# 293 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - multiset& - operator=(const multiset&) = default; - - - multiset& - operator=(multiset&&) = default; -# 311 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - multiset& - operator=(initializer_list __l) - { - _M_t._M_assign_equal(__l.begin(), __l.end()); - return *this; - } - - - - - - key_compare - key_comp() const - { return _M_t.key_comp(); } - - value_compare - value_comp() const - { return _M_t.key_comp(); } - - allocator_type - get_allocator() const noexcept - { return allocator_type(_M_t.get_allocator()); } - - - - - - - iterator - begin() const noexcept - { return _M_t.begin(); } - - - - - - - iterator - end() const noexcept - { return _M_t.end(); } - - - - - - - reverse_iterator - rbegin() const noexcept - { return _M_t.rbegin(); } - - - - - - - reverse_iterator - rend() const noexcept - { return _M_t.rend(); } - - - - - - - - iterator - cbegin() const noexcept - { return _M_t.begin(); } - - - - - - - iterator - cend() const noexcept - { return _M_t.end(); } - - - - - - - reverse_iterator - crbegin() const noexcept - { return _M_t.rbegin(); } - - - - - - - reverse_iterator - crend() const noexcept - { return _M_t.rend(); } - - - - bool - empty() const noexcept - { return _M_t.empty(); } - - - size_type - size() const noexcept - { return _M_t.size(); } - - - size_type - max_size() const noexcept - { return _M_t.max_size(); } -# 436 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - void - swap(multiset& __x) - noexcept(__is_nothrow_swappable<_Compare>::value) - { _M_t.swap(__x._M_t); } -# 455 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - template - iterator - emplace(_Args&&... __args) - { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } -# 481 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - template - iterator - emplace_hint(const_iterator __pos, _Args&&... __args) - { - return _M_t._M_emplace_hint_equal(__pos, - std::forward<_Args>(__args)...); - } -# 501 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - iterator - insert(const value_type& __x) - { return _M_t._M_insert_equal(__x); } - - - iterator - insert(value_type&& __x) - { return _M_t._M_insert_equal(std::move(__x)); } -# 531 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - iterator - insert(const_iterator __position, const value_type& __x) - { return _M_t._M_insert_equal_(__position, __x); } - - - iterator - insert(const_iterator __position, value_type&& __x) - { return _M_t._M_insert_equal_(__position, std::move(__x)); } -# 549 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - template - void - insert(_InputIterator __first, _InputIterator __last) - { _M_t._M_insert_range_equal(__first, __last); } -# 562 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - void - insert(initializer_list __l) - { this->insert(__l.begin(), __l.end()); } -# 637 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - __attribute ((__abi_tag__ ("cxx11"))) - iterator - erase(const_iterator __position) - { return _M_t.erase(__position); } -# 668 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - size_type - erase(const key_type& __x) - { return _M_t.erase(__x); } -# 689 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - __attribute ((__abi_tag__ ("cxx11"))) - iterator - erase(const_iterator __first, const_iterator __last) - { return _M_t.erase(__first, __last); } -# 717 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - void - clear() noexcept - { _M_t.clear(); } -# 729 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - size_type - count(const key_type& __x) const - { return _M_t.count(__x); } - - - template - auto - count(const _Kt& __x) const -> decltype(_M_t._M_count_tr(__x)) - { return _M_t._M_count_tr(__x); } -# 774 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - iterator - find(const key_type& __x) - { return _M_t.find(__x); } - - const_iterator - find(const key_type& __x) const - { return _M_t.find(__x); } - - - template - auto - find(const _Kt& __x) - -> decltype(iterator{_M_t._M_find_tr(__x)}) - { return iterator{_M_t._M_find_tr(__x)}; } - - template - auto - find(const _Kt& __x) const - -> decltype(const_iterator{_M_t._M_find_tr(__x)}) - { return const_iterator{_M_t._M_find_tr(__x)}; } -# 809 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - iterator - lower_bound(const key_type& __x) - { return _M_t.lower_bound(__x); } - - const_iterator - lower_bound(const key_type& __x) const - { return _M_t.lower_bound(__x); } - - - template - auto - lower_bound(const _Kt& __x) - -> decltype(iterator(_M_t._M_lower_bound_tr(__x))) - { return iterator(_M_t._M_lower_bound_tr(__x)); } - - template - auto - lower_bound(const _Kt& __x) const - -> decltype(iterator(_M_t._M_lower_bound_tr(__x))) - { return iterator(_M_t._M_lower_bound_tr(__x)); } -# 839 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - iterator - upper_bound(const key_type& __x) - { return _M_t.upper_bound(__x); } - - const_iterator - upper_bound(const key_type& __x) const - { return _M_t.upper_bound(__x); } - - - template - auto - upper_bound(const _Kt& __x) - -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) - { return iterator(_M_t._M_upper_bound_tr(__x)); } - - template - auto - upper_bound(const _Kt& __x) const - -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) - { return iterator(_M_t._M_upper_bound_tr(__x)); } -# 878 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - std::pair - equal_range(const key_type& __x) - { return _M_t.equal_range(__x); } - - std::pair - equal_range(const key_type& __x) const - { return _M_t.equal_range(__x); } - - - template - auto - equal_range(const _Kt& __x) - -> decltype(pair(_M_t._M_equal_range_tr(__x))) - { return pair(_M_t._M_equal_range_tr(__x)); } - - template - auto - equal_range(const _Kt& __x) const - -> decltype(pair(_M_t._M_equal_range_tr(__x))) - { return pair(_M_t._M_equal_range_tr(__x)); } - - - - template - friend bool - operator==(const multiset<_K1, _C1, _A1>&, - const multiset<_K1, _C1, _A1>&); - - - - - - - - template - friend bool - operator< (const multiset<_K1, _C1, _A1>&, - const multiset<_K1, _C1, _A1>&); - - }; -# 969 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - template - inline bool - operator==(const multiset<_Key, _Compare, _Alloc>& __x, - const multiset<_Key, _Compare, _Alloc>& __y) - { return __x._M_t == __y._M_t; } -# 1007 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - template - inline bool - operator<(const multiset<_Key, _Compare, _Alloc>& __x, - const multiset<_Key, _Compare, _Alloc>& __y) - { return __x._M_t < __y._M_t; } - - - template - inline bool - operator!=(const multiset<_Key, _Compare, _Alloc>& __x, - const multiset<_Key, _Compare, _Alloc>& __y) - { return !(__x == __y); } - - - template - inline bool - operator>(const multiset<_Key,_Compare,_Alloc>& __x, - const multiset<_Key,_Compare,_Alloc>& __y) - { return __y < __x; } - - - template - inline bool - operator<=(const multiset<_Key, _Compare, _Alloc>& __x, - const multiset<_Key, _Compare, _Alloc>& __y) - { return !(__y < __x); } - - - template - inline bool - operator>=(const multiset<_Key, _Compare, _Alloc>& __x, - const multiset<_Key, _Compare, _Alloc>& __y) - { return !(__x < __y); } - - - - template - inline void - swap(multiset<_Key, _Compare, _Alloc>& __x, - multiset<_Key, _Compare, _Alloc>& __y) - noexcept(noexcept(__x.swap(__y))) - { __x.swap(__y); } - - -# 1072 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_multiset.h" 3 - -} -# 63 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/set" 2 3 - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/erase_if.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/erase_if.h" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/erase_if.h" 3 - - - -namespace std -{ - - - - - - - namespace __detail - { - template - typename _Container::size_type - __erase_nodes_if(_Container& __cont, _Predicate __pred) - { - typename _Container::size_type __num = 0; - for (auto __iter = __cont.begin(), __last = __cont.end(); - __iter != __last;) - { - if (__pred(*__iter)) - { - __iter = __cont.erase(__iter); - ++__num; - } - else - ++__iter; - } - return __num; - } - } - - -} -# 65 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/set" 2 3 -# 30 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Matrix.hpp" 2 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 1 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdio" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdio" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdio" 3 -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/basic_file.h" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/basic_file.h" 3 - -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/basic_file.h" 3 - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++io.h" 1 3 -# 35 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++io.h" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdio" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdio" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdio" 3 -# 36 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/c++io.h" 2 3 - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - typedef __gthread_mutex_t __c_lock; - - - typedef FILE __c_file; - - -} -# 41 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/basic_file.h" 2 3 - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - template - class __basic_file; - - - template<> - class __basic_file - { - - __c_file* _M_cfile; - - - bool _M_cfile_created; - - public: - __basic_file(__c_lock* __lock = 0) throw (); - - - __basic_file(__basic_file&& __rv, __c_lock* = 0) noexcept - : _M_cfile(__rv._M_cfile), _M_cfile_created(__rv._M_cfile_created) - { - __rv._M_cfile = nullptr; - __rv._M_cfile_created = false; - } - - __basic_file& operator=(const __basic_file&) = delete; - __basic_file& operator=(__basic_file&&) = delete; - - void - swap(__basic_file& __f) noexcept - { - std::swap(_M_cfile, __f._M_cfile); - std::swap(_M_cfile_created, __f._M_cfile_created); - } - - - __basic_file* - open(const char* __name, ios_base::openmode __mode, int __prot = 0664); - - - - - - - __basic_file* - sys_open(__c_file* __file, ios_base::openmode); - - __basic_file* - sys_open(int __fd, ios_base::openmode __mode) throw (); - - __basic_file* - close(); - - __attribute__ ((__pure__)) bool - is_open() const throw (); - - __attribute__ ((__pure__)) int - fd() throw (); - - __attribute__ ((__pure__)) __c_file* - file() throw (); - - ~__basic_file(); - - streamsize - xsputn(const char* __s, streamsize __n); - - streamsize - xsputn_2(const char* __s1, streamsize __n1, - const char* __s2, streamsize __n2); - - streamsize - xsgetn(char* __s, streamsize __n); - - streamoff - seekoff(streamoff __off, ios_base::seekdir __way) throw (); - - int - sync(); - - streamsize - showmanyc(); - }; - - -} -# 43 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 2 3 - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 79 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - template - class basic_filebuf : public basic_streambuf<_CharT, _Traits> - { - - template - using __chk_state = __and_, - is_copy_constructible<_Tp>, - is_default_constructible<_Tp>>; - - static_assert(__chk_state::value, - "state_type must be CopyAssignable, CopyConstructible" - " and DefaultConstructible"); - - static_assert(is_same>::value, - "pos_type must be fpos"); - - public: - - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - typedef basic_streambuf __streambuf_type; - typedef basic_filebuf __filebuf_type; - typedef __basic_file __file_type; - typedef typename traits_type::state_type __state_type; - typedef codecvt __codecvt_type; - - friend class ios_base; - - protected: - - - __c_lock _M_lock; - - - __file_type _M_file; - - - ios_base::openmode _M_mode; - - - __state_type _M_state_beg; - - - - - __state_type _M_state_cur; - - - - __state_type _M_state_last; - - - char_type* _M_buf; - - - - - - - size_t _M_buf_size; - - - bool _M_buf_allocated; -# 155 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - bool _M_reading; - bool _M_writing; - - - - - - - - char_type _M_pback; - char_type* _M_pback_cur_save; - char_type* _M_pback_end_save; - bool _M_pback_init; - - - - const __codecvt_type* _M_codecvt; - - - - - - - char* _M_ext_buf; - - - - - streamsize _M_ext_buf_size; - - - - - - - const char* _M_ext_next; - char* _M_ext_end; - - - - - - - void - _M_create_pback() - { - if (!_M_pback_init) - { - _M_pback_cur_save = this->gptr(); - _M_pback_end_save = this->egptr(); - this->setg(&_M_pback, &_M_pback, &_M_pback + 1); - _M_pback_init = true; - } - } - - - - - - - void - _M_destroy_pback() throw() - { - if (_M_pback_init) - { - - _M_pback_cur_save += this->gptr() != this->eback(); - this->setg(_M_buf, _M_pback_cur_save, _M_pback_end_save); - _M_pback_init = false; - } - } - - public: - - - - - - - - basic_filebuf(); - - - basic_filebuf(const basic_filebuf&) = delete; - basic_filebuf(basic_filebuf&&); - - - - - - virtual - ~basic_filebuf() - { - try - { this->close(); } - catch(...) - { } - } - - - basic_filebuf& operator=(const basic_filebuf&) = delete; - basic_filebuf& operator=(basic_filebuf&&); - void swap(basic_filebuf&); - - - - - - - bool - is_open() const throw() - { return _M_file.is_open(); } -# 309 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - __filebuf_type* - open(const char* __s, ios_base::openmode __mode); -# 330 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - __filebuf_type* - open(const std::string& __s, ios_base::openmode __mode) - { return open(__s.c_str(), __mode); } -# 360 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - __filebuf_type* - close(); - - protected: - void - _M_allocate_internal_buffer(); - - void - _M_destroy_internal_buffer() throw(); - - - virtual streamsize - showmanyc(); - - - - - - - virtual int_type - underflow(); - - virtual int_type - pbackfail(int_type __c = _Traits::eof()); -# 392 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - virtual int_type - overflow(int_type __c = _Traits::eof()); - - - - bool - _M_convert_to_external(char_type*, streamsize); -# 412 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - virtual __streambuf_type* - setbuf(char_type* __s, streamsize __n); - - virtual pos_type - seekoff(off_type __off, ios_base::seekdir __way, - ios_base::openmode __mode = ios_base::in | ios_base::out); - - virtual pos_type - seekpos(pos_type __pos, - ios_base::openmode __mode = ios_base::in | ios_base::out); - - - pos_type - _M_seek(off_type __off, ios_base::seekdir __way, __state_type __state); - - int - _M_get_ext_pos(__state_type &__state); - - virtual int - sync(); - - virtual void - imbue(const locale& __loc); - - virtual streamsize - xsgetn(char_type* __s, streamsize __n); - - virtual streamsize - xsputn(const char_type* __s, streamsize __n); - - - bool - _M_terminate_output(); -# 458 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - void - _M_set_buffer(streamsize __off) - { - const bool __testin = _M_mode & ios_base::in; - const bool __testout = (_M_mode & ios_base::out - || _M_mode & ios_base::app); - - if (__testin && __off > 0) - this->setg(_M_buf, _M_buf, _M_buf + __off); - else - this->setg(_M_buf, _M_buf, _M_buf); - - if (__testout && __off == 0 && _M_buf_size > 1 ) - this->setp(_M_buf, _M_buf + _M_buf_size - 1); - else - this->setp(0, 0); - } - }; -# 491 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - template - class basic_ifstream : public basic_istream<_CharT, _Traits> - { - public: - - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - - typedef basic_filebuf __filebuf_type; - typedef basic_istream __istream_type; - - private: - __filebuf_type _M_filebuf; - - public: -# 518 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - basic_ifstream() : __istream_type(), _M_filebuf() - { this->init(&_M_filebuf); } -# 528 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - explicit - basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in) - : __istream_type(), _M_filebuf() - { - this->init(&_M_filebuf); - this->open(__s, __mode); - } -# 561 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - explicit - basic_ifstream(const std::string& __s, - ios_base::openmode __mode = ios_base::in) - : __istream_type(), _M_filebuf() - { - this->init(&_M_filebuf); - this->open(__s, __mode); - } -# 585 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - basic_ifstream(const basic_ifstream&) = delete; - - basic_ifstream(basic_ifstream&& __rhs) - : __istream_type(std::move(__rhs)), - _M_filebuf(std::move(__rhs._M_filebuf)) - { __istream_type::set_rdbuf(&_M_filebuf); } -# 599 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - ~basic_ifstream() - { } - - - - - basic_ifstream& - operator=(const basic_ifstream&) = delete; - - basic_ifstream& - operator=(basic_ifstream&& __rhs) - { - __istream_type::operator=(std::move(__rhs)); - _M_filebuf = std::move(__rhs._M_filebuf); - return *this; - } - - void - swap(basic_ifstream& __rhs) - { - __istream_type::swap(__rhs); - _M_filebuf.swap(__rhs._M_filebuf); - } -# 631 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - __filebuf_type* - rdbuf() const - { return const_cast<__filebuf_type*>(&_M_filebuf); } - - - - - - bool - is_open() - { return _M_filebuf.is_open(); } - - - - bool - is_open() const - { return _M_filebuf.is_open(); } -# 657 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - void - open(const char* __s, ios_base::openmode __mode = ios_base::in) - { - if (!_M_filebuf.open(__s, __mode | ios_base::in)) - this->setstate(ios_base::failbit); - else - - - this->clear(); - } -# 696 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - void - open(const std::string& __s, ios_base::openmode __mode = ios_base::in) - { - if (!_M_filebuf.open(__s, __mode | ios_base::in)) - this->setstate(ios_base::failbit); - else - - - this->clear(); - } -# 729 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - void - close() - { - if (!_M_filebuf.close()) - this->setstate(ios_base::failbit); - } - }; -# 752 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - template - class basic_ofstream : public basic_ostream<_CharT,_Traits> - { - public: - - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - - typedef basic_filebuf __filebuf_type; - typedef basic_ostream __ostream_type; - - private: - __filebuf_type _M_filebuf; - - public: -# 779 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - basic_ofstream(): __ostream_type(), _M_filebuf() - { this->init(&_M_filebuf); } -# 789 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - explicit - basic_ofstream(const char* __s, - ios_base::openmode __mode = ios_base::out) - : __ostream_type(), _M_filebuf() - { - this->init(&_M_filebuf); - this->open(__s, __mode); - } -# 824 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - explicit - basic_ofstream(const std::string& __s, - ios_base::openmode __mode = ios_base::out) - : __ostream_type(), _M_filebuf() - { - this->init(&_M_filebuf); - this->open(__s, __mode); - } -# 848 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - basic_ofstream(const basic_ofstream&) = delete; - - basic_ofstream(basic_ofstream&& __rhs) - : __ostream_type(std::move(__rhs)), - _M_filebuf(std::move(__rhs._M_filebuf)) - { __ostream_type::set_rdbuf(&_M_filebuf); } -# 862 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - ~basic_ofstream() - { } - - - - - basic_ofstream& - operator=(const basic_ofstream&) = delete; - - basic_ofstream& - operator=(basic_ofstream&& __rhs) - { - __ostream_type::operator=(std::move(__rhs)); - _M_filebuf = std::move(__rhs._M_filebuf); - return *this; - } - - void - swap(basic_ofstream& __rhs) - { - __ostream_type::swap(__rhs); - _M_filebuf.swap(__rhs._M_filebuf); - } -# 894 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - __filebuf_type* - rdbuf() const - { return const_cast<__filebuf_type*>(&_M_filebuf); } - - - - - - bool - is_open() - { return _M_filebuf.is_open(); } - - - - bool - is_open() const - { return _M_filebuf.is_open(); } -# 920 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - void - open(const char* __s, ios_base::openmode __mode = ios_base::out) - { - if (!_M_filebuf.open(__s, __mode | ios_base::out)) - this->setstate(ios_base::failbit); - else - - - this->clear(); - } -# 959 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - void - open(const std::string& __s, ios_base::openmode __mode = ios_base::out) - { - if (!_M_filebuf.open(__s, __mode | ios_base::out)) - this->setstate(ios_base::failbit); - else - - - this->clear(); - } -# 992 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - void - close() - { - if (!_M_filebuf.close()) - this->setstate(ios_base::failbit); - } - }; -# 1015 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - template - class basic_fstream : public basic_iostream<_CharT, _Traits> - { - public: - - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - - typedef basic_filebuf __filebuf_type; - typedef basic_ios __ios_type; - typedef basic_iostream __iostream_type; - - private: - __filebuf_type _M_filebuf; - - public: -# 1043 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - basic_fstream() - : __iostream_type(), _M_filebuf() - { this->init(&_M_filebuf); } - - - - - - - explicit - basic_fstream(const char* __s, - ios_base::openmode __mode = ios_base::in | ios_base::out) - : __iostream_type(0), _M_filebuf() - { - this->init(&_M_filebuf); - this->open(__s, __mode); - } -# 1082 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - explicit - basic_fstream(const std::string& __s, - ios_base::openmode __mode = ios_base::in | ios_base::out) - : __iostream_type(0), _M_filebuf() - { - this->init(&_M_filebuf); - this->open(__s, __mode); - } -# 1104 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - basic_fstream(const basic_fstream&) = delete; - - basic_fstream(basic_fstream&& __rhs) - : __iostream_type(std::move(__rhs)), - _M_filebuf(std::move(__rhs._M_filebuf)) - { __iostream_type::set_rdbuf(&_M_filebuf); } -# 1118 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - ~basic_fstream() - { } - - - - - basic_fstream& - operator=(const basic_fstream&) = delete; - - basic_fstream& - operator=(basic_fstream&& __rhs) - { - __iostream_type::operator=(std::move(__rhs)); - _M_filebuf = std::move(__rhs._M_filebuf); - return *this; - } - - void - swap(basic_fstream& __rhs) - { - __iostream_type::swap(__rhs); - _M_filebuf.swap(__rhs._M_filebuf); - } -# 1150 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - __filebuf_type* - rdbuf() const - { return const_cast<__filebuf_type*>(&_M_filebuf); } - - - - - - bool - is_open() - { return _M_filebuf.is_open(); } - - - - bool - is_open() const - { return _M_filebuf.is_open(); } -# 1176 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - void - open(const char* __s, - ios_base::openmode __mode = ios_base::in | ios_base::out) - { - if (!_M_filebuf.open(__s, __mode)) - this->setstate(ios_base::failbit); - else - - - this->clear(); - } -# 1217 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - void - open(const std::string& __s, - ios_base::openmode __mode = ios_base::in | ios_base::out) - { - if (!_M_filebuf.open(__s, __mode)) - this->setstate(ios_base::failbit); - else - - - this->clear(); - } -# 1252 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 3 - void - close() - { - if (!_M_filebuf.close()) - this->setstate(ios_base::failbit); - } - }; - - - - template - inline void - swap(basic_filebuf<_CharT, _Traits>& __x, - basic_filebuf<_CharT, _Traits>& __y) - { __x.swap(__y); } - - - template - inline void - swap(basic_ifstream<_CharT, _Traits>& __x, - basic_ifstream<_CharT, _Traits>& __y) - { __x.swap(__y); } - - - template - inline void - swap(basic_ofstream<_CharT, _Traits>& __x, - basic_ofstream<_CharT, _Traits>& __y) - { __x.swap(__y); } - - - template - inline void - swap(basic_fstream<_CharT, _Traits>& __x, - basic_fstream<_CharT, _Traits>& __y) - { __x.swap(__y); } - - - -} - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/fstream.tcc" 1 3 -# 37 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/fstream.tcc" 3 - -# 38 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/fstream.tcc" 3 - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cerrno" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cerrno" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cerrno" 3 - - -# 1 "/usr/include/errno.h" 1 3 4 -# 43 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cerrno" 2 3 -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/fstream.tcc" 2 3 - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - template - void - basic_filebuf<_CharT, _Traits>:: - _M_allocate_internal_buffer() - { - - - if (!_M_buf_allocated && !_M_buf) - { - _M_buf = new char_type[_M_buf_size]; - _M_buf_allocated = true; - } - } - - template - void - basic_filebuf<_CharT, _Traits>:: - _M_destroy_internal_buffer() throw() - { - if (_M_buf_allocated) - { - delete [] _M_buf; - _M_buf = 0; - _M_buf_allocated = false; - } - delete [] _M_ext_buf; - _M_ext_buf = 0; - _M_ext_buf_size = 0; - _M_ext_next = 0; - _M_ext_end = 0; - } - - template - basic_filebuf<_CharT, _Traits>:: - basic_filebuf() : __streambuf_type(), _M_lock(), _M_file(&_M_lock), - _M_mode(ios_base::openmode(0)), _M_state_beg(), _M_state_cur(), - _M_state_last(), _M_buf(0), _M_buf_size(8192), - _M_buf_allocated(false), _M_reading(false), _M_writing(false), _M_pback(), - _M_pback_cur_save(0), _M_pback_end_save(0), _M_pback_init(false), - _M_codecvt(0), _M_ext_buf(0), _M_ext_buf_size(0), _M_ext_next(0), - _M_ext_end(0) - { - if (has_facet<__codecvt_type>(this->_M_buf_locale)) - _M_codecvt = &use_facet<__codecvt_type>(this->_M_buf_locale); - } - - - template - basic_filebuf<_CharT, _Traits>:: - basic_filebuf(basic_filebuf&& __rhs) - : __streambuf_type(__rhs), - _M_lock(), _M_file(std::move(__rhs._M_file), &_M_lock), - _M_mode(std::__exchange(__rhs._M_mode, ios_base::openmode(0))), - _M_state_beg(std::move(__rhs._M_state_beg)), - _M_state_cur(std::move(__rhs._M_state_cur)), - _M_state_last(std::move(__rhs._M_state_last)), - _M_buf(std::__exchange(__rhs._M_buf, nullptr)), - _M_buf_size(std::__exchange(__rhs._M_buf_size, 1)), - _M_buf_allocated(std::__exchange(__rhs._M_buf_allocated, false)), - _M_reading(std::__exchange(__rhs._M_reading, false)), - _M_writing(std::__exchange(__rhs._M_writing, false)), - _M_pback(__rhs._M_pback), - _M_pback_cur_save(std::__exchange(__rhs._M_pback_cur_save, nullptr)), - _M_pback_end_save(std::__exchange(__rhs._M_pback_end_save, nullptr)), - _M_pback_init(std::__exchange(__rhs._M_pback_init, false)), - _M_codecvt(__rhs._M_codecvt), - _M_ext_buf(std::__exchange(__rhs._M_ext_buf, nullptr)), - _M_ext_buf_size(std::__exchange(__rhs._M_ext_buf_size, 0)), - _M_ext_next(std::__exchange(__rhs._M_ext_next, nullptr)), - _M_ext_end(std::__exchange(__rhs._M_ext_end, nullptr)) - { - __rhs._M_set_buffer(-1); - __rhs._M_state_last = __rhs._M_state_cur = __rhs._M_state_beg; - } - - template - basic_filebuf<_CharT, _Traits>& - basic_filebuf<_CharT, _Traits>:: - operator=(basic_filebuf&& __rhs) - { - this->close(); - __streambuf_type::operator=(__rhs); - _M_file.swap(__rhs._M_file); - _M_mode = std::__exchange(__rhs._M_mode, ios_base::openmode(0)); - _M_state_beg = std::move(__rhs._M_state_beg); - _M_state_cur = std::move(__rhs._M_state_cur); - _M_state_last = std::move(__rhs._M_state_last); - _M_buf = std::__exchange(__rhs._M_buf, nullptr); - _M_buf_size = std::__exchange(__rhs._M_buf_size, 1); - _M_buf_allocated = std::__exchange(__rhs._M_buf_allocated, false); - _M_ext_buf = std::__exchange(__rhs._M_ext_buf, nullptr); - _M_ext_buf_size = std::__exchange(__rhs._M_ext_buf_size, 0); - _M_ext_next = std::__exchange(__rhs._M_ext_next, nullptr); - _M_ext_end = std::__exchange(__rhs._M_ext_end, nullptr); - _M_reading = std::__exchange(__rhs._M_reading, false); - _M_writing = std::__exchange(__rhs._M_writing, false); - _M_pback_cur_save = std::__exchange(__rhs._M_pback_cur_save, nullptr); - _M_pback_end_save = std::__exchange(__rhs._M_pback_end_save, nullptr); - _M_pback_init = std::__exchange(__rhs._M_pback_init, false); - __rhs._M_set_buffer(-1); - __rhs._M_state_last = __rhs._M_state_cur = __rhs._M_state_beg; - return *this; - } - - template - void - basic_filebuf<_CharT, _Traits>:: - swap(basic_filebuf& __rhs) - { - __streambuf_type::swap(__rhs); - _M_file.swap(__rhs._M_file); - std::swap(_M_mode, __rhs._M_mode); - std::swap(_M_state_beg, __rhs._M_state_beg); - std::swap(_M_state_cur, __rhs._M_state_cur); - std::swap(_M_state_last, __rhs._M_state_last); - std::swap(_M_buf, __rhs._M_buf); - std::swap(_M_buf_size, __rhs._M_buf_size); - std::swap(_M_buf_allocated, __rhs._M_buf_allocated); - std::swap(_M_ext_buf, __rhs._M_ext_buf); - std::swap(_M_ext_buf_size, __rhs._M_ext_buf_size); - std::swap(_M_ext_next, __rhs._M_ext_next); - std::swap(_M_ext_end, __rhs._M_ext_end); - std::swap(_M_reading, __rhs._M_reading); - std::swap(_M_writing, __rhs._M_writing); - std::swap(_M_pback_cur_save, __rhs._M_pback_cur_save); - std::swap(_M_pback_end_save, __rhs._M_pback_end_save); - std::swap(_M_pback_init, __rhs._M_pback_init); - } - - - template - typename basic_filebuf<_CharT, _Traits>::__filebuf_type* - basic_filebuf<_CharT, _Traits>:: - open(const char* __s, ios_base::openmode __mode) - { - __filebuf_type *__ret = 0; - if (!this->is_open()) - { - _M_file.open(__s, __mode); - if (this->is_open()) - { - _M_allocate_internal_buffer(); - _M_mode = __mode; - - - _M_reading = false; - _M_writing = false; - _M_set_buffer(-1); - - - _M_state_last = _M_state_cur = _M_state_beg; - - - if ((__mode & ios_base::ate) - && this->seekoff(0, ios_base::end, __mode) - == pos_type(off_type(-1))) - this->close(); - else - __ret = this; - } - } - return __ret; - } -# 247 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/fstream.tcc" 3 - template - typename basic_filebuf<_CharT, _Traits>::__filebuf_type* - basic_filebuf<_CharT, _Traits>:: - close() - { - if (!this->is_open()) - return 0; - - bool __testfail = false; - { - - struct __close_sentry - { - basic_filebuf *__fb; - __close_sentry (basic_filebuf *__fbi): __fb(__fbi) { } - ~__close_sentry () - { - __fb->_M_mode = ios_base::openmode(0); - __fb->_M_pback_init = false; - __fb->_M_destroy_internal_buffer(); - __fb->_M_reading = false; - __fb->_M_writing = false; - __fb->_M_set_buffer(-1); - __fb->_M_state_last = __fb->_M_state_cur = __fb->_M_state_beg; - } - } __cs (this); - - try - { - if (!_M_terminate_output()) - __testfail = true; - } - catch(...) - { - _M_file.close(); - throw; - } - } - - if (!_M_file.close()) - __testfail = true; - - if (__testfail) - return 0; - else - return this; - } - - template - streamsize - basic_filebuf<_CharT, _Traits>:: - showmanyc() - { - streamsize __ret = -1; - const bool __testin = _M_mode & ios_base::in; - if (__testin && this->is_open()) - { - - - __ret = this->egptr() - this->gptr(); - - - - - - - - if (__check_facet(_M_codecvt).encoding() >= 0) - - __ret += _M_file.showmanyc() / _M_codecvt->max_length(); - } - return __ret; - } - - template - typename basic_filebuf<_CharT, _Traits>::int_type - basic_filebuf<_CharT, _Traits>:: - underflow() - { - int_type __ret = traits_type::eof(); - const bool __testin = _M_mode & ios_base::in; - if (__testin) - { - if (_M_writing) - { - if (overflow() == traits_type::eof()) - return __ret; - _M_set_buffer(-1); - _M_writing = false; - } - - - - _M_destroy_pback(); - - if (this->gptr() < this->egptr()) - return traits_type::to_int_type(*this->gptr()); - - - const size_t __buflen = _M_buf_size > 1 ? _M_buf_size - 1 : 1; - - - bool __got_eof = false; - - streamsize __ilen = 0; - codecvt_base::result __r = codecvt_base::ok; - if (__check_facet(_M_codecvt).always_noconv()) - { - __ilen = _M_file.xsgetn(reinterpret_cast(this->eback()), - __buflen); - if (__ilen == 0) - __got_eof = true; - } - else - { - - - const int __enc = _M_codecvt->encoding(); - streamsize __blen; - streamsize __rlen; - if (__enc > 0) - __blen = __rlen = __buflen * __enc; - else - { - __blen = __buflen + _M_codecvt->max_length() - 1; - __rlen = __buflen; - } - const streamsize __remainder = _M_ext_end - _M_ext_next; - __rlen = __rlen > __remainder ? __rlen - __remainder : 0; - - - - if (_M_reading && this->egptr() == this->eback() && __remainder) - __rlen = 0; - - - - if (_M_ext_buf_size < __blen) - { - char* __buf = new char[__blen]; - if (__remainder) - __builtin_memcpy(__buf, _M_ext_next, __remainder); - - delete [] _M_ext_buf; - _M_ext_buf = __buf; - _M_ext_buf_size = __blen; - } - else if (__remainder) - __builtin_memmove(_M_ext_buf, _M_ext_next, __remainder); - - _M_ext_next = _M_ext_buf; - _M_ext_end = _M_ext_buf + __remainder; - _M_state_last = _M_state_cur; - - do - { - if (__rlen > 0) - { - - - - if (_M_ext_end - _M_ext_buf + __rlen > _M_ext_buf_size) - { - __throw_ios_failure(("basic_filebuf::underflow " "codecvt::max_length() " "is not valid") - - ); - } - streamsize __elen = _M_file.xsgetn(_M_ext_end, __rlen); - if (__elen == 0) - __got_eof = true; - else if (__elen == -1) - break; - _M_ext_end += __elen; - } - - char_type* __iend = this->eback(); - if (_M_ext_next < _M_ext_end) - __r = _M_codecvt->in(_M_state_cur, _M_ext_next, - _M_ext_end, _M_ext_next, - this->eback(), - this->eback() + __buflen, __iend); - if (__r == codecvt_base::noconv) - { - size_t __avail = _M_ext_end - _M_ext_buf; - __ilen = std::min(__avail, __buflen); - traits_type::copy(this->eback(), - reinterpret_cast - (_M_ext_buf), __ilen); - _M_ext_next = _M_ext_buf + __ilen; - } - else - __ilen = __iend - this->eback(); - - - - - if (__r == codecvt_base::error) - break; - - __rlen = 1; - } - while (__ilen == 0 && !__got_eof); - } - - if (__ilen > 0) - { - _M_set_buffer(__ilen); - _M_reading = true; - __ret = traits_type::to_int_type(*this->gptr()); - } - else if (__got_eof) - { - - - - _M_set_buffer(-1); - _M_reading = false; - - - if (__r == codecvt_base::partial) - __throw_ios_failure(("basic_filebuf::underflow " "incomplete character in file") - ); - } - else if (__r == codecvt_base::error) - __throw_ios_failure(("basic_filebuf::underflow " "invalid byte sequence in file") - ); - else - __throw_ios_failure(("basic_filebuf::underflow " "error reading the file") - , (*__errno_location ())); - } - return __ret; - } - - template - typename basic_filebuf<_CharT, _Traits>::int_type - basic_filebuf<_CharT, _Traits>:: - pbackfail(int_type __i) - { - int_type __ret = traits_type::eof(); - const bool __testin = _M_mode & ios_base::in; - if (__testin) - { - if (_M_writing) - { - if (overflow() == traits_type::eof()) - return __ret; - _M_set_buffer(-1); - _M_writing = false; - } - - - const bool __testpb = _M_pback_init; - const bool __testeof = traits_type::eq_int_type(__i, __ret); - int_type __tmp; - if (this->eback() < this->gptr()) - { - this->gbump(-1); - __tmp = traits_type::to_int_type(*this->gptr()); - } - else if (this->seekoff(-1, ios_base::cur) != pos_type(off_type(-1))) - { - __tmp = this->underflow(); - if (traits_type::eq_int_type(__tmp, __ret)) - return __ret; - } - else - { - - - - - - return __ret; - } - - - - if (!__testeof && traits_type::eq_int_type(__i, __tmp)) - __ret = __i; - else if (__testeof) - __ret = traits_type::not_eof(__i); - else if (!__testpb) - { - _M_create_pback(); - _M_reading = true; - *this->gptr() = traits_type::to_char_type(__i); - __ret = __i; - } - } - return __ret; - } - - template - typename basic_filebuf<_CharT, _Traits>::int_type - basic_filebuf<_CharT, _Traits>:: - overflow(int_type __c) - { - int_type __ret = traits_type::eof(); - const bool __testeof = traits_type::eq_int_type(__c, __ret); - const bool __testout = (_M_mode & ios_base::out - || _M_mode & ios_base::app); - if (__testout) - { - if (_M_reading) - { - _M_destroy_pback(); - const int __gptr_off = _M_get_ext_pos(_M_state_last); - if (_M_seek(__gptr_off, ios_base::cur, _M_state_last) - == pos_type(off_type(-1))) - return __ret; - } - if (this->pbase() < this->pptr()) - { - - if (!__testeof) - { - *this->pptr() = traits_type::to_char_type(__c); - this->pbump(1); - } - - - - if (_M_convert_to_external(this->pbase(), - this->pptr() - this->pbase())) - { - _M_set_buffer(0); - __ret = traits_type::not_eof(__c); - } - } - else if (_M_buf_size > 1) - { - - - - _M_set_buffer(0); - _M_writing = true; - if (!__testeof) - { - *this->pptr() = traits_type::to_char_type(__c); - this->pbump(1); - } - __ret = traits_type::not_eof(__c); - } - else - { - - char_type __conv = traits_type::to_char_type(__c); - if (__testeof || _M_convert_to_external(&__conv, 1)) - { - _M_writing = true; - __ret = traits_type::not_eof(__c); - } - } - } - return __ret; - } - - template - bool - basic_filebuf<_CharT, _Traits>:: - _M_convert_to_external(_CharT* __ibuf, streamsize __ilen) - { - - streamsize __elen; - streamsize __plen; - if (__check_facet(_M_codecvt).always_noconv()) - { - __elen = _M_file.xsputn(reinterpret_cast(__ibuf), __ilen); - __plen = __ilen; - } - else - { - - - streamsize __blen = __ilen * _M_codecvt->max_length(); - char* __buf = static_cast(__builtin_alloca(__blen)); - - char* __bend; - const char_type* __iend; - codecvt_base::result __r; - __r = _M_codecvt->out(_M_state_cur, __ibuf, __ibuf + __ilen, - __iend, __buf, __buf + __blen, __bend); - - if (__r == codecvt_base::ok || __r == codecvt_base::partial) - __blen = __bend - __buf; - else if (__r == codecvt_base::noconv) - { - - __buf = reinterpret_cast(__ibuf); - __blen = __ilen; - } - else - __throw_ios_failure(("basic_filebuf::_M_convert_to_external " "conversion error") - ); - - __elen = _M_file.xsputn(__buf, __blen); - __plen = __blen; - - - if (__r == codecvt_base::partial && __elen == __plen) - { - const char_type* __iresume = __iend; - streamsize __rlen = this->pptr() - __iend; - __r = _M_codecvt->out(_M_state_cur, __iresume, - __iresume + __rlen, __iend, __buf, - __buf + __blen, __bend); - if (__r != codecvt_base::error) - { - __rlen = __bend - __buf; - __elen = _M_file.xsputn(__buf, __rlen); - __plen = __rlen; - } - else - __throw_ios_failure(("basic_filebuf::_M_convert_to_external " "conversion error") - ); - } - } - return __elen == __plen; - } - - template - streamsize - basic_filebuf<_CharT, _Traits>:: - xsgetn(_CharT* __s, streamsize __n) - { - - streamsize __ret = 0; - if (_M_pback_init) - { - if (__n > 0 && this->gptr() == this->eback()) - { - *__s++ = *this->gptr(); - this->gbump(1); - __ret = 1; - --__n; - } - _M_destroy_pback(); - } - else if (_M_writing) - { - if (overflow() == traits_type::eof()) - return __ret; - _M_set_buffer(-1); - _M_writing = false; - } - - - - - const bool __testin = _M_mode & ios_base::in; - const streamsize __buflen = _M_buf_size > 1 ? _M_buf_size - 1 : 1; - - if (__n > __buflen && __check_facet(_M_codecvt).always_noconv() - && __testin) - { - - const streamsize __avail = this->egptr() - this->gptr(); - if (__avail != 0) - { - traits_type::copy(__s, this->gptr(), __avail); - __s += __avail; - this->setg(this->eback(), this->gptr() + __avail, this->egptr()); - __ret += __avail; - __n -= __avail; - } - - - - streamsize __len; - for (;;) - { - __len = _M_file.xsgetn(reinterpret_cast(__s), __n); - if (__len == -1) - __throw_ios_failure(("basic_filebuf::xsgetn " "error reading the file") - , (*__errno_location ())); - if (__len == 0) - break; - - __n -= __len; - __ret += __len; - if (__n == 0) - break; - - __s += __len; - } - - if (__n == 0) - { - - _M_reading = true; - } - else if (__len == 0) - { - - - - _M_set_buffer(-1); - _M_reading = false; - } - } - else - __ret += __streambuf_type::xsgetn(__s, __n); - - return __ret; - } - - template - streamsize - basic_filebuf<_CharT, _Traits>:: - xsputn(const _CharT* __s, streamsize __n) - { - streamsize __ret = 0; - - - - const bool __testout = (_M_mode & ios_base::out - || _M_mode & ios_base::app); - if (__check_facet(_M_codecvt).always_noconv() - && __testout && !_M_reading) - { - - const streamsize __chunk = 1ul << 10; - streamsize __bufavail = this->epptr() - this->pptr(); - - - if (!_M_writing && _M_buf_size > 1) - __bufavail = _M_buf_size - 1; - - const streamsize __limit = std::min(__chunk, __bufavail); - if (__n >= __limit) - { - const streamsize __buffill = this->pptr() - this->pbase(); - const char* __buf = reinterpret_cast(this->pbase()); - __ret = _M_file.xsputn_2(__buf, __buffill, - reinterpret_cast(__s), - __n); - if (__ret == __buffill + __n) - { - _M_set_buffer(0); - _M_writing = true; - } - if (__ret > __buffill) - __ret -= __buffill; - else - __ret = 0; - } - else - __ret = __streambuf_type::xsputn(__s, __n); - } - else - __ret = __streambuf_type::xsputn(__s, __n); - return __ret; - } - - template - typename basic_filebuf<_CharT, _Traits>::__streambuf_type* - basic_filebuf<_CharT, _Traits>:: - setbuf(char_type* __s, streamsize __n) - { - if (!this->is_open()) - { - if (__s == 0 && __n == 0) - _M_buf_size = 1; - else if (__s && __n > 0) - { -# 820 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/fstream.tcc" 3 - _M_buf = __s; - _M_buf_size = __n; - } - } - return this; - } - - - - - template - typename basic_filebuf<_CharT, _Traits>::pos_type - basic_filebuf<_CharT, _Traits>:: - seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode) - { - int __width = 0; - if (_M_codecvt) - __width = _M_codecvt->encoding(); - if (__width < 0) - __width = 0; - - pos_type __ret = pos_type(off_type(-1)); - const bool __testfail = __off != 0 && __width <= 0; - if (this->is_open() && !__testfail) - { - - - - - bool __no_movement = __way == ios_base::cur && __off == 0 - && (!_M_writing || _M_codecvt->always_noconv()); - - - if (!__no_movement) - _M_destroy_pback(); - - - - - - - __state_type __state = _M_state_beg; - off_type __computed_off = __off * __width; - if (_M_reading && __way == ios_base::cur) - { - __state = _M_state_last; - __computed_off += _M_get_ext_pos(__state); - } - if (!__no_movement) - __ret = _M_seek(__computed_off, __way, __state); - else - { - if (_M_writing) - __computed_off = this->pptr() - this->pbase(); - - off_type __file_off = _M_file.seekoff(0, ios_base::cur); - if (__file_off != off_type(-1)) - { - __ret = __file_off + __computed_off; - __ret.state(__state); - } - } - } - return __ret; - } - - - - - - template - typename basic_filebuf<_CharT, _Traits>::pos_type - basic_filebuf<_CharT, _Traits>:: - seekpos(pos_type __pos, ios_base::openmode) - { - pos_type __ret = pos_type(off_type(-1)); - if (this->is_open()) - { - - _M_destroy_pback(); - __ret = _M_seek(off_type(__pos), ios_base::beg, __pos.state()); - } - return __ret; - } - - template - typename basic_filebuf<_CharT, _Traits>::pos_type - basic_filebuf<_CharT, _Traits>:: - _M_seek(off_type __off, ios_base::seekdir __way, __state_type __state) - { - pos_type __ret = pos_type(off_type(-1)); - if (_M_terminate_output()) - { - off_type __file_off = _M_file.seekoff(__off, __way); - if (__file_off != off_type(-1)) - { - _M_reading = false; - _M_writing = false; - _M_ext_next = _M_ext_end = _M_ext_buf; - _M_set_buffer(-1); - _M_state_cur = __state; - __ret = __file_off; - __ret.state(_M_state_cur); - } - } - return __ret; - } - - - - - template - int basic_filebuf<_CharT, _Traits>:: - _M_get_ext_pos(__state_type& __state) - { - if (_M_codecvt->always_noconv()) - return this->gptr() - this->egptr(); - else - { - - - - const int __gptr_off = - _M_codecvt->length(__state, _M_ext_buf, _M_ext_next, - this->gptr() - this->eback()); - return _M_ext_buf + __gptr_off - _M_ext_end; - } - } - - template - bool - basic_filebuf<_CharT, _Traits>:: - _M_terminate_output() - { - - bool __testvalid = true; - if (this->pbase() < this->pptr()) - { - const int_type __tmp = this->overflow(); - if (traits_type::eq_int_type(__tmp, traits_type::eof())) - __testvalid = false; - } - - - if (_M_writing && !__check_facet(_M_codecvt).always_noconv() - && __testvalid) - { - - - - const size_t __blen = 128; - char __buf[__blen]; - codecvt_base::result __r; - streamsize __ilen = 0; - - do - { - char* __next; - __r = _M_codecvt->unshift(_M_state_cur, __buf, - __buf + __blen, __next); - if (__r == codecvt_base::error) - __testvalid = false; - else if (__r == codecvt_base::ok || - __r == codecvt_base::partial) - { - __ilen = __next - __buf; - if (__ilen > 0) - { - const streamsize __elen = _M_file.xsputn(__buf, __ilen); - if (__elen != __ilen) - __testvalid = false; - } - } - } - while (__r == codecvt_base::partial && __ilen > 0 && __testvalid); - - if (__testvalid) - { - - - - - const int_type __tmp = this->overflow(); - if (traits_type::eq_int_type(__tmp, traits_type::eof())) - __testvalid = false; - } - } - return __testvalid; - } - - template - int - basic_filebuf<_CharT, _Traits>:: - sync() - { - - - int __ret = 0; - if (this->pbase() < this->pptr()) - { - const int_type __tmp = this->overflow(); - if (traits_type::eq_int_type(__tmp, traits_type::eof())) - __ret = -1; - } - return __ret; - } - - template - void - basic_filebuf<_CharT, _Traits>:: - imbue(const locale& __loc) - { - bool __testvalid = true; - - const __codecvt_type* _M_codecvt_tmp = 0; - if (__builtin_expect(has_facet<__codecvt_type>(__loc), true)) - _M_codecvt_tmp = &use_facet<__codecvt_type>(__loc); - - if (this->is_open()) - { - - if ((_M_reading || _M_writing) - && __check_facet(_M_codecvt).encoding() == -1) - __testvalid = false; - else - { - if (_M_reading) - { - if (__check_facet(_M_codecvt).always_noconv()) - { - if (_M_codecvt_tmp - && !__check_facet(_M_codecvt_tmp).always_noconv()) - __testvalid = this->seekoff(0, ios_base::cur, _M_mode) - != pos_type(off_type(-1)); - } - else - { - - _M_ext_next = _M_ext_buf - + _M_codecvt->length(_M_state_last, _M_ext_buf, - _M_ext_next, - this->gptr() - this->eback()); - const streamsize __remainder = _M_ext_end - _M_ext_next; - if (__remainder) - __builtin_memmove(_M_ext_buf, _M_ext_next, __remainder); - - _M_ext_next = _M_ext_buf; - _M_ext_end = _M_ext_buf + __remainder; - _M_set_buffer(-1); - _M_state_last = _M_state_cur = _M_state_beg; - } - } - else if (_M_writing && (__testvalid = _M_terminate_output())) - _M_set_buffer(-1); - } - } - - if (__testvalid) - _M_codecvt = _M_codecvt_tmp; - else - _M_codecvt = 0; - } - - - - - extern template class basic_filebuf; - extern template class basic_ifstream; - extern template class basic_ofstream; - extern template class basic_fstream; - - - extern template class basic_filebuf; - extern template class basic_ifstream; - extern template class basic_ofstream; - extern template class basic_fstream; - - - - -} -# 1294 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/fstream" 2 3 -# 31 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Matrix.hpp" 2 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/vector" 1 3 -# 58 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/vector" 3 - -# 59 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/vector" 3 - - - - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_uninitialized.h" 1 3 -# 69 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_uninitialized.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - - - template - struct __uninitialized_copy - { - template - static _ForwardIterator - __uninit_copy(_InputIterator __first, _InputIterator __last, - _ForwardIterator __result) - { - _ForwardIterator __cur = __result; - try - { - for (; __first != __last; ++__first, (void)++__cur) - std::_Construct(std::__addressof(*__cur), *__first); - return __cur; - } - catch(...) - { - std::_Destroy(__result, __cur); - throw; - } - } - }; - - template<> - struct __uninitialized_copy - { - template - static _ForwardIterator - __uninit_copy(_InputIterator __first, _InputIterator __last, - _ForwardIterator __result) - { return std::copy(__first, __last, __result); } - }; -# 123 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_uninitialized.h" 3 - template - inline _ForwardIterator - uninitialized_copy(_InputIterator __first, _InputIterator __last, - _ForwardIterator __result) - { - typedef typename iterator_traits<_InputIterator>::value_type - _ValueType1; - typedef typename iterator_traits<_ForwardIterator>::value_type - _ValueType2; - - - - - - static_assert(is_constructible<_ValueType2, decltype(*__first)>::value, - "result type must be constructible from value type of input range"); - - typedef typename iterator_traits<_InputIterator>::reference _RefType1; - typedef typename iterator_traits<_ForwardIterator>::reference _RefType2; - - - const bool __assignable = is_assignable<_RefType2, _RefType1>::value; - - - return std::__uninitialized_copy<__is_trivial(_ValueType1) - && __is_trivial(_ValueType2) - && __assignable>:: - __uninit_copy(__first, __last, __result); - } - - - - template - struct __uninitialized_fill - { - template - static void - __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __x) - { - _ForwardIterator __cur = __first; - try - { - for (; __cur != __last; ++__cur) - std::_Construct(std::__addressof(*__cur), __x); - } - catch(...) - { - std::_Destroy(__first, __cur); - throw; - } - } - }; - - template<> - struct __uninitialized_fill - { - template - static void - __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __x) - { std::fill(__first, __last, __x); } - }; -# 198 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_uninitialized.h" 3 - template - inline void - uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __x) - { - typedef typename iterator_traits<_ForwardIterator>::value_type - _ValueType; - - - - - - static_assert(is_constructible<_ValueType, const _Tp&>::value, - "result type must be constructible from input type"); - - - - const bool __assignable = is_copy_assignable<_ValueType>::value; - - - std::__uninitialized_fill<__is_trivial(_ValueType) && __assignable>:: - __uninit_fill(__first, __last, __x); - } - - - - template - struct __uninitialized_fill_n - { - template - static _ForwardIterator - __uninit_fill_n(_ForwardIterator __first, _Size __n, - const _Tp& __x) - { - _ForwardIterator __cur = __first; - try - { - for (; __n > 0; --__n, (void) ++__cur) - std::_Construct(std::__addressof(*__cur), __x); - return __cur; - } - catch(...) - { - std::_Destroy(__first, __cur); - throw; - } - } - }; - - template<> - struct __uninitialized_fill_n - { - template - static _ForwardIterator - __uninit_fill_n(_ForwardIterator __first, _Size __n, - const _Tp& __x) - { return std::fill_n(__first, __n, __x); } - }; -# 270 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_uninitialized.h" 3 - template - inline _ForwardIterator - uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) - { - typedef typename iterator_traits<_ForwardIterator>::value_type - _ValueType; - - - - - - static_assert(is_constructible<_ValueType, const _Tp&>::value, - "result type must be constructible from input type"); - - - - const bool __assignable = is_copy_assignable<_ValueType>::value; - - return __uninitialized_fill_n<__is_trivial(_ValueType) && __assignable>:: - __uninit_fill_n(__first, __n, __x); - } -# 300 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_uninitialized.h" 3 - template - _ForwardIterator - __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, - _ForwardIterator __result, _Allocator& __alloc) - { - _ForwardIterator __cur = __result; - try - { - typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; - for (; __first != __last; ++__first, (void)++__cur) - __traits::construct(__alloc, std::__addressof(*__cur), *__first); - return __cur; - } - catch(...) - { - std::_Destroy(__result, __cur, __alloc); - throw; - } - } - - template - inline _ForwardIterator - __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, - _ForwardIterator __result, allocator<_Tp>&) - { return std::uninitialized_copy(__first, __last, __result); } - - template - inline _ForwardIterator - __uninitialized_move_a(_InputIterator __first, _InputIterator __last, - _ForwardIterator __result, _Allocator& __alloc) - { - return std::__uninitialized_copy_a(std::make_move_iterator(__first), - std::make_move_iterator(__last), - __result, __alloc); - } - - template - inline _ForwardIterator - __uninitialized_move_if_noexcept_a(_InputIterator __first, - _InputIterator __last, - _ForwardIterator __result, - _Allocator& __alloc) - { - return std::__uninitialized_copy_a - (std::__make_move_if_noexcept_iterator(__first), - std::__make_move_if_noexcept_iterator(__last), __result, __alloc); - } - - template - void - __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __x, _Allocator& __alloc) - { - _ForwardIterator __cur = __first; - try - { - typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; - for (; __cur != __last; ++__cur) - __traits::construct(__alloc, std::__addressof(*__cur), __x); - } - catch(...) - { - std::_Destroy(__first, __cur, __alloc); - throw; - } - } - - template - inline void - __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __x, allocator<_Tp2>&) - { std::uninitialized_fill(__first, __last, __x); } - - template - _ForwardIterator - __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, - const _Tp& __x, _Allocator& __alloc) - { - _ForwardIterator __cur = __first; - try - { - typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; - for (; __n > 0; --__n, (void) ++__cur) - __traits::construct(__alloc, std::__addressof(*__cur), __x); - return __cur; - } - catch(...) - { - std::_Destroy(__first, __cur, __alloc); - throw; - } - } - - template - inline _ForwardIterator - __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, - const _Tp& __x, allocator<_Tp2>&) - { return std::uninitialized_fill_n(__first, __n, __x); } -# 414 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_uninitialized.h" 3 - template - inline _ForwardIterator - __uninitialized_copy_move(_InputIterator1 __first1, - _InputIterator1 __last1, - _InputIterator2 __first2, - _InputIterator2 __last2, - _ForwardIterator __result, - _Allocator& __alloc) - { - _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, - __result, - __alloc); - try - { - return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); - } - catch(...) - { - std::_Destroy(__result, __mid, __alloc); - throw; - } - } - - - - - - template - inline _ForwardIterator - __uninitialized_move_copy(_InputIterator1 __first1, - _InputIterator1 __last1, - _InputIterator2 __first2, - _InputIterator2 __last2, - _ForwardIterator __result, - _Allocator& __alloc) - { - _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, - __result, - __alloc); - try - { - return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); - } - catch(...) - { - std::_Destroy(__result, __mid, __alloc); - throw; - } - } - - - - - template - inline _ForwardIterator - __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid, - const _Tp& __x, _InputIterator __first, - _InputIterator __last, _Allocator& __alloc) - { - std::__uninitialized_fill_a(__result, __mid, __x, __alloc); - try - { - return std::__uninitialized_move_a(__first, __last, __mid, __alloc); - } - catch(...) - { - std::_Destroy(__result, __mid, __alloc); - throw; - } - } - - - - - template - inline void - __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, - _ForwardIterator __first2, - _ForwardIterator __last2, const _Tp& __x, - _Allocator& __alloc) - { - _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, - __first2, - __alloc); - try - { - std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); - } - catch(...) - { - std::_Destroy(__first2, __mid2, __alloc); - throw; - } - } -# 521 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_uninitialized.h" 3 - template - struct __uninitialized_default_1 - { - template - static void - __uninit_default(_ForwardIterator __first, _ForwardIterator __last) - { - _ForwardIterator __cur = __first; - try - { - for (; __cur != __last; ++__cur) - std::_Construct(std::__addressof(*__cur)); - } - catch(...) - { - std::_Destroy(__first, __cur); - throw; - } - } - }; - - template<> - struct __uninitialized_default_1 - { - template - static void - __uninit_default(_ForwardIterator __first, _ForwardIterator __last) - { - typedef typename iterator_traits<_ForwardIterator>::value_type - _ValueType; - - std::fill(__first, __last, _ValueType()); - } - }; - - template - struct __uninitialized_default_n_1 - { - template - static _ForwardIterator - __uninit_default_n(_ForwardIterator __first, _Size __n) - { - _ForwardIterator __cur = __first; - try - { - for (; __n > 0; --__n, (void) ++__cur) - std::_Construct(std::__addressof(*__cur)); - return __cur; - } - catch(...) - { - std::_Destroy(__first, __cur); - throw; - } - } - }; - - template<> - struct __uninitialized_default_n_1 - { - template - static _ForwardIterator - __uninit_default_n(_ForwardIterator __first, _Size __n) - { - typedef typename iterator_traits<_ForwardIterator>::value_type - _ValueType; - - return std::fill_n(__first, __n, _ValueType()); - } - }; - - - - - template - inline void - __uninitialized_default(_ForwardIterator __first, - _ForwardIterator __last) - { - typedef typename iterator_traits<_ForwardIterator>::value_type - _ValueType; - - const bool __assignable = is_copy_assignable<_ValueType>::value; - - std::__uninitialized_default_1<__is_trivial(_ValueType) - && __assignable>:: - __uninit_default(__first, __last); - } - - - - template - inline _ForwardIterator - __uninitialized_default_n(_ForwardIterator __first, _Size __n) - { - typedef typename iterator_traits<_ForwardIterator>::value_type - _ValueType; - - const bool __assignable = is_copy_assignable<_ValueType>::value; - - return __uninitialized_default_n_1<__is_trivial(_ValueType) - && __assignable>:: - __uninit_default_n(__first, __n); - } - - - - - - template - void - __uninitialized_default_a(_ForwardIterator __first, - _ForwardIterator __last, - _Allocator& __alloc) - { - _ForwardIterator __cur = __first; - try - { - typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; - for (; __cur != __last; ++__cur) - __traits::construct(__alloc, std::__addressof(*__cur)); - } - catch(...) - { - std::_Destroy(__first, __cur, __alloc); - throw; - } - } - - template - inline void - __uninitialized_default_a(_ForwardIterator __first, - _ForwardIterator __last, - allocator<_Tp>&) - { std::__uninitialized_default(__first, __last); } - - - - - - template - _ForwardIterator - __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, - _Allocator& __alloc) - { - _ForwardIterator __cur = __first; - try - { - typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; - for (; __n > 0; --__n, (void) ++__cur) - __traits::construct(__alloc, std::__addressof(*__cur)); - return __cur; - } - catch(...) - { - std::_Destroy(__first, __cur, __alloc); - throw; - } - } - - template - inline _ForwardIterator - __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, - allocator<_Tp>&) - { return std::__uninitialized_default_n(__first, __n); } - - template - struct __uninitialized_default_novalue_1 - { - template - static void - __uninit_default_novalue(_ForwardIterator __first, - _ForwardIterator __last) - { - _ForwardIterator __cur = __first; - try - { - for (; __cur != __last; ++__cur) - std::_Construct_novalue(std::__addressof(*__cur)); - } - catch(...) - { - std::_Destroy(__first, __cur); - throw; - } - } - }; - - template<> - struct __uninitialized_default_novalue_1 - { - template - static void - __uninit_default_novalue(_ForwardIterator __first, - _ForwardIterator __last) - { - } - }; - - template - struct __uninitialized_default_novalue_n_1 - { - template - static _ForwardIterator - __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) - { - _ForwardIterator __cur = __first; - try - { - for (; __n > 0; --__n, (void) ++__cur) - std::_Construct_novalue(std::__addressof(*__cur)); - return __cur; - } - catch(...) - { - std::_Destroy(__first, __cur); - throw; - } - } - }; - - template<> - struct __uninitialized_default_novalue_n_1 - { - template - static _ForwardIterator - __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) - { return std::next(__first, __n); } - }; - - - - - template - inline void - __uninitialized_default_novalue(_ForwardIterator __first, - _ForwardIterator __last) - { - typedef typename iterator_traits<_ForwardIterator>::value_type - _ValueType; - - std::__uninitialized_default_novalue_1< - is_trivially_default_constructible<_ValueType>::value>:: - __uninit_default_novalue(__first, __last); - } - - - - template - inline _ForwardIterator - __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n) - { - typedef typename iterator_traits<_ForwardIterator>::value_type - _ValueType; - - return __uninitialized_default_novalue_n_1< - is_trivially_default_constructible<_ValueType>::value>:: - __uninit_default_novalue_n(__first, __n); - } - - template - _ForwardIterator - __uninitialized_copy_n(_InputIterator __first, _Size __n, - _ForwardIterator __result, input_iterator_tag) - { - _ForwardIterator __cur = __result; - try - { - for (; __n > 0; --__n, (void) ++__first, ++__cur) - std::_Construct(std::__addressof(*__cur), *__first); - return __cur; - } - catch(...) - { - std::_Destroy(__result, __cur); - throw; - } - } - - template - inline _ForwardIterator - __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n, - _ForwardIterator __result, - random_access_iterator_tag) - { return std::uninitialized_copy(__first, __first + __n, __result); } - - template - pair<_InputIterator, _ForwardIterator> - __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, - _ForwardIterator __result, input_iterator_tag) - { - _ForwardIterator __cur = __result; - try - { - for (; __n > 0; --__n, (void) ++__first, ++__cur) - std::_Construct(std::__addressof(*__cur), *__first); - return {__first, __cur}; - } - catch(...) - { - std::_Destroy(__result, __cur); - throw; - } - } - - template - inline pair<_RandomAccessIterator, _ForwardIterator> - __uninitialized_copy_n_pair(_RandomAccessIterator __first, _Size __n, - _ForwardIterator __result, - random_access_iterator_tag) - { - auto __second_res = uninitialized_copy(__first, __first + __n, __result); - auto __first_res = std::next(__first, __n); - return {__first_res, __second_res}; - } -# 852 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_uninitialized.h" 3 - template - inline _ForwardIterator - uninitialized_copy_n(_InputIterator __first, _Size __n, - _ForwardIterator __result) - { return std::__uninitialized_copy_n(__first, __n, __result, - std::__iterator_category(__first)); } - - - template - inline pair<_InputIterator, _ForwardIterator> - __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, - _ForwardIterator __result) - { - return - std::__uninitialized_copy_n_pair(__first, __n, __result, - std::__iterator_category(__first)); - } -# 966 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_uninitialized.h" 3 - template - inline void - __relocate_object_a(_Tp* __restrict __dest, _Up* __restrict __orig, - _Allocator& __alloc) - noexcept(noexcept(std::allocator_traits<_Allocator>::construct(__alloc, - __dest, std::move(*__orig))) - && noexcept(std::allocator_traits<_Allocator>::destroy( - __alloc, std::__addressof(*__orig)))) - { - typedef std::allocator_traits<_Allocator> __traits; - __traits::construct(__alloc, __dest, std::move(*__orig)); - __traits::destroy(__alloc, std::__addressof(*__orig)); - } - - - - template - struct __is_bitwise_relocatable - : is_trivial<_Tp> { }; - - template - inline __enable_if_t::value, _Tp*> - __relocate_a_1(_Tp* __first, _Tp* __last, - _Tp* __result, allocator<_Up>&) noexcept - { - ptrdiff_t __count = __last - __first; - if (__count > 0) - __builtin_memmove(__result, __first, __count * sizeof(_Tp)); - return __result + __count; - } - - template - inline _ForwardIterator - __relocate_a_1(_InputIterator __first, _InputIterator __last, - _ForwardIterator __result, _Allocator& __alloc) - noexcept(noexcept(std::__relocate_object_a(std::addressof(*__result), - std::addressof(*__first), - __alloc))) - { - typedef typename iterator_traits<_InputIterator>::value_type - _ValueType; - typedef typename iterator_traits<_ForwardIterator>::value_type - _ValueType2; - static_assert(std::is_same<_ValueType, _ValueType2>::value, - "relocation is only possible for values of the same type"); - _ForwardIterator __cur = __result; - for (; __first != __last; ++__first, (void)++__cur) - std::__relocate_object_a(std::__addressof(*__cur), - std::__addressof(*__first), __alloc); - return __cur; - } - - template - inline _ForwardIterator - __relocate_a(_InputIterator __first, _InputIterator __last, - _ForwardIterator __result, _Allocator& __alloc) - noexcept(noexcept(__relocate_a_1(std::__niter_base(__first), - std::__niter_base(__last), - std::__niter_base(__result), __alloc))) - { - return __relocate_a_1(std::__niter_base(__first), - std::__niter_base(__last), - std::__niter_base(__result), __alloc); - } - - - - - - - -} -# 67 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/vector" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 1 3 -# 77 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - template - struct _Vector_base - { - typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template - rebind<_Tp>::other _Tp_alloc_type; - typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer - pointer; - - struct _Vector_impl_data - { - pointer _M_start; - pointer _M_finish; - pointer _M_end_of_storage; - - _Vector_impl_data() noexcept - : _M_start(), _M_finish(), _M_end_of_storage() - { } - - - _Vector_impl_data(_Vector_impl_data&& __x) noexcept - : _M_start(__x._M_start), _M_finish(__x._M_finish), - _M_end_of_storage(__x._M_end_of_storage) - { __x._M_start = __x._M_finish = __x._M_end_of_storage = pointer(); } - - - void - _M_copy_data(_Vector_impl_data const& __x) noexcept - { - _M_start = __x._M_start; - _M_finish = __x._M_finish; - _M_end_of_storage = __x._M_end_of_storage; - } - - void - _M_swap_data(_Vector_impl_data& __x) noexcept - { - - - _Vector_impl_data __tmp; - __tmp._M_copy_data(*this); - _M_copy_data(__x); - __x._M_copy_data(__tmp); - } - }; - - struct _Vector_impl - : public _Tp_alloc_type, public _Vector_impl_data - { - _Vector_impl() noexcept(is_nothrow_default_constructible<_Tp_alloc_type>::value) - - : _Tp_alloc_type() - { } - - _Vector_impl(_Tp_alloc_type const& __a) noexcept - : _Tp_alloc_type(__a) - { } - - - - - _Vector_impl(_Vector_impl&& __x) noexcept - : _Tp_alloc_type(std::move(__x)), _Vector_impl_data(std::move(__x)) - { } - - _Vector_impl(_Tp_alloc_type&& __a) noexcept - : _Tp_alloc_type(std::move(__a)) - { } - - _Vector_impl(_Tp_alloc_type&& __a, _Vector_impl&& __rv) noexcept - : _Tp_alloc_type(std::move(__a)), _Vector_impl_data(std::move(__rv)) - { } -# 270 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - }; - - public: - typedef _Alloc allocator_type; - - _Tp_alloc_type& - _M_get_Tp_allocator() noexcept - { return this->_M_impl; } - - const _Tp_alloc_type& - _M_get_Tp_allocator() const noexcept - { return this->_M_impl; } - - allocator_type - get_allocator() const noexcept - { return allocator_type(_M_get_Tp_allocator()); } - - - _Vector_base() = default; - - - - - _Vector_base(const allocator_type& __a) noexcept - : _M_impl(__a) { } - - - - _Vector_base(size_t __n) - : _M_impl() - { _M_create_storage(__n); } - - - _Vector_base(size_t __n, const allocator_type& __a) - : _M_impl(__a) - { _M_create_storage(__n); } - - - _Vector_base(_Vector_base&&) = default; - - - - _Vector_base(_Tp_alloc_type&& __a) noexcept - : _M_impl(std::move(__a)) { } - - _Vector_base(_Vector_base&& __x, const allocator_type& __a) - : _M_impl(__a) - { - if (__x.get_allocator() == __a) - this->_M_impl._M_swap_data(__x._M_impl); - else - { - size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start; - _M_create_storage(__n); - } - } - - - _Vector_base(const allocator_type& __a, _Vector_base&& __x) - : _M_impl(_Tp_alloc_type(__a), std::move(__x._M_impl)) - { } - - - ~_Vector_base() noexcept - { - _M_deallocate(_M_impl._M_start, - _M_impl._M_end_of_storage - _M_impl._M_start); - } - - public: - _Vector_impl _M_impl; - - pointer - _M_allocate(size_t __n) - { - typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; - return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer(); - } - - void - _M_deallocate(pointer __p, size_t __n) - { - typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; - if (__p) - _Tr::deallocate(_M_impl, __p, __n); - } - - protected: - void - _M_create_storage(size_t __n) - { - this->_M_impl._M_start = this->_M_allocate(__n); - this->_M_impl._M_finish = this->_M_impl._M_start; - this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; - } - }; -# 388 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - template > - class vector : protected _Vector_base<_Tp, _Alloc> - { -# 401 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - static_assert(is_same::type, _Tp>::value, - "std::vector must have a non-const, non-volatile value_type"); - - - - - - - typedef _Vector_base<_Tp, _Alloc> _Base; - typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; - typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; - - public: - typedef _Tp value_type; - typedef typename _Base::pointer pointer; - typedef typename _Alloc_traits::const_pointer const_pointer; - typedef typename _Alloc_traits::reference reference; - typedef typename _Alloc_traits::const_reference const_reference; - typedef __gnu_cxx::__normal_iterator iterator; - typedef __gnu_cxx::__normal_iterator - const_iterator; - typedef std::reverse_iterator const_reverse_iterator; - typedef std::reverse_iterator reverse_iterator; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef _Alloc allocator_type; - - private: - - static constexpr bool - _S_nothrow_relocate(true_type) - { - return noexcept(std::__relocate_a(std::declval(), - std::declval(), - std::declval(), - std::declval<_Tp_alloc_type&>())); - } - - static constexpr bool - _S_nothrow_relocate(false_type) - { return false; } - - static constexpr bool - _S_use_relocate() - { - - - - return _S_nothrow_relocate(__is_move_insertable<_Tp_alloc_type>{}); - } - - static pointer - _S_do_relocate(pointer __first, pointer __last, pointer __result, - _Tp_alloc_type& __alloc, true_type) noexcept - { - return std::__relocate_a(__first, __last, __result, __alloc); - } - - static pointer - _S_do_relocate(pointer, pointer, pointer __result, - _Tp_alloc_type&, false_type) noexcept - { return __result; } - - static pointer - _S_relocate(pointer __first, pointer __last, pointer __result, - _Tp_alloc_type& __alloc) noexcept - { - using __do_it = __bool_constant<_S_use_relocate()>; - return _S_do_relocate(__first, __last, __result, __alloc, __do_it{}); - } - - - protected: - using _Base::_M_allocate; - using _Base::_M_deallocate; - using _Base::_M_impl; - using _Base::_M_get_Tp_allocator; - - public: - - - - - - - - vector() = default; -# 496 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - explicit - vector(const allocator_type& __a) noexcept - : _Base(__a) { } -# 509 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - explicit - vector(size_type __n, const allocator_type& __a = allocator_type()) - : _Base(_S_check_init_len(__n, __a), __a) - { _M_default_initialize(__n); } -# 522 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - vector(size_type __n, const value_type& __value, - const allocator_type& __a = allocator_type()) - : _Base(_S_check_init_len(__n, __a), __a) - { _M_fill_initialize(__n, __value); } -# 553 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - vector(const vector& __x) - : _Base(__x.size(), - _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator())) - { - this->_M_impl._M_finish = - std::__uninitialized_copy_a(__x.begin(), __x.end(), - this->_M_impl._M_start, - _M_get_Tp_allocator()); - } -# 572 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - vector(vector&&) noexcept = default; - - - vector(const vector& __x, const allocator_type& __a) - : _Base(__x.size(), __a) - { - this->_M_impl._M_finish = - std::__uninitialized_copy_a(__x.begin(), __x.end(), - this->_M_impl._M_start, - _M_get_Tp_allocator()); - } - - private: - vector(vector&& __rv, const allocator_type& __m, true_type) noexcept - : _Base(__m, std::move(__rv)) - { } - - vector(vector&& __rv, const allocator_type& __m, false_type) - : _Base(__m) - { - if (__rv.get_allocator() == __m) - this->_M_impl._M_swap_data(__rv._M_impl); - else if (!__rv.empty()) - { - this->_M_create_storage(__rv.size()); - this->_M_impl._M_finish = - std::__uninitialized_move_a(__rv.begin(), __rv.end(), - this->_M_impl._M_start, - _M_get_Tp_allocator()); - __rv.clear(); - } - } - - public: - - vector(vector&& __rv, const allocator_type& __m) - noexcept( noexcept( - vector(std::declval(), std::declval(), - std::declval())) ) - : vector(std::move(__rv), __m, typename _Alloc_traits::is_always_equal{}) - { } -# 625 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - vector(initializer_list __l, - const allocator_type& __a = allocator_type()) - : _Base(__a) - { - _M_range_initialize(__l.begin(), __l.end(), - random_access_iterator_tag()); - } -# 651 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - template> - vector(_InputIterator __first, _InputIterator __last, - const allocator_type& __a = allocator_type()) - : _Base(__a) - { - _M_range_initialize(__first, __last, - std::__iterator_category(__first)); - } -# 678 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - ~vector() noexcept - { - std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, - _M_get_Tp_allocator()); - ; - } -# 694 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - vector& - operator=(const vector& __x); -# 708 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - vector& - operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) - { - constexpr bool __move_storage = - _Alloc_traits::_S_propagate_on_move_assign() - || _Alloc_traits::_S_always_equal(); - _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); - return *this; - } -# 729 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - vector& - operator=(initializer_list __l) - { - this->_M_assign_aux(__l.begin(), __l.end(), - random_access_iterator_tag()); - return *this; - } -# 748 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - void - assign(size_type __n, const value_type& __val) - { _M_fill_assign(__n, __val); } -# 765 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - template> - void - assign(_InputIterator __first, _InputIterator __last) - { _M_assign_dispatch(__first, __last, __false_type()); } -# 793 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - void - assign(initializer_list __l) - { - this->_M_assign_aux(__l.begin(), __l.end(), - random_access_iterator_tag()); - } - - - - using _Base::get_allocator; - - - - - - - - iterator - begin() noexcept - { return iterator(this->_M_impl._M_start); } - - - - - - - const_iterator - begin() const noexcept - { return const_iterator(this->_M_impl._M_start); } - - - - - - - iterator - end() noexcept - { return iterator(this->_M_impl._M_finish); } - - - - - - - const_iterator - end() const noexcept - { return const_iterator(this->_M_impl._M_finish); } - - - - - - - reverse_iterator - rbegin() noexcept - { return reverse_iterator(end()); } - - - - - - - const_reverse_iterator - rbegin() const noexcept - { return const_reverse_iterator(end()); } - - - - - - - reverse_iterator - rend() noexcept - { return reverse_iterator(begin()); } - - - - - - - const_reverse_iterator - rend() const noexcept - { return const_reverse_iterator(begin()); } - - - - - - - - const_iterator - cbegin() const noexcept - { return const_iterator(this->_M_impl._M_start); } - - - - - - - const_iterator - cend() const noexcept - { return const_iterator(this->_M_impl._M_finish); } - - - - - - - const_reverse_iterator - crbegin() const noexcept - { return const_reverse_iterator(end()); } - - - - - - - const_reverse_iterator - crend() const noexcept - { return const_reverse_iterator(begin()); } - - - - - size_type - size() const noexcept - { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } - - - size_type - max_size() const noexcept - { return _S_max_size(_M_get_Tp_allocator()); } -# 936 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - void - resize(size_type __new_size) - { - if (__new_size > size()) - _M_default_append(__new_size - size()); - else if (__new_size < size()) - _M_erase_at_end(this->_M_impl._M_start + __new_size); - } -# 956 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - void - resize(size_type __new_size, const value_type& __x) - { - if (__new_size > size()) - _M_fill_insert(end(), __new_size - size(), __x); - else if (__new_size < size()) - _M_erase_at_end(this->_M_impl._M_start + __new_size); - } -# 988 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - void - shrink_to_fit() - { _M_shrink_to_fit(); } - - - - - - - size_type - capacity() const noexcept - { return size_type(this->_M_impl._M_end_of_storage - - this->_M_impl._M_start); } - - - - - - bool - empty() const noexcept - { return begin() == end(); } -# 1027 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - void - reserve(size_type __n); -# 1042 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - reference - operator[](size_type __n) noexcept - { - ; - return *(this->_M_impl._M_start + __n); - } -# 1060 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - const_reference - operator[](size_type __n) const noexcept - { - ; - return *(this->_M_impl._M_start + __n); - } - - protected: - - void - _M_range_check(size_type __n) const - { - if (__n >= this->size()) - __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") - - , - __n, this->size()); - } - - public: -# 1091 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - reference - at(size_type __n) - { - _M_range_check(__n); - return (*this)[__n]; - } -# 1109 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - const_reference - at(size_type __n) const - { - _M_range_check(__n); - return (*this)[__n]; - } - - - - - - reference - front() noexcept - { - ; - return *begin(); - } - - - - - - const_reference - front() const noexcept - { - ; - return *begin(); - } - - - - - - reference - back() noexcept - { - ; - return *(end() - 1); - } - - - - - - const_reference - back() const noexcept - { - ; - return *(end() - 1); - } -# 1167 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - _Tp* - data() noexcept - { return _M_data_ptr(this->_M_impl._M_start); } - - const _Tp* - data() const noexcept - { return _M_data_ptr(this->_M_impl._M_start); } -# 1186 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - void - push_back(const value_type& __x) - { - if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) - { - ; - _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, - __x); - ++this->_M_impl._M_finish; - ; - } - else - _M_realloc_insert(end(), __x); - } - - - void - push_back(value_type&& __x) - { emplace_back(std::move(__x)); } - - template - - - - void - - emplace_back(_Args&&... __args); -# 1224 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - void - pop_back() noexcept - { - ; - --this->_M_impl._M_finish; - _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); - ; - } -# 1246 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - template - iterator - emplace(const_iterator __position, _Args&&... __args) - { return _M_emplace_aux(__position, std::forward<_Args>(__args)...); } -# 1262 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - iterator - insert(const_iterator __position, const value_type& __x); -# 1292 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - iterator - insert(const_iterator __position, value_type&& __x) - { return _M_insert_rval(__position, std::move(__x)); } -# 1309 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - iterator - insert(const_iterator __position, initializer_list __l) - { - auto __offset = __position - cbegin(); - _M_range_insert(begin() + __offset, __l.begin(), __l.end(), - std::random_access_iterator_tag()); - return begin() + __offset; - } -# 1334 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - iterator - insert(const_iterator __position, size_type __n, const value_type& __x) - { - difference_type __offset = __position - cbegin(); - _M_fill_insert(begin() + __offset, __n, __x); - return begin() + __offset; - } -# 1376 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - template> - iterator - insert(const_iterator __position, _InputIterator __first, - _InputIterator __last) - { - difference_type __offset = __position - cbegin(); - _M_insert_dispatch(begin() + __offset, - __first, __last, __false_type()); - return begin() + __offset; - } -# 1428 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - iterator - - erase(const_iterator __position) - { return _M_erase(begin() + (__position - cbegin())); } -# 1455 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - iterator - - erase(const_iterator __first, const_iterator __last) - { - const auto __beg = begin(); - const auto __cbeg = cbegin(); - return _M_erase(__beg + (__first - __cbeg), __beg + (__last - __cbeg)); - } -# 1479 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - void - swap(vector& __x) noexcept - { - - - ; - - this->_M_impl._M_swap_data(__x._M_impl); - _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), - __x._M_get_Tp_allocator()); - } - - - - - - - - void - clear() noexcept - { _M_erase_at_end(this->_M_impl._M_start); } - - protected: - - - - - template - pointer - _M_allocate_and_copy(size_type __n, - _ForwardIterator __first, _ForwardIterator __last) - { - pointer __result = this->_M_allocate(__n); - try - { - std::__uninitialized_copy_a(__first, __last, __result, - _M_get_Tp_allocator()); - return __result; - } - catch(...) - { - _M_deallocate(__result, __n); - throw; - } - } -# 1556 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - template - void - _M_range_initialize(_InputIterator __first, _InputIterator __last, - std::input_iterator_tag) - { - try { - for (; __first != __last; ++__first) - - emplace_back(*__first); - - - - } catch(...) { - clear(); - throw; - } - } - - - template - void - _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, - std::forward_iterator_tag) - { - const size_type __n = std::distance(__first, __last); - this->_M_impl._M_start - = this->_M_allocate(_S_check_init_len(__n, _M_get_Tp_allocator())); - this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; - this->_M_impl._M_finish = - std::__uninitialized_copy_a(__first, __last, - this->_M_impl._M_start, - _M_get_Tp_allocator()); - } - - - - void - _M_fill_initialize(size_type __n, const value_type& __value) - { - this->_M_impl._M_finish = - std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, - _M_get_Tp_allocator()); - } - - - - void - _M_default_initialize(size_type __n) - { - this->_M_impl._M_finish = - std::__uninitialized_default_n_a(this->_M_impl._M_start, __n, - _M_get_Tp_allocator()); - } -# 1618 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - template - void - _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) - { _M_fill_assign(__n, __val); } - - - template - void - _M_assign_dispatch(_InputIterator __first, _InputIterator __last, - __false_type) - { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } - - - template - void - _M_assign_aux(_InputIterator __first, _InputIterator __last, - std::input_iterator_tag); - - - template - void - _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, - std::forward_iterator_tag); - - - - void - _M_fill_assign(size_type __n, const value_type& __val); - - - - - - - - template - void - _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, - __true_type) - { _M_fill_insert(__pos, __n, __val); } - - - template - void - _M_insert_dispatch(iterator __pos, _InputIterator __first, - _InputIterator __last, __false_type) - { - _M_range_insert(__pos, __first, __last, - std::__iterator_category(__first)); - } - - - template - void - _M_range_insert(iterator __pos, _InputIterator __first, - _InputIterator __last, std::input_iterator_tag); - - - template - void - _M_range_insert(iterator __pos, _ForwardIterator __first, - _ForwardIterator __last, std::forward_iterator_tag); - - - - void - _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); - - - - void - _M_default_append(size_type __n); - - bool - _M_shrink_to_fit(); -# 1705 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - struct _Temporary_value - { - template - explicit - _Temporary_value(vector* __vec, _Args&&... __args) : _M_this(__vec) - { - _Alloc_traits::construct(_M_this->_M_impl, _M_ptr(), - std::forward<_Args>(__args)...); - } - - ~_Temporary_value() - { _Alloc_traits::destroy(_M_this->_M_impl, _M_ptr()); } - - value_type& - _M_val() { return *_M_ptr(); } - - private: - _Tp* - _M_ptr() { return reinterpret_cast<_Tp*>(&__buf); } - - vector* _M_this; - typename aligned_storage::type __buf; - }; - - - - template - void - _M_insert_aux(iterator __position, _Arg&& __arg); - - template - void - _M_realloc_insert(iterator __position, _Args&&... __args); - - - iterator - _M_insert_rval(const_iterator __position, value_type&& __v); - - - template - iterator - _M_emplace_aux(const_iterator __position, _Args&&... __args); - - - iterator - _M_emplace_aux(const_iterator __position, value_type&& __v) - { return _M_insert_rval(__position, std::move(__v)); } - - - - size_type - _M_check_len(size_type __n, const char* __s) const - { - if (max_size() - size() < __n) - __throw_length_error((__s)); - - const size_type __len = size() + (std::max)(size(), __n); - return (__len < size() || __len > max_size()) ? max_size() : __len; - } - - - static size_type - _S_check_init_len(size_type __n, const allocator_type& __a) - { - if (__n > _S_max_size(_Tp_alloc_type(__a))) - __throw_length_error( - ("cannot create std::vector larger than max_size()")); - return __n; - } - - static size_type - _S_max_size(const _Tp_alloc_type& __a) noexcept - { - - - - const size_t __diffmax - = __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); - const size_t __allocmax = _Alloc_traits::max_size(__a); - return (std::min)(__diffmax, __allocmax); - } - - - - - - void - _M_erase_at_end(pointer __pos) noexcept - { - if (size_type __n = this->_M_impl._M_finish - __pos) - { - std::_Destroy(__pos, this->_M_impl._M_finish, - _M_get_Tp_allocator()); - this->_M_impl._M_finish = __pos; - ; - } - } - - iterator - _M_erase(iterator __position); - - iterator - _M_erase(iterator __first, iterator __last); - - - private: - - - - void - _M_move_assign(vector&& __x, true_type) noexcept - { - vector __tmp(get_allocator()); - this->_M_impl._M_swap_data(__x._M_impl); - __tmp._M_impl._M_swap_data(__x._M_impl); - std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); - } - - - - void - _M_move_assign(vector&& __x, false_type) - { - if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) - _M_move_assign(std::move(__x), true_type()); - else - { - - - this->_M_assign_aux(std::make_move_iterator(__x.begin()), - std::make_move_iterator(__x.end()), - std::random_access_iterator_tag()); - __x.clear(); - } - } - - - template - _Up* - _M_data_ptr(_Up* __ptr) const noexcept - { return __ptr; } - - - template - typename std::pointer_traits<_Ptr>::element_type* - _M_data_ptr(_Ptr __ptr) const - { return empty() ? nullptr : std::__to_address(__ptr); } -# 1868 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - }; -# 1890 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - template - inline bool - operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) - { return (__x.size() == __y.size() - && std::equal(__x.begin(), __x.end(), __y.begin())); } -# 1928 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - template - inline bool - operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) - { return std::lexicographical_compare(__x.begin(), __x.end(), - __y.begin(), __y.end()); } - - - template - inline bool - operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) - { return !(__x == __y); } - - - template - inline bool - operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) - { return __y < __x; } - - - template - inline bool - operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) - { return !(__y < __x); } - - - template - inline bool - operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) - { return !(__x < __y); } - - - - template - inline void - swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) - noexcept(noexcept(__x.swap(__y))) - { __x.swap(__y); } - - -# 1982 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_vector.h" 3 - -} -# 68 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/vector" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_bvector.h" 1 3 -# 64 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_bvector.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - typedef unsigned long _Bit_type; - enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; - - struct _Bit_reference - { - _Bit_type * _M_p; - _Bit_type _M_mask; - - _Bit_reference(_Bit_type * __x, _Bit_type __y) - : _M_p(__x), _M_mask(__y) { } - - _Bit_reference() noexcept : _M_p(0), _M_mask(0) { } - - - _Bit_reference(const _Bit_reference&) = default; - - - operator bool() const noexcept - { return !!(*_M_p & _M_mask); } - - _Bit_reference& - operator=(bool __x) noexcept - { - if (__x) - *_M_p |= _M_mask; - else - *_M_p &= ~_M_mask; - return *this; - } - - _Bit_reference& - operator=(const _Bit_reference& __x) noexcept - { return *this = bool(__x); } - - bool - operator==(const _Bit_reference& __x) const - { return bool(*this) == bool(__x); } - - bool - operator<(const _Bit_reference& __x) const - { return !bool(*this) && bool(__x); } - - void - flip() noexcept - { *_M_p ^= _M_mask; } - }; - - - inline void - swap(_Bit_reference __x, _Bit_reference __y) noexcept - { - bool __tmp = __x; - __x = __y; - __y = __tmp; - } - - inline void - swap(_Bit_reference __x, bool& __y) noexcept - { - bool __tmp = __x; - __x = __y; - __y = __tmp; - } - - inline void - swap(bool& __x, _Bit_reference __y) noexcept - { - bool __tmp = __x; - __x = __y; - __y = __tmp; - } - - - struct _Bit_iterator_base - : public std::iterator - { - _Bit_type * _M_p; - unsigned int _M_offset; - - _Bit_iterator_base(_Bit_type * __x, unsigned int __y) - : _M_p(__x), _M_offset(__y) { } - - void - _M_bump_up() - { - if (_M_offset++ == int(_S_word_bit) - 1) - { - _M_offset = 0; - ++_M_p; - } - } - - void - _M_bump_down() - { - if (_M_offset-- == 0) - { - _M_offset = int(_S_word_bit) - 1; - --_M_p; - } - } - - void - _M_incr(ptrdiff_t __i) - { - difference_type __n = __i + _M_offset; - _M_p += __n / int(_S_word_bit); - __n = __n % int(_S_word_bit); - if (__n < 0) - { - __n += int(_S_word_bit); - --_M_p; - } - _M_offset = static_cast(__n); - } - - friend bool - operator==(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) - { return __x._M_p == __y._M_p && __x._M_offset == __y._M_offset; } -# 199 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_bvector.h" 3 - friend bool - operator<(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) - { - return __x._M_p < __y._M_p - || (__x._M_p == __y._M_p && __x._M_offset < __y._M_offset); - } - - friend bool - operator!=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) - { return !(__x == __y); } - - friend bool - operator>(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) - { return __y < __x; } - - friend bool - operator<=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) - { return !(__y < __x); } - - friend bool - operator>=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) - { return !(__x < __y); } - - - friend ptrdiff_t - operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) - { - return (int(_S_word_bit) * (__x._M_p - __y._M_p) - + __x._M_offset - __y._M_offset); - } - }; - - struct _Bit_iterator : public _Bit_iterator_base - { - typedef _Bit_reference reference; - - - - typedef _Bit_reference* pointer; - - typedef _Bit_iterator iterator; - - _Bit_iterator() : _Bit_iterator_base(0, 0) { } - - _Bit_iterator(_Bit_type * __x, unsigned int __y) - : _Bit_iterator_base(__x, __y) { } - - iterator - _M_const_cast() const - { return *this; } - - reference - operator*() const - { return reference(_M_p, 1UL << _M_offset); } - - iterator& - operator++() - { - _M_bump_up(); - return *this; - } - - iterator - operator++(int) - { - iterator __tmp = *this; - _M_bump_up(); - return __tmp; - } - - iterator& - operator--() - { - _M_bump_down(); - return *this; - } - - iterator - operator--(int) - { - iterator __tmp = *this; - _M_bump_down(); - return __tmp; - } - - iterator& - operator+=(difference_type __i) - { - _M_incr(__i); - return *this; - } - - iterator& - operator-=(difference_type __i) - { - *this += -__i; - return *this; - } - - reference - operator[](difference_type __i) const - { return *(*this + __i); } - - friend iterator - operator+(const iterator& __x, difference_type __n) - { - iterator __tmp = __x; - __tmp += __n; - return __tmp; - } - - friend iterator - operator+(difference_type __n, const iterator& __x) - { return __x + __n; } - - friend iterator - operator-(const iterator& __x, difference_type __n) - { - iterator __tmp = __x; - __tmp -= __n; - return __tmp; - } - }; - - struct _Bit_const_iterator : public _Bit_iterator_base - { - typedef bool reference; - typedef bool const_reference; - - - - typedef const bool* pointer; - - typedef _Bit_const_iterator const_iterator; - - _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } - - _Bit_const_iterator(_Bit_type * __x, unsigned int __y) - : _Bit_iterator_base(__x, __y) { } - - _Bit_const_iterator(const _Bit_iterator& __x) - : _Bit_iterator_base(__x._M_p, __x._M_offset) { } - - _Bit_iterator - _M_const_cast() const - { return _Bit_iterator(_M_p, _M_offset); } - - const_reference - operator*() const - { return _Bit_reference(_M_p, 1UL << _M_offset); } - - const_iterator& - operator++() - { - _M_bump_up(); - return *this; - } - - const_iterator - operator++(int) - { - const_iterator __tmp = *this; - _M_bump_up(); - return __tmp; - } - - const_iterator& - operator--() - { - _M_bump_down(); - return *this; - } - - const_iterator - operator--(int) - { - const_iterator __tmp = *this; - _M_bump_down(); - return __tmp; - } - - const_iterator& - operator+=(difference_type __i) - { - _M_incr(__i); - return *this; - } - - const_iterator& - operator-=(difference_type __i) - { - *this += -__i; - return *this; - } - - const_reference - operator[](difference_type __i) const - { return *(*this + __i); } - - friend const_iterator - operator+(const const_iterator& __x, difference_type __n) - { - const_iterator __tmp = __x; - __tmp += __n; - return __tmp; - } - - friend const_iterator - operator-(const const_iterator& __x, difference_type __n) - { - const_iterator __tmp = __x; - __tmp -= __n; - return __tmp; - } - - friend const_iterator - operator+(difference_type __n, const const_iterator& __x) - { return __x + __n; } - }; - - inline void - __fill_bvector(_Bit_type * __v, - unsigned int __first, unsigned int __last, bool __x) - { - const _Bit_type __fmask = ~0ul << __first; - const _Bit_type __lmask = ~0ul >> (_S_word_bit - __last); - const _Bit_type __mask = __fmask & __lmask; - - if (__x) - *__v |= __mask; - else - *__v &= ~__mask; - } - - inline void - fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x) - { - if (__first._M_p != __last._M_p) - { - _Bit_type* __first_p = __first._M_p; - if (__first._M_offset != 0) - __fill_bvector(__first_p++, __first._M_offset, _S_word_bit, __x); - - __builtin_memset(__first_p, __x ? ~0 : 0, - (__last._M_p - __first_p) * sizeof(_Bit_type)); - - if (__last._M_offset != 0) - __fill_bvector(__last._M_p, 0, __last._M_offset, __x); - } - else if (__first._M_offset != __last._M_offset) - __fill_bvector(__first._M_p, __first._M_offset, __last._M_offset, __x); - } - - template - struct _Bvector_base - { - typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template - rebind<_Bit_type>::other _Bit_alloc_type; - typedef typename __gnu_cxx::__alloc_traits<_Bit_alloc_type> - _Bit_alloc_traits; - typedef typename _Bit_alloc_traits::pointer _Bit_pointer; - - struct _Bvector_impl_data - { - _Bit_iterator _M_start; - _Bit_iterator _M_finish; - _Bit_pointer _M_end_of_storage; - - _Bvector_impl_data() noexcept - : _M_start(), _M_finish(), _M_end_of_storage() - { } - - - _Bvector_impl_data(_Bvector_impl_data&& __x) noexcept - : _M_start(__x._M_start), _M_finish(__x._M_finish) - , _M_end_of_storage(__x._M_end_of_storage) - { __x._M_reset(); } - - void - _M_move_data(_Bvector_impl_data&& __x) noexcept - { - this->_M_start = __x._M_start; - this->_M_finish = __x._M_finish; - this->_M_end_of_storage = __x._M_end_of_storage; - __x._M_reset(); - } - - - void - _M_reset() noexcept - { - _M_start = _M_finish = _Bit_iterator(); - _M_end_of_storage = _Bit_pointer(); - } - }; - - struct _Bvector_impl - : public _Bit_alloc_type, public _Bvector_impl_data - { - public: - _Bvector_impl() noexcept(is_nothrow_default_constructible<_Bit_alloc_type>::value) - - : _Bit_alloc_type() - { } - - _Bvector_impl(const _Bit_alloc_type& __a) noexcept - : _Bit_alloc_type(__a) - { } - - - _Bvector_impl(_Bvector_impl&&) = default; - - - _Bit_type* - _M_end_addr() const noexcept - { - if (this->_M_end_of_storage) - return std::__addressof(this->_M_end_of_storage[-1]) + 1; - return 0; - } - }; - - public: - typedef _Alloc allocator_type; - - _Bit_alloc_type& - _M_get_Bit_allocator() noexcept - { return this->_M_impl; } - - const _Bit_alloc_type& - _M_get_Bit_allocator() const noexcept - { return this->_M_impl; } - - allocator_type - get_allocator() const noexcept - { return allocator_type(_M_get_Bit_allocator()); } - - - _Bvector_base() = default; - - - - - _Bvector_base(const allocator_type& __a) - : _M_impl(__a) { } - - - _Bvector_base(_Bvector_base&&) = default; - - - ~_Bvector_base() - { this->_M_deallocate(); } - - protected: - _Bvector_impl _M_impl; - - _Bit_pointer - _M_allocate(size_t __n) - { return _Bit_alloc_traits::allocate(_M_impl, _S_nword(__n)); } - - void - _M_deallocate() - { - if (_M_impl._M_start._M_p) - { - const size_t __n = _M_impl._M_end_addr() - _M_impl._M_start._M_p; - _Bit_alloc_traits::deallocate(_M_impl, - _M_impl._M_end_of_storage - __n, - __n); - _M_impl._M_reset(); - } - } - - - void - _M_move_data(_Bvector_base&& __x) noexcept - { _M_impl._M_move_data(std::move(__x._M_impl)); } - - - static size_t - _S_nword(size_t __n) - { return (__n + int(_S_word_bit) - 1) / int(_S_word_bit); } - }; - - - -} - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - -# 614 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_bvector.h" 3 - template - class vector : protected _Bvector_base<_Alloc> - { - typedef _Bvector_base<_Alloc> _Base; - typedef typename _Base::_Bit_pointer _Bit_pointer; - typedef typename _Base::_Bit_alloc_traits _Bit_alloc_traits; - - - friend struct std::hash; - - - public: - typedef bool value_type; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef _Bit_reference reference; - typedef bool const_reference; - typedef _Bit_reference* pointer; - typedef const bool* const_pointer; - typedef _Bit_iterator iterator; - typedef _Bit_const_iterator const_iterator; - typedef std::reverse_iterator const_reverse_iterator; - typedef std::reverse_iterator reverse_iterator; - typedef _Alloc allocator_type; - - allocator_type - get_allocator() const - { return _Base::get_allocator(); } - - protected: - using _Base::_M_allocate; - using _Base::_M_deallocate; - using _Base::_S_nword; - using _Base::_M_get_Bit_allocator; - - public: - - vector() = default; - - - - - explicit - vector(const allocator_type& __a) - : _Base(__a) { } - - - explicit - vector(size_type __n, const allocator_type& __a = allocator_type()) - : vector(__n, false, __a) - { } - - vector(size_type __n, const bool& __value, - const allocator_type& __a = allocator_type()) - - - - - - : _Base(__a) - { - _M_initialize(__n); - _M_initialize_value(__value); - } - - vector(const vector& __x) - : _Base(_Bit_alloc_traits::_S_select_on_copy(__x._M_get_Bit_allocator())) - { - _M_initialize(__x.size()); - _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); - } - - - vector(vector&&) = default; - - vector(vector&& __x, const allocator_type& __a) - noexcept(_Bit_alloc_traits::_S_always_equal()) - : _Base(__a) - { - if (__x.get_allocator() == __a) - this->_M_move_data(std::move(__x)); - else - { - _M_initialize(__x.size()); - _M_copy_aligned(__x.begin(), __x.end(), begin()); - __x.clear(); - } - } - - vector(const vector& __x, const allocator_type& __a) - : _Base(__a) - { - _M_initialize(__x.size()); - _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); - } - - vector(initializer_list __l, - const allocator_type& __a = allocator_type()) - : _Base(__a) - { - _M_initialize_range(__l.begin(), __l.end(), - random_access_iterator_tag()); - } - - - - template> - vector(_InputIterator __first, _InputIterator __last, - const allocator_type& __a = allocator_type()) - : _Base(__a) - { _M_initialize_dispatch(__first, __last, __false_type()); } -# 737 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_bvector.h" 3 - ~vector() noexcept { } - - vector& - operator=(const vector& __x) - { - if (&__x == this) - return *this; - - if (_Bit_alloc_traits::_S_propagate_on_copy_assign()) - { - if (this->_M_get_Bit_allocator() != __x._M_get_Bit_allocator()) - { - this->_M_deallocate(); - std::__alloc_on_copy(_M_get_Bit_allocator(), - __x._M_get_Bit_allocator()); - _M_initialize(__x.size()); - } - else - std::__alloc_on_copy(_M_get_Bit_allocator(), - __x._M_get_Bit_allocator()); - } - - if (__x.size() > capacity()) - { - this->_M_deallocate(); - _M_initialize(__x.size()); - } - this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), - begin()); - return *this; - } - - - vector& - operator=(vector&& __x) noexcept(_Bit_alloc_traits::_S_nothrow_move()) - { - if (_Bit_alloc_traits::_S_propagate_on_move_assign() - || this->_M_get_Bit_allocator() == __x._M_get_Bit_allocator()) - { - this->_M_deallocate(); - this->_M_move_data(std::move(__x)); - std::__alloc_on_move(_M_get_Bit_allocator(), - __x._M_get_Bit_allocator()); - } - else - { - if (__x.size() > capacity()) - { - this->_M_deallocate(); - _M_initialize(__x.size()); - } - this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), - begin()); - __x.clear(); - } - return *this; - } - - vector& - operator=(initializer_list __l) - { - this->assign (__l.begin(), __l.end()); - return *this; - } - - - - - - - void - assign(size_type __n, const bool& __x) - { _M_fill_assign(__n, __x); } - - - template> - void - assign(_InputIterator __first, _InputIterator __last) - { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } -# 828 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_bvector.h" 3 - void - assign(initializer_list __l) - { _M_assign_aux(__l.begin(), __l.end(), random_access_iterator_tag()); } - - - iterator - begin() noexcept - { return iterator(this->_M_impl._M_start._M_p, 0); } - - const_iterator - begin() const noexcept - { return const_iterator(this->_M_impl._M_start._M_p, 0); } - - iterator - end() noexcept - { return this->_M_impl._M_finish; } - - const_iterator - end() const noexcept - { return this->_M_impl._M_finish; } - - reverse_iterator - rbegin() noexcept - { return reverse_iterator(end()); } - - const_reverse_iterator - rbegin() const noexcept - { return const_reverse_iterator(end()); } - - reverse_iterator - rend() noexcept - { return reverse_iterator(begin()); } - - const_reverse_iterator - rend() const noexcept - { return const_reverse_iterator(begin()); } - - - const_iterator - cbegin() const noexcept - { return const_iterator(this->_M_impl._M_start._M_p, 0); } - - const_iterator - cend() const noexcept - { return this->_M_impl._M_finish; } - - const_reverse_iterator - crbegin() const noexcept - { return const_reverse_iterator(end()); } - - const_reverse_iterator - crend() const noexcept - { return const_reverse_iterator(begin()); } - - - size_type - size() const noexcept - { return size_type(end() - begin()); } - - size_type - max_size() const noexcept - { - const size_type __isize = - __gnu_cxx::__numeric_traits::__max - - int(_S_word_bit) + 1; - const size_type __asize - = _Bit_alloc_traits::max_size(_M_get_Bit_allocator()); - return (__asize <= __isize / int(_S_word_bit) - ? __asize * int(_S_word_bit) : __isize); - } - - size_type - capacity() const noexcept - { return size_type(const_iterator(this->_M_impl._M_end_addr(), 0) - - begin()); } - - bool - empty() const noexcept - { return begin() == end(); } - - reference - operator[](size_type __n) - { - return *iterator(this->_M_impl._M_start._M_p - + __n / int(_S_word_bit), __n % int(_S_word_bit)); - } - - const_reference - operator[](size_type __n) const - { - return *const_iterator(this->_M_impl._M_start._M_p - + __n / int(_S_word_bit), __n % int(_S_word_bit)); - } - - protected: - void - _M_range_check(size_type __n) const - { - if (__n >= this->size()) - __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") - - , - __n, this->size()); - } - - public: - reference - at(size_type __n) - { _M_range_check(__n); return (*this)[__n]; } - - const_reference - at(size_type __n) const - { _M_range_check(__n); return (*this)[__n]; } - - void - reserve(size_type __n) - { - if (__n > max_size()) - __throw_length_error(("vector::reserve")); - if (capacity() < __n) - _M_reallocate(__n); - } - - reference - front() - { return *begin(); } - - const_reference - front() const - { return *begin(); } - - reference - back() - { return *(end() - 1); } - - const_reference - back() const - { return *(end() - 1); } - - - - - - - void - data() noexcept { } - - void - push_back(bool __x) - { - if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) - *this->_M_impl._M_finish++ = __x; - else - _M_insert_aux(end(), __x); - } - - void - swap(vector& __x) noexcept - { - std::swap(this->_M_impl._M_start, __x._M_impl._M_start); - std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); - std::swap(this->_M_impl._M_end_of_storage, - __x._M_impl._M_end_of_storage); - _Bit_alloc_traits::_S_on_swap(_M_get_Bit_allocator(), - __x._M_get_Bit_allocator()); - } - - - static void - swap(reference __x, reference __y) noexcept - { - bool __tmp = __x; - __x = __y; - __y = __tmp; - } - - iterator - - insert(const_iterator __position, const bool& __x = bool()) - - - - { - const difference_type __n = __position - begin(); - if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr() - && __position == end()) - *this->_M_impl._M_finish++ = __x; - else - _M_insert_aux(__position._M_const_cast(), __x); - return begin() + __n; - } - - - template> - iterator - insert(const_iterator __position, - _InputIterator __first, _InputIterator __last) - { - difference_type __offset = __position - cbegin(); - _M_insert_dispatch(__position._M_const_cast(), - __first, __last, __false_type()); - return begin() + __offset; - } -# 1044 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_bvector.h" 3 - iterator - insert(const_iterator __position, size_type __n, const bool& __x) - { - difference_type __offset = __position - cbegin(); - _M_fill_insert(__position._M_const_cast(), __n, __x); - return begin() + __offset; - } - - - - - - - - iterator - insert(const_iterator __p, initializer_list __l) - { return this->insert(__p, __l.begin(), __l.end()); } - - - void - pop_back() - { --this->_M_impl._M_finish; } - - iterator - - erase(const_iterator __position) - - - - { return _M_erase(__position._M_const_cast()); } - - iterator - - erase(const_iterator __first, const_iterator __last) - - - - { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } - - void - resize(size_type __new_size, bool __x = bool()) - { - if (__new_size < size()) - _M_erase_at_end(begin() + difference_type(__new_size)); - else - insert(end(), __new_size - size(), __x); - } - - - void - shrink_to_fit() - { _M_shrink_to_fit(); } - - - void - flip() noexcept - { - _Bit_type * const __end = this->_M_impl._M_end_addr(); - for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != __end; ++__p) - *__p = ~*__p; - } - - void - clear() noexcept - { _M_erase_at_end(begin()); } - - - template - - - - void - - emplace_back(_Args&&... __args) - { - push_back(bool(__args...)); - - - - } - - template - iterator - emplace(const_iterator __pos, _Args&&... __args) - { return insert(__pos, bool(__args...)); } - - - protected: - - iterator - _M_copy_aligned(const_iterator __first, const_iterator __last, - iterator __result) - { - _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p); - return std::copy(const_iterator(__last._M_p, 0), __last, - iterator(__q, 0)); - } - - void - _M_initialize(size_type __n) - { - if (__n) - { - _Bit_pointer __q = this->_M_allocate(__n); - this->_M_impl._M_end_of_storage = __q + _S_nword(__n); - this->_M_impl._M_start = iterator(std::__addressof(*__q), 0); - } - else - { - this->_M_impl._M_end_of_storage = _Bit_pointer(); - this->_M_impl._M_start = iterator(0, 0); - } - this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n); - - } - - void - _M_initialize_value(bool __x) - { - if (_Bit_type* __p = this->_M_impl._M_start._M_p) - __builtin_memset(__p, __x ? ~0 : 0, - (this->_M_impl._M_end_addr() - __p) - * sizeof(_Bit_type)); - } - - void - _M_reallocate(size_type __n); - - - bool - _M_shrink_to_fit(); - - - - - - - template - void - _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) - { - _M_initialize(static_cast(__n)); - _M_initialize_value(__x); - } - - template - void - _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, - __false_type) - { _M_initialize_range(__first, __last, - std::__iterator_category(__first)); } - - template - void - _M_initialize_range(_InputIterator __first, _InputIterator __last, - std::input_iterator_tag) - { - for (; __first != __last; ++__first) - push_back(*__first); - } - - template - void - _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, - std::forward_iterator_tag) - { - const size_type __n = std::distance(__first, __last); - _M_initialize(__n); - std::copy(__first, __last, this->_M_impl._M_start); - } -# 1230 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_bvector.h" 3 - void - _M_fill_assign(size_t __n, bool __x) - { - if (__n > size()) - { - _M_initialize_value(__x); - insert(end(), __n - size(), __x); - } - else - { - _M_erase_at_end(begin() + __n); - _M_initialize_value(__x); - } - } - - template - void - _M_assign_aux(_InputIterator __first, _InputIterator __last, - std::input_iterator_tag) - { - iterator __cur = begin(); - for (; __first != __last && __cur != end(); ++__cur, (void)++__first) - *__cur = *__first; - if (__first == __last) - _M_erase_at_end(__cur); - else - insert(end(), __first, __last); - } - - template - void - _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, - std::forward_iterator_tag) - { - const size_type __len = std::distance(__first, __last); - if (__len < size()) - _M_erase_at_end(std::copy(__first, __last, begin())); - else - { - _ForwardIterator __mid = __first; - std::advance(__mid, size()); - std::copy(__first, __mid, begin()); - insert(end(), __mid, __last); - } - } - - - - - - template - void - _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, - __true_type) - { _M_fill_insert(__pos, __n, __x); } - - template - void - _M_insert_dispatch(iterator __pos, - _InputIterator __first, _InputIterator __last, - __false_type) - { _M_insert_range(__pos, __first, __last, - std::__iterator_category(__first)); } - - void - _M_fill_insert(iterator __position, size_type __n, bool __x); - - template - void - _M_insert_range(iterator __pos, _InputIterator __first, - _InputIterator __last, std::input_iterator_tag) - { - for (; __first != __last; ++__first) - { - __pos = insert(__pos, *__first); - ++__pos; - } - } - - template - void - _M_insert_range(iterator __position, _ForwardIterator __first, - _ForwardIterator __last, std::forward_iterator_tag); - - void - _M_insert_aux(iterator __position, bool __x); - - size_type - _M_check_len(size_type __n, const char* __s) const - { - if (max_size() - size() < __n) - __throw_length_error((__s)); - - const size_type __len = size() + std::max(size(), __n); - return (__len < size() || __len > max_size()) ? max_size() : __len; - } - - void - _M_erase_at_end(iterator __pos) - { this->_M_impl._M_finish = __pos; } - - iterator - _M_erase(iterator __pos); - - iterator - _M_erase(iterator __first, iterator __last); - }; - - - -} - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - template - struct hash> - : public __hash_base> - { - size_t - operator()(const std::vector&) const noexcept; - }; - - -} -# 69 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/vector" 2 3 - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/vector.tcc" 1 3 -# 59 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/vector.tcc" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - template - void - vector<_Tp, _Alloc>:: - reserve(size_type __n) - { - if (__n > this->max_size()) - __throw_length_error(("vector::reserve")); - if (this->capacity() < __n) - { - const size_type __old_size = size(); - pointer __tmp; - - if (_S_use_relocate()) - { - __tmp = this->_M_allocate(__n); - _S_relocate(this->_M_impl._M_start, this->_M_impl._M_finish, - __tmp, _M_get_Tp_allocator()); - } - else - - { - __tmp = _M_allocate_and_copy(__n, - std::__make_move_if_noexcept_iterator(this->_M_impl._M_start), - std::__make_move_if_noexcept_iterator(this->_M_impl._M_finish)); - std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, - _M_get_Tp_allocator()); - } - ; - _M_deallocate(this->_M_impl._M_start, - this->_M_impl._M_end_of_storage - - this->_M_impl._M_start); - this->_M_impl._M_start = __tmp; - this->_M_impl._M_finish = __tmp + __old_size; - this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; - } - } - - - template - template - - - - void - - vector<_Tp, _Alloc>:: - emplace_back(_Args&&... __args) - { - if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) - { - ; - _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, - std::forward<_Args>(__args)...); - ++this->_M_impl._M_finish; - ; - } - else - _M_realloc_insert(end(), std::forward<_Args>(__args)...); - - - - } - - - template - typename vector<_Tp, _Alloc>::iterator - vector<_Tp, _Alloc>:: - - insert(const_iterator __position, const value_type& __x) - - - - { - const size_type __n = __position - begin(); - if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) - if (__position == end()) - { - ; - _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, - __x); - ++this->_M_impl._M_finish; - ; - } - else - { - - const auto __pos = begin() + (__position - cbegin()); - - - _Temporary_value __x_copy(this, __x); - _M_insert_aux(__pos, std::move(__x_copy._M_val())); - - - - } - else - - _M_realloc_insert(begin() + (__position - cbegin()), __x); - - - - - return iterator(this->_M_impl._M_start + __n); - } - - template - typename vector<_Tp, _Alloc>::iterator - vector<_Tp, _Alloc>:: - _M_erase(iterator __position) - { - if (__position + 1 != end()) - std::move(__position + 1, end(), __position); - --this->_M_impl._M_finish; - _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); - ; - return __position; - } - - template - typename vector<_Tp, _Alloc>::iterator - vector<_Tp, _Alloc>:: - _M_erase(iterator __first, iterator __last) - { - if (__first != __last) - { - if (__last != end()) - std::move(__last, end(), __first); - _M_erase_at_end(__first.base() + (end() - __last)); - } - return __first; - } - - template - vector<_Tp, _Alloc>& - vector<_Tp, _Alloc>:: - operator=(const vector<_Tp, _Alloc>& __x) - { - if (&__x != this) - { - ; - - if (_Alloc_traits::_S_propagate_on_copy_assign()) - { - if (!_Alloc_traits::_S_always_equal() - && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) - { - - this->clear(); - _M_deallocate(this->_M_impl._M_start, - this->_M_impl._M_end_of_storage - - this->_M_impl._M_start); - this->_M_impl._M_start = nullptr; - this->_M_impl._M_finish = nullptr; - this->_M_impl._M_end_of_storage = nullptr; - } - std::__alloc_on_copy(_M_get_Tp_allocator(), - __x._M_get_Tp_allocator()); - } - - const size_type __xlen = __x.size(); - if (__xlen > capacity()) - { - pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), - __x.end()); - std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, - _M_get_Tp_allocator()); - _M_deallocate(this->_M_impl._M_start, - this->_M_impl._M_end_of_storage - - this->_M_impl._M_start); - this->_M_impl._M_start = __tmp; - this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; - } - else if (size() >= __xlen) - { - std::_Destroy(std::copy(__x.begin(), __x.end(), begin()), - end(), _M_get_Tp_allocator()); - } - else - { - std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(), - this->_M_impl._M_start); - std::__uninitialized_copy_a(__x._M_impl._M_start + size(), - __x._M_impl._M_finish, - this->_M_impl._M_finish, - _M_get_Tp_allocator()); - } - this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; - } - return *this; - } - - template - void - vector<_Tp, _Alloc>:: - _M_fill_assign(size_t __n, const value_type& __val) - { - if (__n > capacity()) - { - vector __tmp(__n, __val, _M_get_Tp_allocator()); - __tmp._M_impl._M_swap_data(this->_M_impl); - } - else if (__n > size()) - { - std::fill(begin(), end(), __val); - const size_type __add = __n - size(); - ; - this->_M_impl._M_finish = - std::__uninitialized_fill_n_a(this->_M_impl._M_finish, - __add, __val, _M_get_Tp_allocator()); - ; - } - else - _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val)); - } - - template - template - void - vector<_Tp, _Alloc>:: - _M_assign_aux(_InputIterator __first, _InputIterator __last, - std::input_iterator_tag) - { - pointer __cur(this->_M_impl._M_start); - for (; __first != __last && __cur != this->_M_impl._M_finish; - ++__cur, (void)++__first) - *__cur = *__first; - if (__first == __last) - _M_erase_at_end(__cur); - else - _M_range_insert(end(), __first, __last, - std::__iterator_category(__first)); - } - - template - template - void - vector<_Tp, _Alloc>:: - _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, - std::forward_iterator_tag) - { - const size_type __len = std::distance(__first, __last); - - if (__len > capacity()) - { - _S_check_init_len(__len, _M_get_Tp_allocator()); - pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); - std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, - _M_get_Tp_allocator()); - ; - _M_deallocate(this->_M_impl._M_start, - this->_M_impl._M_end_of_storage - - this->_M_impl._M_start); - this->_M_impl._M_start = __tmp; - this->_M_impl._M_finish = this->_M_impl._M_start + __len; - this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; - } - else if (size() >= __len) - _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start)); - else - { - _ForwardIterator __mid = __first; - std::advance(__mid, size()); - std::copy(__first, __mid, this->_M_impl._M_start); - const size_type __attribute__((__unused__)) __n = __len - size(); - ; - this->_M_impl._M_finish = - std::__uninitialized_copy_a(__mid, __last, - this->_M_impl._M_finish, - _M_get_Tp_allocator()); - ; - } - } - - - template - auto - vector<_Tp, _Alloc>:: - _M_insert_rval(const_iterator __position, value_type&& __v) -> iterator - { - const auto __n = __position - cbegin(); - if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) - if (__position == cend()) - { - ; - _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, - std::move(__v)); - ++this->_M_impl._M_finish; - ; - } - else - _M_insert_aux(begin() + __n, std::move(__v)); - else - _M_realloc_insert(begin() + __n, std::move(__v)); - - return iterator(this->_M_impl._M_start + __n); - } - - template - template - auto - vector<_Tp, _Alloc>:: - _M_emplace_aux(const_iterator __position, _Args&&... __args) - -> iterator - { - const auto __n = __position - cbegin(); - if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) - if (__position == cend()) - { - ; - _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, - std::forward<_Args>(__args)...); - ++this->_M_impl._M_finish; - ; - } - else - { - - - - _Temporary_value __tmp(this, std::forward<_Args>(__args)...); - _M_insert_aux(begin() + __n, std::move(__tmp._M_val())); - } - else - _M_realloc_insert(begin() + __n, std::forward<_Args>(__args)...); - - return iterator(this->_M_impl._M_start + __n); - } - - template - template - void - vector<_Tp, _Alloc>:: - _M_insert_aux(iterator __position, _Arg&& __arg) - - - - - - - { - ; - _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, - std::move(*(this->_M_impl._M_finish - 1))); - ++this->_M_impl._M_finish; - ; - - - - std::move_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1) - - ; - - - - *__position = std::forward<_Arg>(__arg); - - } - - - template - template - void - vector<_Tp, _Alloc>:: - _M_realloc_insert(iterator __position, _Args&&... __args) - - - - - - - { - const size_type __len = - _M_check_len(size_type(1), "vector::_M_realloc_insert"); - pointer __old_start = this->_M_impl._M_start; - pointer __old_finish = this->_M_impl._M_finish; - const size_type __elems_before = __position - begin(); - pointer __new_start(this->_M_allocate(__len)); - pointer __new_finish(__new_start); - try - { - - - - - - _Alloc_traits::construct(this->_M_impl, - __new_start + __elems_before, - - std::forward<_Args>(__args)...); - - - - __new_finish = pointer(); - - - if (_S_use_relocate()) - { - __new_finish = _S_relocate(__old_start, __position.base(), - __new_start, _M_get_Tp_allocator()); - - ++__new_finish; - - __new_finish = _S_relocate(__position.base(), __old_finish, - __new_finish, _M_get_Tp_allocator()); - } - else - - { - __new_finish - = std::__uninitialized_move_if_noexcept_a - (__old_start, __position.base(), - __new_start, _M_get_Tp_allocator()); - - ++__new_finish; - - __new_finish - = std::__uninitialized_move_if_noexcept_a - (__position.base(), __old_finish, - __new_finish, _M_get_Tp_allocator()); - } - } - catch(...) - { - if (!__new_finish) - _Alloc_traits::destroy(this->_M_impl, - __new_start + __elems_before); - else - std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); - _M_deallocate(__new_start, __len); - throw; - } - - if (!_S_use_relocate()) - - std::_Destroy(__old_start, __old_finish, _M_get_Tp_allocator()); - ; - _M_deallocate(__old_start, - this->_M_impl._M_end_of_storage - __old_start); - this->_M_impl._M_start = __new_start; - this->_M_impl._M_finish = __new_finish; - this->_M_impl._M_end_of_storage = __new_start + __len; - } - - template - void - vector<_Tp, _Alloc>:: - _M_fill_insert(iterator __position, size_type __n, const value_type& __x) - { - if (__n != 0) - { - if (size_type(this->_M_impl._M_end_of_storage - - this->_M_impl._M_finish) >= __n) - { - - - - _Temporary_value __tmp(this, __x); - value_type& __x_copy = __tmp._M_val(); - - const size_type __elems_after = end() - __position; - pointer __old_finish(this->_M_impl._M_finish); - if (__elems_after > __n) - { - ; - std::__uninitialized_move_a(this->_M_impl._M_finish - __n, - this->_M_impl._M_finish, - this->_M_impl._M_finish, - _M_get_Tp_allocator()); - this->_M_impl._M_finish += __n; - ; - std::move_backward(__position.base(), __old_finish - __n, __old_finish) - ; - std::fill(__position.base(), __position.base() + __n, - __x_copy); - } - else - { - ; - this->_M_impl._M_finish = - std::__uninitialized_fill_n_a(this->_M_impl._M_finish, - __n - __elems_after, - __x_copy, - _M_get_Tp_allocator()); - ; - std::__uninitialized_move_a(__position.base(), __old_finish, - this->_M_impl._M_finish, - _M_get_Tp_allocator()); - this->_M_impl._M_finish += __elems_after; - ; - std::fill(__position.base(), __old_finish, __x_copy); - } - } - else - { - const size_type __len = - _M_check_len(__n, "vector::_M_fill_insert"); - const size_type __elems_before = __position - begin(); - pointer __new_start(this->_M_allocate(__len)); - pointer __new_finish(__new_start); - try - { - - std::__uninitialized_fill_n_a(__new_start + __elems_before, - __n, __x, - _M_get_Tp_allocator()); - __new_finish = pointer(); - - __new_finish - = std::__uninitialized_move_if_noexcept_a - (this->_M_impl._M_start, __position.base(), - __new_start, _M_get_Tp_allocator()); - - __new_finish += __n; - - __new_finish - = std::__uninitialized_move_if_noexcept_a - (__position.base(), this->_M_impl._M_finish, - __new_finish, _M_get_Tp_allocator()); - } - catch(...) - { - if (!__new_finish) - std::_Destroy(__new_start + __elems_before, - __new_start + __elems_before + __n, - _M_get_Tp_allocator()); - else - std::_Destroy(__new_start, __new_finish, - _M_get_Tp_allocator()); - _M_deallocate(__new_start, __len); - throw; - } - std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, - _M_get_Tp_allocator()); - ; - _M_deallocate(this->_M_impl._M_start, - this->_M_impl._M_end_of_storage - - this->_M_impl._M_start); - this->_M_impl._M_start = __new_start; - this->_M_impl._M_finish = __new_finish; - this->_M_impl._M_end_of_storage = __new_start + __len; - } - } - } - - - template - void - vector<_Tp, _Alloc>:: - _M_default_append(size_type __n) - { - if (__n != 0) - { - const size_type __size = size(); - size_type __navail = size_type(this->_M_impl._M_end_of_storage - - this->_M_impl._M_finish); - - if (__size > max_size() || __navail > max_size() - __size) - __builtin_unreachable(); - - if (__navail >= __n) - { - ; - this->_M_impl._M_finish = - std::__uninitialized_default_n_a(this->_M_impl._M_finish, - __n, _M_get_Tp_allocator()); - ; - } - else - { - const size_type __len = - _M_check_len(__n, "vector::_M_default_append"); - pointer __new_start(this->_M_allocate(__len)); - if (_S_use_relocate()) - { - try - { - std::__uninitialized_default_n_a(__new_start + __size, - __n, _M_get_Tp_allocator()); - } - catch(...) - { - _M_deallocate(__new_start, __len); - throw; - } - _S_relocate(this->_M_impl._M_start, this->_M_impl._M_finish, - __new_start, _M_get_Tp_allocator()); - } - else - { - pointer __destroy_from = pointer(); - try - { - std::__uninitialized_default_n_a(__new_start + __size, - __n, _M_get_Tp_allocator()); - __destroy_from = __new_start + __size; - std::__uninitialized_move_if_noexcept_a( - this->_M_impl._M_start, this->_M_impl._M_finish, - __new_start, _M_get_Tp_allocator()); - } - catch(...) - { - if (__destroy_from) - std::_Destroy(__destroy_from, __destroy_from + __n, - _M_get_Tp_allocator()); - _M_deallocate(__new_start, __len); - throw; - } - std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, - _M_get_Tp_allocator()); - } - ; - _M_deallocate(this->_M_impl._M_start, - this->_M_impl._M_end_of_storage - - this->_M_impl._M_start); - this->_M_impl._M_start = __new_start; - this->_M_impl._M_finish = __new_start + __size + __n; - this->_M_impl._M_end_of_storage = __new_start + __len; - } - } - } - - template - bool - vector<_Tp, _Alloc>:: - _M_shrink_to_fit() - { - if (capacity() == size()) - return false; - ; - return std::__shrink_to_fit_aux::_S_do_it(*this); - } - - - template - template - void - vector<_Tp, _Alloc>:: - _M_range_insert(iterator __pos, _InputIterator __first, - _InputIterator __last, std::input_iterator_tag) - { - if (__pos == end()) - { - for (; __first != __last; ++__first) - insert(end(), *__first); - } - else if (__first != __last) - { - vector __tmp(__first, __last, _M_get_Tp_allocator()); - insert(__pos, - std::make_move_iterator(__tmp.begin()), - std::make_move_iterator(__tmp.end())); - } - } - - template - template - void - vector<_Tp, _Alloc>:: - _M_range_insert(iterator __position, _ForwardIterator __first, - _ForwardIterator __last, std::forward_iterator_tag) - { - if (__first != __last) - { - const size_type __n = std::distance(__first, __last); - if (size_type(this->_M_impl._M_end_of_storage - - this->_M_impl._M_finish) >= __n) - { - const size_type __elems_after = end() - __position; - pointer __old_finish(this->_M_impl._M_finish); - if (__elems_after > __n) - { - ; - std::__uninitialized_move_a(this->_M_impl._M_finish - __n, - this->_M_impl._M_finish, - this->_M_impl._M_finish, - _M_get_Tp_allocator()); - this->_M_impl._M_finish += __n; - ; - std::move_backward(__position.base(), __old_finish - __n, __old_finish) - ; - std::copy(__first, __last, __position); - } - else - { - _ForwardIterator __mid = __first; - std::advance(__mid, __elems_after); - ; - std::__uninitialized_copy_a(__mid, __last, - this->_M_impl._M_finish, - _M_get_Tp_allocator()); - this->_M_impl._M_finish += __n - __elems_after; - ; - std::__uninitialized_move_a(__position.base(), - __old_finish, - this->_M_impl._M_finish, - _M_get_Tp_allocator()); - this->_M_impl._M_finish += __elems_after; - ; - std::copy(__first, __mid, __position); - } - } - else - { - const size_type __len = - _M_check_len(__n, "vector::_M_range_insert"); - pointer __new_start(this->_M_allocate(__len)); - pointer __new_finish(__new_start); - try - { - __new_finish - = std::__uninitialized_move_if_noexcept_a - (this->_M_impl._M_start, __position.base(), - __new_start, _M_get_Tp_allocator()); - __new_finish - = std::__uninitialized_copy_a(__first, __last, - __new_finish, - _M_get_Tp_allocator()); - __new_finish - = std::__uninitialized_move_if_noexcept_a - (__position.base(), this->_M_impl._M_finish, - __new_finish, _M_get_Tp_allocator()); - } - catch(...) - { - std::_Destroy(__new_start, __new_finish, - _M_get_Tp_allocator()); - _M_deallocate(__new_start, __len); - throw; - } - std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, - _M_get_Tp_allocator()); - ; - _M_deallocate(this->_M_impl._M_start, - this->_M_impl._M_end_of_storage - - this->_M_impl._M_start); - this->_M_impl._M_start = __new_start; - this->_M_impl._M_finish = __new_finish; - this->_M_impl._M_end_of_storage = __new_start + __len; - } - } - } - - - - template - void - vector:: - _M_reallocate(size_type __n) - { - _Bit_pointer __q = this->_M_allocate(__n); - iterator __start(std::__addressof(*__q), 0); - iterator __finish(_M_copy_aligned(begin(), end(), __start)); - this->_M_deallocate(); - this->_M_impl._M_start = __start; - this->_M_impl._M_finish = __finish; - this->_M_impl._M_end_of_storage = __q + _S_nword(__n); - } - - template - void - vector:: - _M_fill_insert(iterator __position, size_type __n, bool __x) - { - if (__n == 0) - return; - if (capacity() - size() >= __n) - { - std::copy_backward(__position, end(), - this->_M_impl._M_finish + difference_type(__n)); - std::fill(__position, __position + difference_type(__n), __x); - this->_M_impl._M_finish += difference_type(__n); - } - else - { - const size_type __len = - _M_check_len(__n, "vector::_M_fill_insert"); - _Bit_pointer __q = this->_M_allocate(__len); - iterator __start(std::__addressof(*__q), 0); - iterator __i = _M_copy_aligned(begin(), __position, __start); - std::fill(__i, __i + difference_type(__n), __x); - iterator __finish = std::copy(__position, end(), - __i + difference_type(__n)); - this->_M_deallocate(); - this->_M_impl._M_end_of_storage = __q + _S_nword(__len); - this->_M_impl._M_start = __start; - this->_M_impl._M_finish = __finish; - } - } - - template - template - void - vector:: - _M_insert_range(iterator __position, _ForwardIterator __first, - _ForwardIterator __last, std::forward_iterator_tag) - { - if (__first != __last) - { - size_type __n = std::distance(__first, __last); - if (capacity() - size() >= __n) - { - std::copy_backward(__position, end(), - this->_M_impl._M_finish - + difference_type(__n)); - std::copy(__first, __last, __position); - this->_M_impl._M_finish += difference_type(__n); - } - else - { - const size_type __len = - _M_check_len(__n, "vector::_M_insert_range"); - _Bit_pointer __q = this->_M_allocate(__len); - iterator __start(std::__addressof(*__q), 0); - iterator __i = _M_copy_aligned(begin(), __position, __start); - __i = std::copy(__first, __last, __i); - iterator __finish = std::copy(__position, end(), __i); - this->_M_deallocate(); - this->_M_impl._M_end_of_storage = __q + _S_nword(__len); - this->_M_impl._M_start = __start; - this->_M_impl._M_finish = __finish; - } - } - } - - template - void - vector:: - _M_insert_aux(iterator __position, bool __x) - { - if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) - { - std::copy_backward(__position, this->_M_impl._M_finish, - this->_M_impl._M_finish + 1); - *__position = __x; - ++this->_M_impl._M_finish; - } - else - { - const size_type __len = - _M_check_len(size_type(1), "vector::_M_insert_aux"); - _Bit_pointer __q = this->_M_allocate(__len); - iterator __start(std::__addressof(*__q), 0); - iterator __i = _M_copy_aligned(begin(), __position, __start); - *__i++ = __x; - iterator __finish = std::copy(__position, end(), __i); - this->_M_deallocate(); - this->_M_impl._M_end_of_storage = __q + _S_nword(__len); - this->_M_impl._M_start = __start; - this->_M_impl._M_finish = __finish; - } - } - - template - typename vector::iterator - vector:: - _M_erase(iterator __position) - { - if (__position + 1 != end()) - std::copy(__position + 1, end(), __position); - --this->_M_impl._M_finish; - return __position; - } - - template - typename vector::iterator - vector:: - _M_erase(iterator __first, iterator __last) - { - if (__first != __last) - _M_erase_at_end(std::copy(__last, end(), __first)); - return __first; - } - - - template - bool - vector:: - _M_shrink_to_fit() - { - if (capacity() - size() < int(_S_word_bit)) - return false; - try - { - _M_reallocate(size()); - return true; - } - catch(...) - { return false; } - } - - - - -} - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - template - size_t - hash>:: - operator()(const std::vector& __b) const noexcept - { - size_t __hash = 0; - using std::_S_word_bit; - using std::_Bit_type; - - const size_t __words = __b.size() / _S_word_bit; - if (__words) - { - const size_t __clength = __words * sizeof(_Bit_type); - __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength); - } - - const size_t __extrabits = __b.size() % _S_word_bit; - if (__extrabits) - { - _Bit_type __hiword = *__b._M_impl._M_finish._M_p; - __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits); - - const size_t __clength - = (__extrabits + 8 - 1) / 8; - if (__words) - __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash); - else - __hash = std::_Hash_impl::hash(&__hiword, __clength); - } - - return __hash; - } - - -} -# 73 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/vector" 2 3 -# 32 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Matrix.hpp" 2 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/list" 1 3 -# 58 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/list" 3 - -# 59 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/list" 3 - - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 1 3 -# 63 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/allocated_ptr.h" 1 3 -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/allocated_ptr.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - template - struct __allocated_ptr - { - using pointer = typename allocator_traits<_Alloc>::pointer; - using value_type = typename allocator_traits<_Alloc>::value_type; - - - __allocated_ptr(_Alloc& __a, pointer __ptr) noexcept - : _M_alloc(std::__addressof(__a)), _M_ptr(__ptr) - { } - - - template>> - __allocated_ptr(_Alloc& __a, _Ptr __ptr) - : _M_alloc(std::__addressof(__a)), - _M_ptr(pointer_traits::pointer_to(*__ptr)) - { } - - - __allocated_ptr(__allocated_ptr&& __gd) noexcept - : _M_alloc(__gd._M_alloc), _M_ptr(__gd._M_ptr) - { __gd._M_ptr = nullptr; } - - - ~__allocated_ptr() - { - if (_M_ptr != nullptr) - std::allocator_traits<_Alloc>::deallocate(*_M_alloc, _M_ptr, 1); - } - - - __allocated_ptr& - operator=(std::nullptr_t) noexcept - { - _M_ptr = nullptr; - return *this; - } - - - value_type* get() { return std::__to_address(_M_ptr); } - - private: - _Alloc* _M_alloc; - pointer _M_ptr; - }; - - - template - __allocated_ptr<_Alloc> - __allocate_guarded(_Alloc& __a) - { - return { __a, std::allocator_traits<_Alloc>::allocate(__a, 1) }; - } - - -} -# 64 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 2 3 - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - namespace __detail - { - - - - - - - - struct _List_node_base - { - _List_node_base* _M_next; - _List_node_base* _M_prev; - - static void - swap(_List_node_base& __x, _List_node_base& __y) noexcept; - - void - _M_transfer(_List_node_base* const __first, - _List_node_base* const __last) noexcept; - - void - _M_reverse() noexcept; - - void - _M_hook(_List_node_base* const __position) noexcept; - - void - _M_unhook() noexcept; - }; - - - struct _List_node_header : public _List_node_base - { - - std::size_t _M_size; - - - _List_node_header() noexcept - { _M_init(); } - - - _List_node_header(_List_node_header&& __x) noexcept - : _List_node_base{ __x._M_next, __x._M_prev } - - , _M_size(__x._M_size) - - { - if (__x._M_base()->_M_next == __x._M_base()) - this->_M_next = this->_M_prev = this; - else - { - this->_M_next->_M_prev = this->_M_prev->_M_next = this->_M_base(); - __x._M_init(); - } - } - - void - _M_move_nodes(_List_node_header&& __x) - { - _List_node_base* const __xnode = __x._M_base(); - if (__xnode->_M_next == __xnode) - _M_init(); - else - { - _List_node_base* const __node = this->_M_base(); - __node->_M_next = __xnode->_M_next; - __node->_M_prev = __xnode->_M_prev; - __node->_M_next->_M_prev = __node->_M_prev->_M_next = __node; - - _M_size = __x._M_size; - - __x._M_init(); - } - } - - - void - _M_init() noexcept - { - this->_M_next = this->_M_prev = this; - - this->_M_size = 0; - - } - - private: - _List_node_base* _M_base() { return this; } - }; - } - - - - - template - struct _List_node : public __detail::_List_node_base - { - - __gnu_cxx::__aligned_membuf<_Tp> _M_storage; - _Tp* _M_valptr() { return _M_storage._M_ptr(); } - _Tp const* _M_valptr() const { return _M_storage._M_ptr(); } - - - - - - }; - - - - - - - template - struct _List_iterator - { - typedef _List_iterator<_Tp> _Self; - typedef _List_node<_Tp> _Node; - - typedef ptrdiff_t difference_type; - typedef std::bidirectional_iterator_tag iterator_category; - typedef _Tp value_type; - typedef _Tp* pointer; - typedef _Tp& reference; - - _List_iterator() noexcept - : _M_node() { } - - explicit - _List_iterator(__detail::_List_node_base* __x) noexcept - : _M_node(__x) { } - - _Self - _M_const_cast() const noexcept - { return *this; } - - - reference - operator*() const noexcept - { return *static_cast<_Node*>(_M_node)->_M_valptr(); } - - pointer - operator->() const noexcept - { return static_cast<_Node*>(_M_node)->_M_valptr(); } - - _Self& - operator++() noexcept - { - _M_node = _M_node->_M_next; - return *this; - } - - _Self - operator++(int) noexcept - { - _Self __tmp = *this; - _M_node = _M_node->_M_next; - return __tmp; - } - - _Self& - operator--() noexcept - { - _M_node = _M_node->_M_prev; - return *this; - } - - _Self - operator--(int) noexcept - { - _Self __tmp = *this; - _M_node = _M_node->_M_prev; - return __tmp; - } - - friend bool - operator==(const _Self& __x, const _Self& __y) noexcept - { return __x._M_node == __y._M_node; } - - - friend bool - operator!=(const _Self& __x, const _Self& __y) noexcept - { return __x._M_node != __y._M_node; } - - - - __detail::_List_node_base* _M_node; - }; - - - - - - - template - struct _List_const_iterator - { - typedef _List_const_iterator<_Tp> _Self; - typedef const _List_node<_Tp> _Node; - typedef _List_iterator<_Tp> iterator; - - typedef ptrdiff_t difference_type; - typedef std::bidirectional_iterator_tag iterator_category; - typedef _Tp value_type; - typedef const _Tp* pointer; - typedef const _Tp& reference; - - _List_const_iterator() noexcept - : _M_node() { } - - explicit - _List_const_iterator(const __detail::_List_node_base* __x) - noexcept - : _M_node(__x) { } - - _List_const_iterator(const iterator& __x) noexcept - : _M_node(__x._M_node) { } - - iterator - _M_const_cast() const noexcept - { return iterator(const_cast<__detail::_List_node_base*>(_M_node)); } - - - reference - operator*() const noexcept - { return *static_cast<_Node*>(_M_node)->_M_valptr(); } - - pointer - operator->() const noexcept - { return static_cast<_Node*>(_M_node)->_M_valptr(); } - - _Self& - operator++() noexcept - { - _M_node = _M_node->_M_next; - return *this; - } - - _Self - operator++(int) noexcept - { - _Self __tmp = *this; - _M_node = _M_node->_M_next; - return __tmp; - } - - _Self& - operator--() noexcept - { - _M_node = _M_node->_M_prev; - return *this; - } - - _Self - operator--(int) noexcept - { - _Self __tmp = *this; - _M_node = _M_node->_M_prev; - return __tmp; - } - - friend bool - operator==(const _Self& __x, const _Self& __y) noexcept - { return __x._M_node == __y._M_node; } - - - friend bool - operator!=(const _Self& __x, const _Self& __y) noexcept - { return __x._M_node != __y._M_node; } - - - - const __detail::_List_node_base* _M_node; - }; - -namespace __cxx11 { - - template - class _List_base - { - protected: - typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template - rebind<_Tp>::other _Tp_alloc_type; - typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tp_alloc_traits; - typedef typename _Tp_alloc_traits::template - rebind<_List_node<_Tp> >::other _Node_alloc_type; - typedef __gnu_cxx::__alloc_traits<_Node_alloc_type> _Node_alloc_traits; - - - static size_t - _S_distance(const __detail::_List_node_base* __first, - const __detail::_List_node_base* __last) - { - size_t __n = 0; - while (__first != __last) - { - __first = __first->_M_next; - ++__n; - } - return __n; - } - - - struct _List_impl - : public _Node_alloc_type - { - __detail::_List_node_header _M_node; - - _List_impl() noexcept(is_nothrow_default_constructible<_Node_alloc_type>::value) - - : _Node_alloc_type() - { } - - _List_impl(const _Node_alloc_type& __a) noexcept - : _Node_alloc_type(__a) - { } - - - _List_impl(_List_impl&&) = default; - - _List_impl(_Node_alloc_type&& __a, _List_impl&& __x) - : _Node_alloc_type(std::move(__a)), _M_node(std::move(__x._M_node)) - { } - - _List_impl(_Node_alloc_type&& __a) noexcept - : _Node_alloc_type(std::move(__a)) - { } - - }; - - _List_impl _M_impl; - - - size_t _M_get_size() const { return _M_impl._M_node._M_size; } - - void _M_set_size(size_t __n) { _M_impl._M_node._M_size = __n; } - - void _M_inc_size(size_t __n) { _M_impl._M_node._M_size += __n; } - - void _M_dec_size(size_t __n) { _M_impl._M_node._M_size -= __n; } - - - size_t - _M_distance(const __detail::_List_node_base* __first, - const __detail::_List_node_base* __last) const - { return _S_distance(__first, __last); } - - - size_t _M_node_count() const { return _M_get_size(); } -# 440 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - typename _Node_alloc_traits::pointer - _M_get_node() - { return _Node_alloc_traits::allocate(_M_impl, 1); } - - void - _M_put_node(typename _Node_alloc_traits::pointer __p) noexcept - { _Node_alloc_traits::deallocate(_M_impl, __p, 1); } - - public: - typedef _Alloc allocator_type; - - _Node_alloc_type& - _M_get_Node_allocator() noexcept - { return _M_impl; } - - const _Node_alloc_type& - _M_get_Node_allocator() const noexcept - { return _M_impl; } - - - _List_base() = default; - - - - - _List_base(const _Node_alloc_type& __a) noexcept - : _M_impl(__a) - { } - - - _List_base(_List_base&&) = default; - - - _List_base(_List_base&& __x, _Node_alloc_type&& __a) - : _M_impl(std::move(__a)) - { - if (__x._M_get_Node_allocator() == _M_get_Node_allocator()) - _M_move_nodes(std::move(__x)); - - } - - - - _List_base(_Node_alloc_type&& __a, _List_base&& __x) - : _M_impl(std::move(__a), std::move(__x._M_impl)) - { } - - - _List_base(_Node_alloc_type&& __a) - : _M_impl(std::move(__a)) - { } - - void - _M_move_nodes(_List_base&& __x) - { _M_impl._M_node._M_move_nodes(std::move(__x._M_impl._M_node)); } - - - - ~_List_base() noexcept - { _M_clear(); } - - void - _M_clear() noexcept; - - void - _M_init() noexcept - { this->_M_impl._M_node._M_init(); } - }; -# 555 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - template > - class list : protected _List_base<_Tp, _Alloc> - { -# 568 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - static_assert(is_same::type, _Tp>::value, - "std::list must have a non-const, non-volatile value_type"); - - - - - - - typedef _List_base<_Tp, _Alloc> _Base; - typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; - typedef typename _Base::_Tp_alloc_traits _Tp_alloc_traits; - typedef typename _Base::_Node_alloc_type _Node_alloc_type; - typedef typename _Base::_Node_alloc_traits _Node_alloc_traits; - - public: - typedef _Tp value_type; - typedef typename _Tp_alloc_traits::pointer pointer; - typedef typename _Tp_alloc_traits::const_pointer const_pointer; - typedef typename _Tp_alloc_traits::reference reference; - typedef typename _Tp_alloc_traits::const_reference const_reference; - typedef _List_iterator<_Tp> iterator; - typedef _List_const_iterator<_Tp> const_iterator; - typedef std::reverse_iterator const_reverse_iterator; - typedef std::reverse_iterator reverse_iterator; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef _Alloc allocator_type; - - protected: - - - typedef _List_node<_Tp> _Node; - - using _Base::_M_impl; - using _Base::_M_put_node; - using _Base::_M_get_node; - using _Base::_M_get_Node_allocator; -# 630 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - template - _Node* - _M_create_node(_Args&&... __args) - { - auto __p = this->_M_get_node(); - auto& __alloc = _M_get_Node_allocator(); - __allocated_ptr<_Node_alloc_type> __guard{__alloc, __p}; - _Node_alloc_traits::construct(__alloc, __p->_M_valptr(), - std::forward<_Args>(__args)...); - __guard = nullptr; - return __p; - } - - - - static size_t - _S_distance(const_iterator __first, const_iterator __last) - { return std::distance(__first, __last); } - - - size_t - _M_node_count() const - { return this->_M_get_size(); } -# 665 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - public: - - - - - - - - list() = default; -# 682 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - explicit - list(const allocator_type& __a) noexcept - : _Base(_Node_alloc_type(__a)) { } -# 695 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - explicit - list(size_type __n, const allocator_type& __a = allocator_type()) - : _Base(_Node_alloc_type(__a)) - { _M_default_initialize(__n); } -# 708 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - list(size_type __n, const value_type& __value, - const allocator_type& __a = allocator_type()) - : _Base(_Node_alloc_type(__a)) - { _M_fill_initialize(__n, __value); } -# 735 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - list(const list& __x) - : _Base(_Node_alloc_traits:: - _S_select_on_copy(__x._M_get_Node_allocator())) - { _M_initialize_dispatch(__x.begin(), __x.end(), __false_type()); } -# 748 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - list(list&&) = default; -# 758 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - list(initializer_list __l, - const allocator_type& __a = allocator_type()) - : _Base(_Node_alloc_type(__a)) - { _M_initialize_dispatch(__l.begin(), __l.end(), __false_type()); } - - list(const list& __x, const allocator_type& __a) - : _Base(_Node_alloc_type(__a)) - { _M_initialize_dispatch(__x.begin(), __x.end(), __false_type()); } - - private: - list(list&& __x, const allocator_type& __a, true_type) noexcept - : _Base(_Node_alloc_type(__a), std::move(__x)) - { } - - list(list&& __x, const allocator_type& __a, false_type) - : _Base(_Node_alloc_type(__a)) - { - if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator()) - this->_M_move_nodes(std::move(__x)); - else - insert(begin(), std::__make_move_if_noexcept_iterator(__x.begin()), - std::__make_move_if_noexcept_iterator(__x.end())); - } - - public: - list(list&& __x, const allocator_type& __a) - noexcept(_Node_alloc_traits::_S_always_equal()) - : list(std::move(__x), __a, - typename _Node_alloc_traits::is_always_equal{}) - { } -# 801 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - template> - list(_InputIterator __first, _InputIterator __last, - const allocator_type& __a = allocator_type()) - : _Base(_Node_alloc_type(__a)) - { _M_initialize_dispatch(__first, __last, __false_type()); } -# 827 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - ~list() = default; -# 838 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - list& - operator=(const list& __x); -# 852 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - list& - operator=(list&& __x) - noexcept(_Node_alloc_traits::_S_nothrow_move()) - { - constexpr bool __move_storage = - _Node_alloc_traits::_S_propagate_on_move_assign() - || _Node_alloc_traits::_S_always_equal(); - _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); - return *this; - } -# 870 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - list& - operator=(initializer_list __l) - { - this->assign(__l.begin(), __l.end()); - return *this; - } -# 888 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - assign(size_type __n, const value_type& __val) - { _M_fill_assign(__n, __val); } -# 905 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - template> - void - assign(_InputIterator __first, _InputIterator __last) - { _M_assign_dispatch(__first, __last, __false_type()); } -# 929 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - assign(initializer_list __l) - { this->_M_assign_dispatch(__l.begin(), __l.end(), __false_type()); } - - - - allocator_type - get_allocator() const noexcept - { return allocator_type(_Base::_M_get_Node_allocator()); } - - - - - - - iterator - begin() noexcept - { return iterator(this->_M_impl._M_node._M_next); } - - - - - - - const_iterator - begin() const noexcept - { return const_iterator(this->_M_impl._M_node._M_next); } - - - - - - - iterator - end() noexcept - { return iterator(&this->_M_impl._M_node); } - - - - - - - const_iterator - end() const noexcept - { return const_iterator(&this->_M_impl._M_node); } - - - - - - - reverse_iterator - rbegin() noexcept - { return reverse_iterator(end()); } - - - - - - - const_reverse_iterator - rbegin() const noexcept - { return const_reverse_iterator(end()); } - - - - - - - reverse_iterator - rend() noexcept - { return reverse_iterator(begin()); } - - - - - - - const_reverse_iterator - rend() const noexcept - { return const_reverse_iterator(begin()); } - - - - - - - - const_iterator - cbegin() const noexcept - { return const_iterator(this->_M_impl._M_node._M_next); } - - - - - - - const_iterator - cend() const noexcept - { return const_iterator(&this->_M_impl._M_node); } - - - - - - - const_reverse_iterator - crbegin() const noexcept - { return const_reverse_iterator(end()); } - - - - - - - const_reverse_iterator - crend() const noexcept - { return const_reverse_iterator(begin()); } - - - - - - - - bool - empty() const noexcept - { return this->_M_impl._M_node._M_next == &this->_M_impl._M_node; } - - - size_type - size() const noexcept - { return _M_node_count(); } - - - size_type - max_size() const noexcept - { return _Node_alloc_traits::max_size(_M_get_Node_allocator()); } -# 1078 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - resize(size_type __new_size); -# 1091 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - resize(size_type __new_size, const value_type& __x); -# 1113 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - reference - front() noexcept - { return *begin(); } - - - - - - const_reference - front() const noexcept - { return *begin(); } - - - - - - reference - back() noexcept - { - iterator __tmp = end(); - --__tmp; - return *__tmp; - } - - - - - - const_reference - back() const noexcept - { - const_iterator __tmp = end(); - --__tmp; - return *__tmp; - } -# 1160 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - push_front(const value_type& __x) - { this->_M_insert(begin(), __x); } - - - void - push_front(value_type&& __x) - { this->_M_insert(begin(), std::move(__x)); } - - template - - - - void - - emplace_front(_Args&&... __args) - { - this->_M_insert(begin(), std::forward<_Args>(__args)...); - - - - } -# 1196 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - pop_front() noexcept - { this->_M_erase(begin()); } -# 1210 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - push_back(const value_type& __x) - { this->_M_insert(end(), __x); } - - - void - push_back(value_type&& __x) - { this->_M_insert(end(), std::move(__x)); } - - template - - - - void - - emplace_back(_Args&&... __args) - { - this->_M_insert(end(), std::forward<_Args>(__args)...); - - - - } -# 1245 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - pop_back() noexcept - { this->_M_erase(iterator(this->_M_impl._M_node._M_prev)); } -# 1262 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - template - iterator - emplace(const_iterator __position, _Args&&... __args); -# 1277 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - iterator - insert(const_iterator __position, const value_type& __x); -# 1307 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - iterator - insert(const_iterator __position, value_type&& __x) - { return emplace(__position, std::move(__x)); } -# 1326 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - iterator - insert(const_iterator __p, initializer_list __l) - { return this->insert(__p, __l.begin(), __l.end()); } -# 1346 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - iterator - insert(const_iterator __position, size_type __n, const value_type& __x); -# 1385 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - template> - iterator - insert(const_iterator __position, _InputIterator __first, - _InputIterator __last); -# 1429 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - iterator - - erase(const_iterator __position) noexcept; -# 1454 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - iterator - - erase(const_iterator __first, const_iterator __last) noexcept - - - - { - while (__first != __last) - __first = erase(__first); - return __last._M_const_cast(); - } -# 1477 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - swap(list& __x) noexcept - { - __detail::_List_node_base::swap(this->_M_impl._M_node, - __x._M_impl._M_node); - - size_t __xsize = __x._M_get_size(); - __x._M_set_size(this->_M_get_size()); - this->_M_set_size(__xsize); - - _Node_alloc_traits::_S_on_swap(this->_M_get_Node_allocator(), - __x._M_get_Node_allocator()); - } - - - - - - - - void - clear() noexcept - { - _Base::_M_clear(); - _Base::_M_init(); - } -# 1516 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - - splice(const_iterator __position, list&& __x) noexcept - - - - { - if (!__x.empty()) - { - _M_check_equal_allocators(__x); - - this->_M_transfer(__position._M_const_cast(), - __x.begin(), __x.end()); - - this->_M_inc_size(__x._M_get_size()); - __x._M_set_size(0); - } - } - - - void - splice(const_iterator __position, list& __x) noexcept - { splice(__position, std::move(__x)); } -# 1552 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - splice(const_iterator __position, list&& __x, const_iterator __i) noexcept -# 1567 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - { - iterator __j = __i._M_const_cast(); - ++__j; - if (__position == __i || __position == __j) - return; - - if (this != std::__addressof(__x)) - _M_check_equal_allocators(__x); - - this->_M_transfer(__position._M_const_cast(), - __i._M_const_cast(), __j); - - this->_M_inc_size(1); - __x._M_dec_size(1); - } -# 1594 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - splice(const_iterator __position, list& __x, const_iterator __i) noexcept - { splice(__position, std::move(__x), __i); } -# 1613 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - splice(const_iterator __position, list&& __x, const_iterator __first, - const_iterator __last) noexcept -# 1633 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - { - if (__first != __last) - { - if (this != std::__addressof(__x)) - _M_check_equal_allocators(__x); - - size_t __n = _S_distance(__first, __last); - this->_M_inc_size(__n); - __x._M_dec_size(__n); - - this->_M_transfer(__position._M_const_cast(), - __first._M_const_cast(), - __last._M_const_cast()); - } - } -# 1663 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - splice(const_iterator __position, list& __x, const_iterator __first, - const_iterator __last) noexcept - { splice(__position, std::move(__x), __first, __last); } - - - private: - - - - - - - typedef void __remove_return_type; - - - public: -# 1692 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - - __remove_return_type - remove(const _Tp& __value); -# 1707 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - template - __remove_return_type - remove_if(_Predicate); -# 1721 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - - __remove_return_type - unique(); -# 1737 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - template - __remove_return_type - unique(_BinaryPredicate); -# 1753 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - merge(list&& __x); - - void - merge(list& __x) - { merge(std::move(__x)); } -# 1778 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - template - void - merge(list&& __x, _StrictWeakOrdering __comp); - - template - void - merge(list& __x, _StrictWeakOrdering __comp) - { merge(std::move(__x), __comp); } -# 1797 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - void - reverse() noexcept - { this->_M_impl._M_node._M_reverse(); } - - - - - - - - void - sort(); - - - - - - - - template - void - sort(_StrictWeakOrdering); - - protected: - - - - - - - template - void - _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) - { _M_fill_initialize(static_cast(__n), __x); } - - - template - void - _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, - __false_type) - { - for (; __first != __last; ++__first) - - emplace_back(*__first); - - - - } - - - - void - _M_fill_initialize(size_type __n, const value_type& __x) - { - for (; __n; --__n) - push_back(__x); - } - - - - void - _M_default_initialize(size_type __n) - { - for (; __n; --__n) - emplace_back(); - } - - - void - _M_default_append(size_type __n); -# 1875 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - template - void - _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) - { _M_fill_assign(__n, __val); } - - - template - void - _M_assign_dispatch(_InputIterator __first, _InputIterator __last, - __false_type); - - - - void - _M_fill_assign(size_type __n, const value_type& __val); - - - - void - _M_transfer(iterator __position, iterator __first, iterator __last) - { __position._M_node->_M_transfer(__first._M_node, __last._M_node); } -# 1907 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - template - void - _M_insert(iterator __position, _Args&&... __args) - { - _Node* __tmp = _M_create_node(std::forward<_Args>(__args)...); - __tmp->_M_hook(__position._M_node); - this->_M_inc_size(1); - } - - - - void - _M_erase(iterator __position) noexcept - { - this->_M_dec_size(1); - __position._M_node->_M_unhook(); - _Node* __n = static_cast<_Node*>(__position._M_node); - - _Node_alloc_traits::destroy(_M_get_Node_allocator(), __n->_M_valptr()); - - - - - _M_put_node(__n); - } - - - void - _M_check_equal_allocators(list& __x) noexcept - { - if (std::__alloc_neq:: - _S_do_it(_M_get_Node_allocator(), __x._M_get_Node_allocator())) - __builtin_abort(); - } - - - const_iterator - _M_resize_pos(size_type& __new_size) const; - - - void - _M_move_assign(list&& __x, true_type) noexcept - { - this->_M_clear(); - this->_M_move_nodes(std::move(__x)); - std::__alloc_on_move(this->_M_get_Node_allocator(), - __x._M_get_Node_allocator()); - } - - void - _M_move_assign(list&& __x, false_type) - { - if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator()) - _M_move_assign(std::move(__x), true_type{}); - else - - - _M_assign_dispatch(std::make_move_iterator(__x.begin()), - std::make_move_iterator(__x.end()), - __false_type{}); - } - - }; -# 1981 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 -} -# 1993 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - template - inline bool - operator==(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) - { - - if (__x.size() != __y.size()) - return false; - - - typedef typename list<_Tp, _Alloc>::const_iterator const_iterator; - const_iterator __end1 = __x.end(); - const_iterator __end2 = __y.end(); - - const_iterator __i1 = __x.begin(); - const_iterator __i2 = __y.begin(); - while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) - { - ++__i1; - ++__i2; - } - return __i1 == __end1 && __i2 == __end2; - } -# 2048 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_list.h" 3 - template - inline bool - operator<(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) - { return std::lexicographical_compare(__x.begin(), __x.end(), - __y.begin(), __y.end()); } - - - template - inline bool - operator!=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) - { return !(__x == __y); } - - - template - inline bool - operator>(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) - { return __y < __x; } - - - template - inline bool - operator<=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) - { return !(__y < __x); } - - - template - inline bool - operator>=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) - { return !(__x < __y); } - - - - template - inline void - swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y) - noexcept(noexcept(__x.swap(__y))) - { __x.swap(__y); } - - - - - - - template - inline ptrdiff_t - __distance(std::_List_iterator<_Tp> __first, - std::_List_iterator<_Tp> __last, - input_iterator_tag __tag) - { - typedef std::_List_const_iterator<_Tp> _CIter; - return std::__distance(_CIter(__first), _CIter(__last), __tag); - } - - template - inline ptrdiff_t - __distance(std::_List_const_iterator<_Tp> __first, - std::_List_const_iterator<_Tp> __last, - input_iterator_tag) - { - typedef __detail::_List_node_header _Sentinel; - std::_List_const_iterator<_Tp> __beyond = __last; - ++__beyond; - const bool __whole = __first == __beyond; - if (__builtin_constant_p (__whole) && __whole) - return static_cast(__last._M_node)->_M_size; - - ptrdiff_t __n = 0; - while (__first != __last) - { - ++__first; - ++__n; - } - return __n; - } - - - -} -# 64 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/list" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/list.tcc" 1 3 -# 59 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/list.tcc" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - template - void - _List_base<_Tp, _Alloc>:: - _M_clear() noexcept - { - typedef _List_node<_Tp> _Node; - __detail::_List_node_base* __cur = _M_impl._M_node._M_next; - while (__cur != &_M_impl._M_node) - { - _Node* __tmp = static_cast<_Node*>(__cur); - __cur = __tmp->_M_next; - _Tp* __val = __tmp->_M_valptr(); - - _Node_alloc_traits::destroy(_M_get_Node_allocator(), __val); - - - - _M_put_node(__tmp); - } - } - - - template - template - typename list<_Tp, _Alloc>::iterator - list<_Tp, _Alloc>:: - emplace(const_iterator __position, _Args&&... __args) - { - _Node* __tmp = _M_create_node(std::forward<_Args>(__args)...); - __tmp->_M_hook(__position._M_const_cast()._M_node); - this->_M_inc_size(1); - return iterator(__tmp); - } - - - template - typename list<_Tp, _Alloc>::iterator - list<_Tp, _Alloc>:: - - insert(const_iterator __position, const value_type& __x) - - - - { - _Node* __tmp = _M_create_node(__x); - __tmp->_M_hook(__position._M_const_cast()._M_node); - this->_M_inc_size(1); - return iterator(__tmp); - } - - - template - typename list<_Tp, _Alloc>::iterator - list<_Tp, _Alloc>:: - insert(const_iterator __position, size_type __n, const value_type& __x) - { - if (__n) - { - list __tmp(__n, __x, get_allocator()); - iterator __it = __tmp.begin(); - splice(__position, __tmp); - return __it; - } - return __position._M_const_cast(); - } - - template - template - typename list<_Tp, _Alloc>::iterator - list<_Tp, _Alloc>:: - insert(const_iterator __position, _InputIterator __first, - _InputIterator __last) - { - list __tmp(__first, __last, get_allocator()); - if (!__tmp.empty()) - { - iterator __it = __tmp.begin(); - splice(__position, __tmp); - return __it; - } - return __position._M_const_cast(); - } - - - template - typename list<_Tp, _Alloc>::iterator - list<_Tp, _Alloc>:: - - erase(const_iterator __position) noexcept - - - - { - iterator __ret = iterator(__position._M_node->_M_next); - _M_erase(__position._M_const_cast()); - return __ret; - } -# 173 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/list.tcc" 3 - template - typename list<_Tp, _Alloc>::const_iterator - list<_Tp, _Alloc>:: - _M_resize_pos(size_type& __new_size) const - { - const_iterator __i; - - const size_type __len = size(); - if (__new_size < __len) - { - if (__new_size <= __len / 2) - { - __i = begin(); - std::advance(__i, __new_size); - } - else - { - __i = end(); - ptrdiff_t __num_erase = __len - __new_size; - std::advance(__i, -__num_erase); - } - __new_size = 0; - return __i; - } - else - __i = end(); - - - - - - __new_size -= __len; - return __i; - } - - - template - void - list<_Tp, _Alloc>:: - _M_default_append(size_type __n) - { - size_type __i = 0; - try - { - for (; __i < __n; ++__i) - emplace_back(); - } - catch(...) - { - for (; __i; --__i) - pop_back(); - throw; - } - } - - template - void - list<_Tp, _Alloc>:: - resize(size_type __new_size) - { - const_iterator __i = _M_resize_pos(__new_size); - if (__new_size) - _M_default_append(__new_size); - else - erase(__i, end()); - } - - template - void - list<_Tp, _Alloc>:: - resize(size_type __new_size, const value_type& __x) - { - const_iterator __i = _M_resize_pos(__new_size); - if (__new_size) - insert(end(), __new_size, __x); - else - erase(__i, end()); - } -# 265 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/list.tcc" 3 - template - list<_Tp, _Alloc>& - list<_Tp, _Alloc>:: - operator=(const list& __x) - { - if (this != std::__addressof(__x)) - { - - if (_Node_alloc_traits::_S_propagate_on_copy_assign()) - { - auto& __this_alloc = this->_M_get_Node_allocator(); - auto& __that_alloc = __x._M_get_Node_allocator(); - if (!_Node_alloc_traits::_S_always_equal() - && __this_alloc != __that_alloc) - { - - clear(); - } - std::__alloc_on_copy(__this_alloc, __that_alloc); - } - - _M_assign_dispatch(__x.begin(), __x.end(), __false_type()); - } - return *this; - } - - template - void - list<_Tp, _Alloc>:: - _M_fill_assign(size_type __n, const value_type& __val) - { - iterator __i = begin(); - for (; __i != end() && __n > 0; ++__i, --__n) - *__i = __val; - if (__n > 0) - insert(end(), __n, __val); - else - erase(__i, end()); - } - - template - template - void - list<_Tp, _Alloc>:: - _M_assign_dispatch(_InputIterator __first2, _InputIterator __last2, - __false_type) - { - iterator __first1 = begin(); - iterator __last1 = end(); - for (; __first1 != __last1 && __first2 != __last2; - ++__first1, (void)++__first2) - *__first1 = *__first2; - if (__first2 == __last2) - erase(__first1, __last1); - else - insert(__last1, __first2, __last2); - } - - - - - - - - template - typename list<_Tp, _Alloc>::__remove_return_type - list<_Tp, _Alloc>:: - remove(const value_type& __value) - { - size_type __removed __attribute__((__unused__)) = 0; - iterator __first = begin(); - iterator __last = end(); - iterator __extra = __last; - while (__first != __last) - { - iterator __next = __first; - ++__next; - if (*__first == __value) - { - - - - if (std::__addressof(*__first) != std::__addressof(__value)) - { - _M_erase(__first); - ; - } - else - __extra = __first; - } - __first = __next; - } - if (__extra != __last) - { - _M_erase(__extra); - ; - } - return ; - } - - template - typename list<_Tp, _Alloc>::__remove_return_type - list<_Tp, _Alloc>:: - unique() - { - iterator __first = begin(); - iterator __last = end(); - if (__first == __last) - return ; - size_type __removed __attribute__((__unused__)) = 0; - iterator __next = __first; - while (++__next != __last) - { - if (*__first == *__next) - { - _M_erase(__next); - ; - } - else - __first = __next; - __next = __first; - } - return ; - } - - template - void - list<_Tp, _Alloc>:: - - merge(list&& __x) - - - - { - - - if (this != std::__addressof(__x)) - { - _M_check_equal_allocators(__x); - - iterator __first1 = begin(); - iterator __last1 = end(); - iterator __first2 = __x.begin(); - iterator __last2 = __x.end(); - const size_t __orig_size = __x.size(); - try { - while (__first1 != __last1 && __first2 != __last2) - if (*__first2 < *__first1) - { - iterator __next = __first2; - _M_transfer(__first1, __first2, ++__next); - __first2 = __next; - } - else - ++__first1; - if (__first2 != __last2) - _M_transfer(__last1, __first2, __last2); - - this->_M_inc_size(__x._M_get_size()); - __x._M_set_size(0); - } - catch(...) - { - const size_t __dist = std::distance(__first2, __last2); - this->_M_inc_size(__orig_size - __dist); - __x._M_set_size(__dist); - throw; - } - } - } - - template - template - void - list<_Tp, _Alloc>:: - - merge(list&& __x, _StrictWeakOrdering __comp) - - - - { - - - if (this != std::__addressof(__x)) - { - _M_check_equal_allocators(__x); - - iterator __first1 = begin(); - iterator __last1 = end(); - iterator __first2 = __x.begin(); - iterator __last2 = __x.end(); - const size_t __orig_size = __x.size(); - try - { - while (__first1 != __last1 && __first2 != __last2) - if (__comp(*__first2, *__first1)) - { - iterator __next = __first2; - _M_transfer(__first1, __first2, ++__next); - __first2 = __next; - } - else - ++__first1; - if (__first2 != __last2) - _M_transfer(__last1, __first2, __last2); - - this->_M_inc_size(__x._M_get_size()); - __x._M_set_size(0); - } - catch(...) - { - const size_t __dist = std::distance(__first2, __last2); - this->_M_inc_size(__orig_size - __dist); - __x._M_set_size(__dist); - throw; - } - } - } - - template - void - list<_Tp, _Alloc>:: - sort() - { - - if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node - && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) - { - list __carry; - list __tmp[64]; - list * __fill = __tmp; - list * __counter; - try - { - do - { - __carry.splice(__carry.begin(), *this, begin()); - - for(__counter = __tmp; - __counter != __fill && !__counter->empty(); - ++__counter) - { - __counter->merge(__carry); - __carry.swap(*__counter); - } - __carry.swap(*__counter); - if (__counter == __fill) - ++__fill; - } - while ( !empty() ); - - for (__counter = __tmp + 1; __counter != __fill; ++__counter) - __counter->merge(*(__counter - 1)); - swap( *(__fill - 1) ); - } - catch(...) - { - this->splice(this->end(), __carry); - for (int __i = 0; __i < sizeof(__tmp)/sizeof(__tmp[0]); ++__i) - this->splice(this->end(), __tmp[__i]); - throw; - } - } - } - - template - template - typename list<_Tp, _Alloc>::__remove_return_type - list<_Tp, _Alloc>:: - remove_if(_Predicate __pred) - { - size_type __removed __attribute__((__unused__)) = 0; - iterator __first = begin(); - iterator __last = end(); - while (__first != __last) - { - iterator __next = __first; - ++__next; - if (__pred(*__first)) - { - _M_erase(__first); - ; - } - __first = __next; - } - return ; - } - - template - template - typename list<_Tp, _Alloc>::__remove_return_type - list<_Tp, _Alloc>:: - unique(_BinaryPredicate __binary_pred) - { - iterator __first = begin(); - iterator __last = end(); - if (__first == __last) - return ; - size_type __removed __attribute__((__unused__)) = 0; - iterator __next = __first; - while (++__next != __last) - { - if (__binary_pred(*__first, *__next)) - { - _M_erase(__next); - ; - } - else - __first = __next; - __next = __first; - } - return ; - } - - - - template - template - void - list<_Tp, _Alloc>:: - sort(_StrictWeakOrdering __comp) - { - - if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node - && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) - { - list __carry; - list __tmp[64]; - list * __fill = __tmp; - list * __counter; - try - { - do - { - __carry.splice(__carry.begin(), *this, begin()); - - for(__counter = __tmp; - __counter != __fill && !__counter->empty(); - ++__counter) - { - __counter->merge(__carry, __comp); - __carry.swap(*__counter); - } - __carry.swap(*__counter); - if (__counter == __fill) - ++__fill; - } - while ( !empty() ); - - for (__counter = __tmp + 1; __counter != __fill; ++__counter) - __counter->merge(*(__counter - 1), __comp); - swap(*(__fill - 1)); - } - catch(...) - { - this->splice(this->end(), __carry); - for (int __i = 0; __i < sizeof(__tmp)/sizeof(__tmp[0]); ++__i) - this->splice(this->end(), __tmp[__i]); - throw; - } - } - } - - - -} -# 65 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/list" 2 3 -# 33 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Matrix.hpp" 2 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/climits" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/climits" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/climits" 3 - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include-fixed/limits.h" 1 3 4 -# 43 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/climits" 2 3 -# 34 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Matrix.hpp" 2 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/algorithm" 1 3 -# 58 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/algorithm" 3 - -# 59 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/algorithm" 3 - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 1 3 -# 59 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdlib" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdlib" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstdlib" 3 -# 60 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/algorithmfwd.h" 1 3 -# 33 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/algorithmfwd.h" 3 - -# 34 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/algorithmfwd.h" 3 -# 42 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/algorithmfwd.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 199 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/algorithmfwd.h" 3 - template - - bool - all_of(_IIter, _IIter, _Predicate); - - template - - bool - any_of(_IIter, _IIter, _Predicate); - - - template - - bool - binary_search(_FIter, _FIter, const _Tp&); - - template - - bool - binary_search(_FIter, _FIter, const _Tp&, _Compare); -# 232 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/algorithmfwd.h" 3 - template - - _OIter - copy(_IIter, _IIter, _OIter); - - template - - _BIter2 - copy_backward(_BIter1, _BIter1, _BIter2); - - - template - - _OIter - copy_if(_IIter, _IIter, _OIter, _Predicate); - - template - - _OIter - copy_n(_IIter, _Size, _OIter); - - - - - - template - - pair<_FIter, _FIter> - equal_range(_FIter, _FIter, const _Tp&); - - template - - pair<_FIter, _FIter> - equal_range(_FIter, _FIter, const _Tp&, _Compare); - - template - - void - fill(_FIter, _FIter, const _Tp&); - - template - - _OIter - fill_n(_OIter, _Size, const _Tp&); - - - - template - - _FIter1 - find_end(_FIter1, _FIter1, _FIter2, _FIter2); - - template - - _FIter1 - find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); - - - - - - template - - _IIter - find_if_not(_IIter, _IIter, _Predicate); - - - - - - - template - - bool - includes(_IIter1, _IIter1, _IIter2, _IIter2); - - template - - bool - includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); - - template - void - inplace_merge(_BIter, _BIter, _BIter); - - template - void - inplace_merge(_BIter, _BIter, _BIter, _Compare); - - - template - - bool - is_heap(_RAIter, _RAIter); - - template - - bool - is_heap(_RAIter, _RAIter, _Compare); - - template - - _RAIter - is_heap_until(_RAIter, _RAIter); - - template - - _RAIter - is_heap_until(_RAIter, _RAIter, _Compare); - - template - - bool - is_partitioned(_IIter, _IIter, _Predicate); - - template - - bool - is_permutation(_FIter1, _FIter1, _FIter2); - - template - - bool - is_permutation(_FIter1, _FIter1, _FIter2, _BinaryPredicate); - - template - - bool - is_sorted(_FIter, _FIter); - - template - - bool - is_sorted(_FIter, _FIter, _Compare); - - template - - _FIter - is_sorted_until(_FIter, _FIter); - - template - - _FIter - is_sorted_until(_FIter, _FIter, _Compare); - - - template - - void - iter_swap(_FIter1, _FIter2); - - template - - _FIter - lower_bound(_FIter, _FIter, const _Tp&); - - template - - _FIter - lower_bound(_FIter, _FIter, const _Tp&, _Compare); - - template - - void - make_heap(_RAIter, _RAIter); - - template - - void - make_heap(_RAIter, _RAIter, _Compare); - - template - constexpr - const _Tp& - max(const _Tp&, const _Tp&); - - template - constexpr - const _Tp& - max(const _Tp&, const _Tp&, _Compare); - - - - - template - constexpr - const _Tp& - min(const _Tp&, const _Tp&); - - template - constexpr - const _Tp& - min(const _Tp&, const _Tp&, _Compare); - - - - - template - constexpr - pair - minmax(const _Tp&, const _Tp&); - - template - constexpr - pair - minmax(const _Tp&, const _Tp&, _Compare); - - template - constexpr - pair<_FIter, _FIter> - minmax_element(_FIter, _FIter); - - template - constexpr - pair<_FIter, _FIter> - minmax_element(_FIter, _FIter, _Compare); - - template - constexpr - _Tp - min(initializer_list<_Tp>); - - template - constexpr - _Tp - min(initializer_list<_Tp>, _Compare); - - template - constexpr - _Tp - max(initializer_list<_Tp>); - - template - constexpr - _Tp - max(initializer_list<_Tp>, _Compare); - - template - constexpr - pair<_Tp, _Tp> - minmax(initializer_list<_Tp>); - - template - constexpr - pair<_Tp, _Tp> - minmax(initializer_list<_Tp>, _Compare); - - - - - template - - bool - next_permutation(_BIter, _BIter); - - template - - bool - next_permutation(_BIter, _BIter, _Compare); - - - template - - bool - none_of(_IIter, _IIter, _Predicate); - - - - - - template - - _RAIter - partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter); - - template - - _RAIter - partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare); - - - - - template - - pair<_OIter1, _OIter2> - partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate); - - template - - _FIter - partition_point(_FIter, _FIter, _Predicate); - - - template - - void - pop_heap(_RAIter, _RAIter); - - template - - void - pop_heap(_RAIter, _RAIter, _Compare); - - template - - bool - prev_permutation(_BIter, _BIter); - - template - - bool - prev_permutation(_BIter, _BIter, _Compare); - - template - - void - push_heap(_RAIter, _RAIter); - - template - - void - push_heap(_RAIter, _RAIter, _Compare); - - - - template - - _FIter - remove(_FIter, _FIter, const _Tp&); - - template - - _FIter - remove_if(_FIter, _FIter, _Predicate); - - template - - _OIter - remove_copy(_IIter, _IIter, _OIter, const _Tp&); - - template - - _OIter - remove_copy_if(_IIter, _IIter, _OIter, _Predicate); - - - - template - - _OIter - replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&); - - template - - _OIter - replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&); - - - - template - - void - reverse(_BIter, _BIter); - - template - - _OIter - reverse_copy(_BIter, _BIter, _OIter); - - inline namespace _V2 - { - template - - _FIter - rotate(_FIter, _FIter, _FIter); - } - - template - - _OIter - rotate_copy(_FIter, _FIter, _FIter, _OIter); -# 625 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/algorithmfwd.h" 3 - template - void - shuffle(_RAIter, _RAIter, _UGenerator&&); - - - template - - void - sort_heap(_RAIter, _RAIter); - - template - - void - sort_heap(_RAIter, _RAIter, _Compare); - - template - _BIter - stable_partition(_BIter, _BIter, _Predicate); -# 658 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/algorithmfwd.h" 3 - template - - _FIter2 - swap_ranges(_FIter1, _FIter1, _FIter2); - - - - template - - _FIter - unique(_FIter, _FIter); - - template - - _FIter - unique(_FIter, _FIter, _BinaryPredicate); - - - - template - - _FIter - upper_bound(_FIter, _FIter, const _Tp&); - - template - - _FIter - upper_bound(_FIter, _FIter, const _Tp&, _Compare); - - - - template - - _FIter - adjacent_find(_FIter, _FIter); - - template - - _FIter - adjacent_find(_FIter, _FIter, _BinaryPredicate); - - template - - typename iterator_traits<_IIter>::difference_type - count(_IIter, _IIter, const _Tp&); - - template - - typename iterator_traits<_IIter>::difference_type - count_if(_IIter, _IIter, _Predicate); - - template - - bool - equal(_IIter1, _IIter1, _IIter2); - - template - - bool - equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate); - - template - - _IIter - find(_IIter, _IIter, const _Tp&); - - template - - _FIter1 - find_first_of(_FIter1, _FIter1, _FIter2, _FIter2); - - template - - _FIter1 - find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); - - template - - _IIter - find_if(_IIter, _IIter, _Predicate); - - template - - _Funct - for_each(_IIter, _IIter, _Funct); - - template - - void - generate(_FIter, _FIter, _Generator); - - template - - _OIter - generate_n(_OIter, _Size, _Generator); - - template - - bool - lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2); - - template - - bool - lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); - - template - constexpr - _FIter - max_element(_FIter, _FIter); - - template - constexpr - _FIter - max_element(_FIter, _FIter, _Compare); - - template - - _OIter - merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); - - template - - _OIter - merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); - - template - constexpr - _FIter - min_element(_FIter, _FIter); - - template - constexpr - _FIter - min_element(_FIter, _FIter, _Compare); - - template - - pair<_IIter1, _IIter2> - mismatch(_IIter1, _IIter1, _IIter2); - - template - - pair<_IIter1, _IIter2> - mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate); - - template - - void - nth_element(_RAIter, _RAIter, _RAIter); - - template - - void - nth_element(_RAIter, _RAIter, _RAIter, _Compare); - - template - - void - partial_sort(_RAIter, _RAIter, _RAIter); - - template - - void - partial_sort(_RAIter, _RAIter, _RAIter, _Compare); - - template - - _BIter - partition(_BIter, _BIter, _Predicate); - - template - void - random_shuffle(_RAIter, _RAIter); - - template - void - random_shuffle(_RAIter, _RAIter, - - _Generator&&); - - - - - template - - void - replace(_FIter, _FIter, const _Tp&, const _Tp&); - - template - - void - replace_if(_FIter, _FIter, _Predicate, const _Tp&); - - template - - _FIter1 - search(_FIter1, _FIter1, _FIter2, _FIter2); - - template - - _FIter1 - search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); - - template - - _FIter - search_n(_FIter, _FIter, _Size, const _Tp&); - - template - - _FIter - search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate); - - template - - _OIter - set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); - - template - - _OIter - set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); - - template - - _OIter - set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); - - template - - _OIter - set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); - - template - - _OIter - set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); - - template - - _OIter - set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, - _OIter, _Compare); - - template - - _OIter - set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); - - template - - _OIter - set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); - - template - - void - sort(_RAIter, _RAIter); - - template - - void - sort(_RAIter, _RAIter, _Compare); - - template - void - stable_sort(_RAIter, _RAIter); - - template - void - stable_sort(_RAIter, _RAIter, _Compare); - - template - - _OIter - transform(_IIter, _IIter, _OIter, _UnaryOperation); - - template - - _OIter - transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation); - - template - - _OIter - unique_copy(_IIter, _IIter, _OIter); - - template - - _OIter - unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate); - - - -} -# 61 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_heap.h" 1 3 -# 62 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_heap.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - - - - - template - - _Distance - __is_heap_until(_RandomAccessIterator __first, _Distance __n, - _Compare& __comp) - { - _Distance __parent = 0; - for (_Distance __child = 1; __child < __n; ++__child) - { - if (__comp(__first + __parent, __first + __child)) - return __child; - if ((__child & 1) == 0) - ++__parent; - } - return __n; - } - - - - template - - inline bool - __is_heap(_RandomAccessIterator __first, _Distance __n) - { - __gnu_cxx::__ops::_Iter_less_iter __comp; - return std::__is_heap_until(__first, __n, __comp) == __n; - } - - template - - inline bool - __is_heap(_RandomAccessIterator __first, _Compare __comp, _Distance __n) - { - typedef __decltype(__comp) _Cmp; - __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); - return std::__is_heap_until(__first, __n, __cmp) == __n; - } - - template - - inline bool - __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) - { return std::__is_heap(__first, std::distance(__first, __last)); } - - template - - inline bool - __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare __comp) - { - return std::__is_heap(__first, std::move(__comp), - std::distance(__first, __last)); - } - - - - - template - - void - __push_heap(_RandomAccessIterator __first, - _Distance __holeIndex, _Distance __topIndex, _Tp __value, - _Compare& __comp) - { - _Distance __parent = (__holeIndex - 1) / 2; - while (__holeIndex > __topIndex && __comp(__first + __parent, __value)) - { - *(__first + __holeIndex) = std::move(*(__first + __parent)); - __holeIndex = __parent; - __parent = (__holeIndex - 1) / 2; - } - *(__first + __holeIndex) = std::move(__value); - } -# 158 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_heap.h" 3 - template - - inline void - push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) - { - typedef typename iterator_traits<_RandomAccessIterator>::value_type - _ValueType; - typedef typename iterator_traits<_RandomAccessIterator>::difference_type - _DistanceType; - - - - - - ; - ; - ; - - __gnu_cxx::__ops::_Iter_less_val __comp; - _ValueType __value = std::move(*(__last - 1)); - std::__push_heap(__first, _DistanceType((__last - __first) - 1), - _DistanceType(0), std::move(__value), __comp); - } -# 194 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_heap.h" 3 - template - - inline void - push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare __comp) - { - typedef typename iterator_traits<_RandomAccessIterator>::value_type - _ValueType; - typedef typename iterator_traits<_RandomAccessIterator>::difference_type - _DistanceType; - - - - - ; - ; - ; - - __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) - __cmp(std::move(__comp)); - _ValueType __value = std::move(*(__last - 1)); - std::__push_heap(__first, _DistanceType((__last - __first) - 1), - _DistanceType(0), std::move(__value), __cmp); - } - - template - - void - __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, - _Distance __len, _Tp __value, _Compare __comp) - { - const _Distance __topIndex = __holeIndex; - _Distance __secondChild = __holeIndex; - while (__secondChild < (__len - 1) / 2) - { - __secondChild = 2 * (__secondChild + 1); - if (__comp(__first + __secondChild, - __first + (__secondChild - 1))) - __secondChild--; - *(__first + __holeIndex) = std::move(*(__first + __secondChild)); - __holeIndex = __secondChild; - } - if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2) - { - __secondChild = 2 * (__secondChild + 1); - *(__first + __holeIndex) = std::move(*(__first + (__secondChild - 1))) - ; - __holeIndex = __secondChild - 1; - } - __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) - __cmp(std::move(__comp)); - std::__push_heap(__first, __holeIndex, __topIndex, - std::move(__value), __cmp); - } - - template - - inline void - __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _RandomAccessIterator __result, _Compare& __comp) - { - typedef typename iterator_traits<_RandomAccessIterator>::value_type - _ValueType; - typedef typename iterator_traits<_RandomAccessIterator>::difference_type - _DistanceType; - - _ValueType __value = std::move(*__result); - *__result = std::move(*__first); - std::__adjust_heap(__first, _DistanceType(0), - _DistanceType(__last - __first), - std::move(__value), __comp); - } -# 279 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_heap.h" 3 - template - - inline void - pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) - { - - - - - - ; - ; - ; - ; - - if (__last - __first > 1) - { - --__last; - __gnu_cxx::__ops::_Iter_less_iter __comp; - std::__pop_heap(__first, __last, __last, __comp); - } - } -# 313 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_heap.h" 3 - template - - inline void - pop_heap(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp) - { - - - - ; - ; - ; - ; - - if (__last - __first > 1) - { - typedef __decltype(__comp) _Cmp; - __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); - --__last; - std::__pop_heap(__first, __last, __last, __cmp); - } - } - - template - - void - __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare& __comp) - { - typedef typename iterator_traits<_RandomAccessIterator>::value_type - _ValueType; - typedef typename iterator_traits<_RandomAccessIterator>::difference_type - _DistanceType; - - if (__last - __first < 2) - return; - - const _DistanceType __len = __last - __first; - _DistanceType __parent = (__len - 2) / 2; - while (true) - { - _ValueType __value = std::move(*(__first + __parent)); - std::__adjust_heap(__first, __parent, __len, std::move(__value), - __comp); - if (__parent == 0) - return; - __parent--; - } - } -# 371 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_heap.h" 3 - template - - inline void - make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) - { - - - - - - ; - ; - - __gnu_cxx::__ops::_Iter_less_iter __comp; - std::__make_heap(__first, __last, __comp); - } -# 398 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_heap.h" 3 - template - - inline void - make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare __comp) - { - - - - ; - ; - - typedef __decltype(__comp) _Cmp; - __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); - std::__make_heap(__first, __last, __cmp); - } - - template - - void - __sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare& __comp) - { - while (__last - __first > 1) - { - --__last; - std::__pop_heap(__first, __last, __last, __comp); - } - } -# 436 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_heap.h" 3 - template - - inline void - sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) - { - - - - - - ; - ; - ; - - __gnu_cxx::__ops::_Iter_less_iter __comp; - std::__sort_heap(__first, __last, __comp); - } -# 464 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_heap.h" 3 - template - - inline void - sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare __comp) - { - - - - ; - ; - ; - - typedef __decltype(__comp) _Cmp; - __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); - std::__sort_heap(__first, __last, __cmp); - } -# 493 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_heap.h" 3 - template - - inline _RandomAccessIterator - is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last) - { - - - - - - ; - ; - - __gnu_cxx::__ops::_Iter_less_iter __comp; - return __first + - std::__is_heap_until(__first, std::distance(__first, __last), __comp); - } -# 522 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_heap.h" 3 - template - - inline _RandomAccessIterator - is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare __comp) - { - - - - ; - ; - - typedef __decltype(__comp) _Cmp; - __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); - return __first - + std::__is_heap_until(__first, std::distance(__first, __last), __cmp); - } -# 547 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_heap.h" 3 - template - - inline bool - is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) - { return std::is_heap_until(__first, __last) == __last; } -# 561 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_heap.h" 3 - template - - inline bool - is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare __comp) - { - - - - ; - ; - - const auto __dist = std::distance(__first, __last); - typedef __decltype(__comp) _Cmp; - __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); - return std::__is_heap_until(__first, __dist, __cmp) == __dist; - } - - - -} -# 62 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 2 3 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tempbuf.h" 1 3 -# 62 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tempbuf.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - namespace __detail - { - template - inline void - __return_temporary_buffer(_Tp* __p, - size_t __len __attribute__((__unused__))) - { - - ::operator delete(__p, __len * sizeof(_Tp)); - - - - } - } -# 98 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tempbuf.h" 3 - template - pair<_Tp*, ptrdiff_t> - get_temporary_buffer(ptrdiff_t __len) noexcept - { - const ptrdiff_t __max = - __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); - if (__len > __max) - __len = __max; - - while (__len > 0) - { - _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), - std::nothrow)); - if (__tmp != 0) - return std::pair<_Tp*, ptrdiff_t>(__tmp, __len); - __len /= 2; - } - return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0); - } -# 125 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tempbuf.h" 3 - template - inline void - return_temporary_buffer(_Tp* __p) - { ::operator delete(__p); } - - - - - - - template - class _Temporary_buffer - { - - - - public: - typedef _Tp value_type; - typedef value_type* pointer; - typedef pointer iterator; - typedef ptrdiff_t size_type; - - protected: - size_type _M_original_len; - size_type _M_len; - pointer _M_buffer; - - public: - - size_type - size() const - { return _M_len; } - - - size_type - requested_size() const - { return _M_original_len; } - - - iterator - begin() - { return _M_buffer; } - - - iterator - end() - { return _M_buffer + _M_len; } - - - - - - _Temporary_buffer(_ForwardIterator __seed, size_type __original_len); - - ~_Temporary_buffer() - { - std::_Destroy(_M_buffer, _M_buffer + _M_len); - std::__detail::__return_temporary_buffer(_M_buffer, _M_len); - } - - private: - - _Temporary_buffer(const _Temporary_buffer&); - - void - operator=(const _Temporary_buffer&); - }; - - - template - struct __uninitialized_construct_buf_dispatch - { - template - static void - __ucr(_Pointer __first, _Pointer __last, - _ForwardIterator __seed) - { - if (__first == __last) - return; - - _Pointer __cur = __first; - try - { - std::_Construct(std::__addressof(*__first), - std::move(*__seed)); - _Pointer __prev = __cur; - ++__cur; - for(; __cur != __last; ++__cur, ++__prev) - std::_Construct(std::__addressof(*__cur), - std::move(*__prev)); - *__seed = std::move(*__prev); - } - catch(...) - { - std::_Destroy(__first, __cur); - throw; - } - } - }; - - template<> - struct __uninitialized_construct_buf_dispatch - { - template - static void - __ucr(_Pointer, _Pointer, _ForwardIterator) { } - }; -# 243 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_tempbuf.h" 3 - template - inline void - __uninitialized_construct_buf(_Pointer __first, _Pointer __last, - _ForwardIterator __seed) - { - typedef typename std::iterator_traits<_Pointer>::value_type - _ValueType; - - std::__uninitialized_construct_buf_dispatch< - __has_trivial_constructor(_ValueType)>:: - __ucr(__first, __last, __seed); - } - - template - _Temporary_buffer<_ForwardIterator, _Tp>:: - _Temporary_buffer(_ForwardIterator __seed, size_type __original_len) - : _M_original_len(__original_len), _M_len(0), _M_buffer(0) - { - std::pair __p( - std::get_temporary_buffer(_M_original_len)); - - if (__p.first) - { - try - { - std::__uninitialized_construct_buf(__p.first, __p.first + __p.second, - __seed); - _M_buffer = __p.first; - _M_len = __p.second; - } - catch(...) - { - std::__detail::__return_temporary_buffer(__p.first, __p.second); - throw; - } - } - } - - -} -# 63 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 2 3 - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/uniform_int_dist.h" 1 3 -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/uniform_int_dist.h" 3 -namespace std __attribute__ ((__visibility__ ("default"))) -{ - -# 57 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/uniform_int_dist.h" 3 - namespace __detail - { - - template - inline bool - _Power_of_2(_Tp __x) - { - return ((__x - 1) & __x) == 0; - } - } - - - - - - - template - class uniform_int_distribution - { - static_assert(std::is_integral<_IntType>::value, - "template argument must be an integral type"); - - public: - - typedef _IntType result_type; - - struct param_type - { - typedef uniform_int_distribution<_IntType> distribution_type; - - param_type() : param_type(0) { } - - explicit - param_type(_IntType __a, - _IntType __b = numeric_limits<_IntType>::max()) - : _M_a(__a), _M_b(__b) - { - ; - } - - result_type - a() const - { return _M_a; } - - result_type - b() const - { return _M_b; } - - friend bool - operator==(const param_type& __p1, const param_type& __p2) - { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } - - friend bool - operator!=(const param_type& __p1, const param_type& __p2) - { return !(__p1 == __p2); } - - private: - _IntType _M_a; - _IntType _M_b; - }; - - public: - - - - uniform_int_distribution() : uniform_int_distribution(0) { } - - - - - explicit - uniform_int_distribution(_IntType __a, - _IntType __b = numeric_limits<_IntType>::max()) - : _M_param(__a, __b) - { } - - explicit - uniform_int_distribution(const param_type& __p) - : _M_param(__p) - { } - - - - - - - void - reset() { } - - result_type - a() const - { return _M_param.a(); } - - result_type - b() const - { return _M_param.b(); } - - - - - param_type - param() const - { return _M_param; } - - - - - - void - param(const param_type& __param) - { _M_param = __param; } - - - - - result_type - min() const - { return this->a(); } - - - - - result_type - max() const - { return this->b(); } - - - - - template - result_type - operator()(_UniformRandomNumberGenerator& __urng) - { return this->operator()(__urng, _M_param); } - - template - result_type - operator()(_UniformRandomNumberGenerator& __urng, - const param_type& __p); - - template - void - __generate(_ForwardIterator __f, _ForwardIterator __t, - _UniformRandomNumberGenerator& __urng) - { this->__generate(__f, __t, __urng, _M_param); } - - template - void - __generate(_ForwardIterator __f, _ForwardIterator __t, - _UniformRandomNumberGenerator& __urng, - const param_type& __p) - { this->__generate_impl(__f, __t, __urng, __p); } - - template - void - __generate(result_type* __f, result_type* __t, - _UniformRandomNumberGenerator& __urng, - const param_type& __p) - { this->__generate_impl(__f, __t, __urng, __p); } - - - - - - friend bool - operator==(const uniform_int_distribution& __d1, - const uniform_int_distribution& __d2) - { return __d1._M_param == __d2._M_param; } - - private: - template - void - __generate_impl(_ForwardIterator __f, _ForwardIterator __t, - _UniformRandomNumberGenerator& __urng, - const param_type& __p); - - param_type _M_param; - }; - - template - template - typename uniform_int_distribution<_IntType>::result_type - uniform_int_distribution<_IntType>:: - operator()(_UniformRandomNumberGenerator& __urng, - const param_type& __param) - { - typedef typename _UniformRandomNumberGenerator::result_type - _Gresult_type; - typedef typename std::make_unsigned::type __utype; - typedef typename std::common_type<_Gresult_type, __utype>::type - __uctype; - - const __uctype __urngmin = __urng.min(); - const __uctype __urngmax = __urng.max(); - const __uctype __urngrange = __urngmax - __urngmin; - const __uctype __urange - = __uctype(__param.b()) - __uctype(__param.a()); - - __uctype __ret; - - if (__urngrange > __urange) - { - - const __uctype __uerange = __urange + 1; - const __uctype __scaling = __urngrange / __uerange; - const __uctype __past = __uerange * __scaling; - do - __ret = __uctype(__urng()) - __urngmin; - while (__ret >= __past); - __ret /= __scaling; - } - else if (__urngrange < __urange) - { -# 287 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/uniform_int_dist.h" 3 - __uctype __tmp; - do - { - const __uctype __uerngrange = __urngrange + 1; - __tmp = (__uerngrange * operator() - (__urng, param_type(0, __urange / __uerngrange))); - __ret = __tmp + (__uctype(__urng()) - __urngmin); - } - while (__ret > __urange || __ret < __tmp); - } - else - __ret = __uctype(__urng()) - __urngmin; - - return __ret + __param.a(); - } - - - template - template - void - uniform_int_distribution<_IntType>:: - __generate_impl(_ForwardIterator __f, _ForwardIterator __t, - _UniformRandomNumberGenerator& __urng, - const param_type& __param) - { - - typedef typename _UniformRandomNumberGenerator::result_type - _Gresult_type; - typedef typename std::make_unsigned::type __utype; - typedef typename std::common_type<_Gresult_type, __utype>::type - __uctype; - - const __uctype __urngmin = __urng.min(); - const __uctype __urngmax = __urng.max(); - const __uctype __urngrange = __urngmax - __urngmin; - const __uctype __urange - = __uctype(__param.b()) - __uctype(__param.a()); - - __uctype __ret; - - if (__urngrange > __urange) - { - if (__detail::_Power_of_2(__urngrange + 1) - && __detail::_Power_of_2(__urange + 1)) - { - while (__f != __t) - { - __ret = __uctype(__urng()) - __urngmin; - *__f++ = (__ret & __urange) + __param.a(); - } - } - else - { - - const __uctype __uerange = __urange + 1; - const __uctype __scaling = __urngrange / __uerange; - const __uctype __past = __uerange * __scaling; - while (__f != __t) - { - do - __ret = __uctype(__urng()) - __urngmin; - while (__ret >= __past); - *__f++ = __ret / __scaling + __param.a(); - } - } - } - else if (__urngrange < __urange) - { -# 371 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/uniform_int_dist.h" 3 - __uctype __tmp; - while (__f != __t) - { - do - { - const __uctype __uerngrange = __urngrange + 1; - __tmp = (__uerngrange * operator() - (__urng, param_type(0, __urange / __uerngrange))); - __ret = __tmp + (__uctype(__urng()) - __urngmin); - } - while (__ret > __urange || __ret < __tmp); - *__f++ = __ret; - } - } - else - while (__f != __t) - *__f++ = __uctype(__urng()) - __urngmin + __param.a(); - } - - - - -} -# 67 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 2 3 - - - - -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - - template - - void - __move_median_to_first(_Iterator __result,_Iterator __a, _Iterator __b, - _Iterator __c, _Compare __comp) - { - if (__comp(__a, __b)) - { - if (__comp(__b, __c)) - std::iter_swap(__result, __b); - else if (__comp(__a, __c)) - std::iter_swap(__result, __c); - else - std::iter_swap(__result, __a); - } - else if (__comp(__a, __c)) - std::iter_swap(__result, __a); - else if (__comp(__b, __c)) - std::iter_swap(__result, __c); - else - std::iter_swap(__result, __b); - } - - - template - - inline _InputIterator - __find_if_not(_InputIterator __first, _InputIterator __last, - _Predicate __pred) - { - return std::__find_if(__first, __last, - __gnu_cxx::__ops::__negate(__pred), - std::__iterator_category(__first)); - } - - - - - template - - _InputIterator - __find_if_not_n(_InputIterator __first, _Distance& __len, _Predicate __pred) - { - for (; __len; --__len, (void) ++__first) - if (!__pred(__first)) - break; - return __first; - } -# 138 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - _ForwardIterator1 - __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2, - _BinaryPredicate __predicate) - { - - if (__first1 == __last1 || __first2 == __last2) - return __first1; - - - _ForwardIterator2 __p1(__first2); - if (++__p1 == __last2) - return std::__find_if(__first1, __last1, - __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); - - - _ForwardIterator1 __current = __first1; - - for (;;) - { - __first1 = - std::__find_if(__first1, __last1, - __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); - - if (__first1 == __last1) - return __last1; - - _ForwardIterator2 __p = __p1; - __current = __first1; - if (++__current == __last1) - return __last1; - - while (__predicate(__current, __p)) - { - if (++__p == __last2) - return __first1; - if (++__current == __last1) - return __last1; - } - ++__first1; - } - return __first1; - } - - - - - - - template - - _ForwardIterator - __search_n_aux(_ForwardIterator __first, _ForwardIterator __last, - _Integer __count, _UnaryPredicate __unary_pred, - std::forward_iterator_tag) - { - __first = std::__find_if(__first, __last, __unary_pred); - while (__first != __last) - { - typename iterator_traits<_ForwardIterator>::difference_type - __n = __count; - _ForwardIterator __i = __first; - ++__i; - while (__i != __last && __n != 1 && __unary_pred(__i)) - { - ++__i; - --__n; - } - if (__n == 1) - return __first; - if (__i == __last) - return __last; - __first = std::__find_if(++__i, __last, __unary_pred); - } - return __last; - } - - - - - - template - - _RandomAccessIter - __search_n_aux(_RandomAccessIter __first, _RandomAccessIter __last, - _Integer __count, _UnaryPredicate __unary_pred, - std::random_access_iterator_tag) - { - typedef typename std::iterator_traits<_RandomAccessIter>::difference_type - _DistanceType; - - _DistanceType __tailSize = __last - __first; - _DistanceType __remainder = __count; - - while (__remainder <= __tailSize) - { - __first += __remainder; - __tailSize -= __remainder; - - - _RandomAccessIter __backTrack = __first; - while (__unary_pred(--__backTrack)) - { - if (--__remainder == 0) - return (__first - __count); - } - __remainder = __count + 1 - (__first - __backTrack); - } - return __last; - } - - template - - _ForwardIterator - __search_n(_ForwardIterator __first, _ForwardIterator __last, - _Integer __count, - _UnaryPredicate __unary_pred) - { - if (__count <= 0) - return __first; - - if (__count == 1) - return std::__find_if(__first, __last, __unary_pred); - - return std::__search_n_aux(__first, __last, __count, __unary_pred, - std::__iterator_category(__first)); - } - - - template - - _ForwardIterator1 - __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2, - forward_iterator_tag, forward_iterator_tag, - _BinaryPredicate __comp) - { - if (__first2 == __last2) - return __last1; - - _ForwardIterator1 __result = __last1; - while (1) - { - _ForwardIterator1 __new_result - = std::__search(__first1, __last1, __first2, __last2, __comp); - if (__new_result == __last1) - return __result; - else - { - __result = __new_result; - __first1 = __new_result; - ++__first1; - } - } - } - - - template - - _BidirectionalIterator1 - __find_end(_BidirectionalIterator1 __first1, - _BidirectionalIterator1 __last1, - _BidirectionalIterator2 __first2, - _BidirectionalIterator2 __last2, - bidirectional_iterator_tag, bidirectional_iterator_tag, - _BinaryPredicate __comp) - { - - - - - - - typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; - typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; - - _RevIterator1 __rlast1(__first1); - _RevIterator2 __rlast2(__first2); - _RevIterator1 __rresult = std::__search(_RevIterator1(__last1), __rlast1, - _RevIterator2(__last2), __rlast2, - __comp); - - if (__rresult == __rlast1) - return __last1; - else - { - _BidirectionalIterator1 __result = __rresult.base(); - std::advance(__result, -std::distance(__first2, __last2)); - return __result; - } - } -# 364 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator1 - find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2) - { - - - - - - - ; - ; - - return std::__find_end(__first1, __last1, __first2, __last2, - std::__iterator_category(__first1), - std::__iterator_category(__first2), - __gnu_cxx::__ops::__iter_equal_to_iter()); - } -# 413 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator1 - find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2, - _BinaryPredicate __comp) - { - - - - - - - ; - ; - - return std::__find_end(__first1, __last1, __first2, __last2, - std::__iterator_category(__first1), - std::__iterator_category(__first2), - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } -# 449 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline bool - all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) - { return __last == std::find_if_not(__first, __last, __pred); } -# 467 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline bool - none_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) - { return __last == std::find_if(__first, __last, __pred); } -# 486 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline bool - any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) - { return !std::none_of(__first, __last, __pred); } -# 502 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _InputIterator - find_if_not(_InputIterator __first, _InputIterator __last, - _Predicate __pred) - { - - - - - ; - return std::__find_if_not(__first, __last, - __gnu_cxx::__ops::__pred_iter(__pred)); - } -# 527 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline bool - is_partitioned(_InputIterator __first, _InputIterator __last, - _Predicate __pred) - { - __first = std::find_if_not(__first, __last, __pred); - if (__first == __last) - return true; - ++__first; - return std::none_of(__first, __last, __pred); - } -# 549 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - _ForwardIterator - partition_point(_ForwardIterator __first, _ForwardIterator __last, - _Predicate __pred) - { - - - - - - - ; - - typedef typename iterator_traits<_ForwardIterator>::difference_type - _DistanceType; - - _DistanceType __len = std::distance(__first, __last); - - while (__len > 0) - { - _DistanceType __half = __len >> 1; - _ForwardIterator __middle = __first; - std::advance(__middle, __half); - if (__pred(*__middle)) - { - __first = __middle; - ++__first; - __len = __len - __half - 1; - } - else - __len = __half; - } - return __first; - } - - - template - - _OutputIterator - __remove_copy_if(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _Predicate __pred) - { - for (; __first != __last; ++__first) - if (!__pred(__first)) - { - *__result = *__first; - ++__result; - } - return __result; - } -# 616 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - remove_copy(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, const _Tp& __value) - { - - - - - - - ; - - return std::__remove_copy_if(__first, __last, __result, - __gnu_cxx::__ops::__iter_equals_val(__value)); - } -# 649 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - remove_copy_if(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _Predicate __pred) - { - - - - - - - ; - - return std::__remove_copy_if(__first, __last, __result, - __gnu_cxx::__ops::__pred_iter(__pred)); - } -# 684 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - _OutputIterator - copy_if(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _Predicate __pred) - { - - - - - - - ; - - for (; __first != __last; ++__first) - if (__pred(*__first)) - { - *__result = *__first; - ++__result; - } - return __result; - } - - template - - _OutputIterator - __copy_n_a(_InputIterator __first, _Size __n, _OutputIterator __result) - { - if (__n > 0) - { - while (true) - { - *__result = *__first; - ++__result; - if (--__n > 0) - ++__first; - else - break; - } - } - return __result; - } - - template - __enable_if_t<__is_char<_CharT>::__value, _CharT*> - __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT>>, - _Size, _CharT*); - - template - - _OutputIterator - __copy_n(_InputIterator __first, _Size __n, - _OutputIterator __result, input_iterator_tag) - { - return std::__niter_wrap(__result, - __copy_n_a(__first, __n, - std::__niter_base(__result))); - } - - template - - inline _OutputIterator - __copy_n(_RandomAccessIterator __first, _Size __n, - _OutputIterator __result, random_access_iterator_tag) - { return std::copy(__first, __first + __n, __result); } -# 765 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - copy_n(_InputIterator __first, _Size __n, _OutputIterator __result) - { - - - - - ; - ; - - return std::__copy_n(__first, __n, __result, - std::__iterator_category(__first)); - } -# 796 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - pair<_OutputIterator1, _OutputIterator2> - partition_copy(_InputIterator __first, _InputIterator __last, - _OutputIterator1 __out_true, _OutputIterator2 __out_false, - _Predicate __pred) - { - - - - - - - - - ; - - for (; __first != __last; ++__first) - if (__pred(*__first)) - { - *__out_true = *__first; - ++__out_true; - } - else - { - *__out_false = *__first; - ++__out_false; - } - - return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false); - } - - - template - - _ForwardIterator - __remove_if(_ForwardIterator __first, _ForwardIterator __last, - _Predicate __pred) - { - __first = std::__find_if(__first, __last, __pred); - if (__first == __last) - return __first; - _ForwardIterator __result = __first; - ++__first; - for (; __first != __last; ++__first) - if (!__pred(__first)) - { - *__result = std::move(*__first); - ++__result; - } - return __result; - } -# 867 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator - remove(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __value) - { - - - - - - ; - - return std::__remove_if(__first, __last, - __gnu_cxx::__ops::__iter_equals_val(__value)); - } -# 901 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator - remove_if(_ForwardIterator __first, _ForwardIterator __last, - _Predicate __pred) - { - - - - - - ; - - return std::__remove_if(__first, __last, - __gnu_cxx::__ops::__pred_iter(__pred)); - } - - template - - _ForwardIterator - __adjacent_find(_ForwardIterator __first, _ForwardIterator __last, - _BinaryPredicate __binary_pred) - { - if (__first == __last) - return __last; - _ForwardIterator __next = __first; - while (++__next != __last) - { - if (__binary_pred(__first, __next)) - return __first; - __first = __next; - } - return __last; - } - - template - - _ForwardIterator - __unique(_ForwardIterator __first, _ForwardIterator __last, - _BinaryPredicate __binary_pred) - { - - __first = std::__adjacent_find(__first, __last, __binary_pred); - if (__first == __last) - return __last; - - - _ForwardIterator __dest = __first; - ++__first; - while (++__first != __last) - if (!__binary_pred(__dest, __first)) - *++__dest = std::move(*__first); - return ++__dest; - } -# 970 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator - unique(_ForwardIterator __first, _ForwardIterator __last) - { - - - - - - ; - - return std::__unique(__first, __last, - __gnu_cxx::__ops::__iter_equal_to_iter()); - } -# 1001 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator - unique(_ForwardIterator __first, _ForwardIterator __last, - _BinaryPredicate __binary_pred) - { - - - - - - - ; - - return std::__unique(__first, __last, - __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); - } - - - - - - - - template - - _OutputIterator - __unique_copy(_ForwardIterator __first, _ForwardIterator __last, - _OutputIterator __result, _BinaryPredicate __binary_pred, - forward_iterator_tag, output_iterator_tag) - { - - - - - - _ForwardIterator __next = __first; - *__result = *__first; - while (++__next != __last) - if (!__binary_pred(__first, __next)) - { - __first = __next; - *++__result = *__first; - } - return ++__result; - } - - - - - - - - template - - _OutputIterator - __unique_copy(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _BinaryPredicate __binary_pred, - input_iterator_tag, output_iterator_tag) - { - - - - - - typename iterator_traits<_InputIterator>::value_type __value = *__first; - __decltype(__gnu_cxx::__ops::__iter_comp_val(__binary_pred)) - __rebound_pred - = __gnu_cxx::__ops::__iter_comp_val(__binary_pred); - *__result = __value; - while (++__first != __last) - if (!__rebound_pred(__first, __value)) - { - __value = *__first; - *++__result = __value; - } - return ++__result; - } - - - - - - - - template - - _ForwardIterator - __unique_copy(_InputIterator __first, _InputIterator __last, - _ForwardIterator __result, _BinaryPredicate __binary_pred, - input_iterator_tag, forward_iterator_tag) - { - - - - - *__result = *__first; - while (++__first != __last) - if (!__binary_pred(__result, __first)) - *++__result = *__first; - return ++__result; - } - - - - - - - template - - void - __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, - bidirectional_iterator_tag) - { - while (true) - if (__first == __last || __first == --__last) - return; - else - { - std::iter_swap(__first, __last); - ++__first; - } - } - - - - - - - template - - void - __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, - random_access_iterator_tag) - { - if (__first == __last) - return; - --__last; - while (__first < __last) - { - std::iter_swap(__first, __last); - ++__first; - --__last; - } - } -# 1162 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline void - reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) - { - - - - ; - std::__reverse(__first, __last, std::__iterator_category(__first)); - } -# 1190 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - _OutputIterator - reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, - _OutputIterator __result) - { - - - - - - ; - - while (__first != __last) - { - --__last; - *__result = *__last; - ++__result; - } - return __result; - } - - - - - - template - - _EuclideanRingElement - __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) - { - while (__n != 0) - { - _EuclideanRingElement __t = __m % __n; - __m = __n; - __n = __t; - } - return __m; - } - - inline namespace _V2 - { - - - template - - _ForwardIterator - __rotate(_ForwardIterator __first, - _ForwardIterator __middle, - _ForwardIterator __last, - forward_iterator_tag) - { - if (__first == __middle) - return __last; - else if (__last == __middle) - return __first; - - _ForwardIterator __first2 = __middle; - do - { - std::iter_swap(__first, __first2); - ++__first; - ++__first2; - if (__first == __middle) - __middle = __first2; - } - while (__first2 != __last); - - _ForwardIterator __ret = __first; - - __first2 = __middle; - - while (__first2 != __last) - { - std::iter_swap(__first, __first2); - ++__first; - ++__first2; - if (__first == __middle) - __middle = __first2; - else if (__first2 == __last) - __first2 = __middle; - } - return __ret; - } - - - template - - _BidirectionalIterator - __rotate(_BidirectionalIterator __first, - _BidirectionalIterator __middle, - _BidirectionalIterator __last, - bidirectional_iterator_tag) - { - - - - - if (__first == __middle) - return __last; - else if (__last == __middle) - return __first; - - std::__reverse(__first, __middle, bidirectional_iterator_tag()); - std::__reverse(__middle, __last, bidirectional_iterator_tag()); - - while (__first != __middle && __middle != __last) - { - std::iter_swap(__first, --__last); - ++__first; - } - - if (__first == __middle) - { - std::__reverse(__middle, __last, bidirectional_iterator_tag()); - return __last; - } - else - { - std::__reverse(__first, __middle, bidirectional_iterator_tag()); - return __first; - } - } - - - template - - _RandomAccessIterator - __rotate(_RandomAccessIterator __first, - _RandomAccessIterator __middle, - _RandomAccessIterator __last, - random_access_iterator_tag) - { - - - - - if (__first == __middle) - return __last; - else if (__last == __middle) - return __first; - - typedef typename iterator_traits<_RandomAccessIterator>::difference_type - _Distance; - typedef typename iterator_traits<_RandomAccessIterator>::value_type - _ValueType; - - _Distance __n = __last - __first; - _Distance __k = __middle - __first; - - if (__k == __n - __k) - { - std::swap_ranges(__first, __middle, __middle); - return __middle; - } - - _RandomAccessIterator __p = __first; - _RandomAccessIterator __ret = __first + (__last - __middle); - - for (;;) - { - if (__k < __n - __k) - { - if (__is_pod(_ValueType) && __k == 1) - { - _ValueType __t = std::move(*__p); - std::move(__p + 1, __p + __n, __p); - *(__p + __n - 1) = std::move(__t); - return __ret; - } - _RandomAccessIterator __q = __p + __k; - for (_Distance __i = 0; __i < __n - __k; ++ __i) - { - std::iter_swap(__p, __q); - ++__p; - ++__q; - } - __n %= __k; - if (__n == 0) - return __ret; - std::swap(__n, __k); - __k = __n - __k; - } - else - { - __k = __n - __k; - if (__is_pod(_ValueType) && __k == 1) - { - _ValueType __t = std::move(*(__p + __n - 1)); - std::move_backward(__p, __p + __n - 1, __p + __n); - *__p = std::move(__t); - return __ret; - } - _RandomAccessIterator __q = __p + __n; - __p = __q - __k; - for (_Distance __i = 0; __i < __n - __k; ++ __i) - { - --__p; - --__q; - std::iter_swap(__p, __q); - } - __n %= __k; - if (__n == 0) - return __ret; - std::swap(__n, __k); - } - } - } -# 1422 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator - rotate(_ForwardIterator __first, _ForwardIterator __middle, - _ForwardIterator __last) - { - - - - ; - ; - - return std::__rotate(__first, __middle, __last, - std::__iterator_category(__first)); - } - - } -# 1460 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, - _ForwardIterator __last, _OutputIterator __result) - { - - - - - ; - ; - - return std::copy(__first, __middle, - std::copy(__middle, __last, __result)); - } - - - template - - _ForwardIterator - __partition(_ForwardIterator __first, _ForwardIterator __last, - _Predicate __pred, forward_iterator_tag) - { - if (__first == __last) - return __first; - - while (__pred(*__first)) - if (++__first == __last) - return __first; - - _ForwardIterator __next = __first; - - while (++__next != __last) - if (__pred(*__next)) - { - std::iter_swap(__first, __next); - ++__first; - } - - return __first; - } - - - template - - _BidirectionalIterator - __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, - _Predicate __pred, bidirectional_iterator_tag) - { - while (true) - { - while (true) - if (__first == __last) - return __first; - else if (__pred(*__first)) - ++__first; - else - break; - --__last; - while (true) - if (__first == __last) - return __first; - else if (!bool(__pred(*__last))) - --__last; - else - break; - std::iter_swap(__first, __last); - ++__first; - } - } -# 1540 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - _ForwardIterator - __stable_partition_adaptive(_ForwardIterator __first, - _ForwardIterator __last, - _Predicate __pred, _Distance __len, - _Pointer __buffer, - _Distance __buffer_size) - { - if (__len == 1) - return __first; - - if (__len <= __buffer_size) - { - _ForwardIterator __result1 = __first; - _Pointer __result2 = __buffer; - - - - - *__result2 = std::move(*__first); - ++__result2; - ++__first; - for (; __first != __last; ++__first) - if (__pred(__first)) - { - *__result1 = std::move(*__first); - ++__result1; - } - else - { - *__result2 = std::move(*__first); - ++__result2; - } - - std::move(__buffer, __result2, __result1); - return __result1; - } - - _ForwardIterator __middle = __first; - std::advance(__middle, __len / 2); - _ForwardIterator __left_split = - std::__stable_partition_adaptive(__first, __middle, __pred, - __len / 2, __buffer, - __buffer_size); - - - - _Distance __right_len = __len - __len / 2; - _ForwardIterator __right_split = - std::__find_if_not_n(__middle, __right_len, __pred); - - if (__right_len) - __right_split = - std::__stable_partition_adaptive(__right_split, __last, __pred, - __right_len, - __buffer, __buffer_size); - - return std::rotate(__left_split, __middle, __right_split); - } - - template - _ForwardIterator - __stable_partition(_ForwardIterator __first, _ForwardIterator __last, - _Predicate __pred) - { - __first = std::__find_if_not(__first, __last, __pred); - - if (__first == __last) - return __first; - - typedef typename iterator_traits<_ForwardIterator>::value_type - _ValueType; - typedef typename iterator_traits<_ForwardIterator>::difference_type - _DistanceType; - - _Temporary_buffer<_ForwardIterator, _ValueType> - __buf(__first, std::distance(__first, __last)); - return - std::__stable_partition_adaptive(__first, __last, __pred, - _DistanceType(__buf.requested_size()), - __buf.begin(), - _DistanceType(__buf.size())); - } -# 1642 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - inline _ForwardIterator - stable_partition(_ForwardIterator __first, _ForwardIterator __last, - _Predicate __pred) - { - - - - - - ; - - return std::__stable_partition(__first, __last, - __gnu_cxx::__ops::__pred_iter(__pred)); - } - - - template - - void - __heap_select(_RandomAccessIterator __first, - _RandomAccessIterator __middle, - _RandomAccessIterator __last, _Compare __comp) - { - std::__make_heap(__first, __middle, __comp); - for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) - if (__comp(__i, __first)) - std::__pop_heap(__first, __middle, __i, __comp); - } - - - - template - - _RandomAccessIterator - __partial_sort_copy(_InputIterator __first, _InputIterator __last, - _RandomAccessIterator __result_first, - _RandomAccessIterator __result_last, - _Compare __comp) - { - typedef typename iterator_traits<_InputIterator>::value_type - _InputValueType; - typedef iterator_traits<_RandomAccessIterator> _RItTraits; - typedef typename _RItTraits::difference_type _DistanceType; - - if (__result_first == __result_last) - return __result_last; - _RandomAccessIterator __result_real_last = __result_first; - while (__first != __last && __result_real_last != __result_last) - { - *__result_real_last = *__first; - ++__result_real_last; - ++__first; - } - - std::__make_heap(__result_first, __result_real_last, __comp); - while (__first != __last) - { - if (__comp(__first, __result_first)) - std::__adjust_heap(__result_first, _DistanceType(0), - _DistanceType(__result_real_last - - __result_first), - _InputValueType(*__first), __comp); - ++__first; - } - std::__sort_heap(__result_first, __result_real_last, __comp); - return __result_real_last; - } -# 1730 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _RandomAccessIterator - partial_sort_copy(_InputIterator __first, _InputIterator __last, - _RandomAccessIterator __result_first, - _RandomAccessIterator __result_last) - { -# 1745 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - - - - - - - ; - ; - ; - - return std::__partial_sort_copy(__first, __last, - __result_first, __result_last, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 1780 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _RandomAccessIterator - partial_sort_copy(_InputIterator __first, _InputIterator __last, - _RandomAccessIterator __result_first, - _RandomAccessIterator __result_last, - _Compare __comp) - { -# 1797 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - - - - - - - - - - ; - ; - ; - - return std::__partial_sort_copy(__first, __last, - __result_first, __result_last, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } - - - template - - void - __unguarded_linear_insert(_RandomAccessIterator __last, - _Compare __comp) - { - typename iterator_traits<_RandomAccessIterator>::value_type - __val = std::move(*__last); - _RandomAccessIterator __next = __last; - --__next; - while (__comp(__val, __next)) - { - *__last = std::move(*__next); - __last = __next; - --__next; - } - *__last = std::move(__val); - } - - - template - - void - __insertion_sort(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp) - { - if (__first == __last) return; - - for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) - { - if (__comp(__i, __first)) - { - typename iterator_traits<_RandomAccessIterator>::value_type - __val = std::move(*__i); - std::move_backward(__first, __i, __i + 1); - *__first = std::move(__val); - } - else - std::__unguarded_linear_insert(__i, - __gnu_cxx::__ops::__val_comp_iter(__comp)); - } - } - - - template - - inline void - __unguarded_insertion_sort(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp) - { - for (_RandomAccessIterator __i = __first; __i != __last; ++__i) - std::__unguarded_linear_insert(__i, - __gnu_cxx::__ops::__val_comp_iter(__comp)); - } - - - - - - enum { _S_threshold = 16 }; - - - template - - void - __final_insertion_sort(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp) - { - if (__last - __first > int(_S_threshold)) - { - std::__insertion_sort(__first, __first + int(_S_threshold), __comp); - std::__unguarded_insertion_sort(__first + int(_S_threshold), __last, - __comp); - } - else - std::__insertion_sort(__first, __last, __comp); - } - - - template - - _RandomAccessIterator - __unguarded_partition(_RandomAccessIterator __first, - _RandomAccessIterator __last, - _RandomAccessIterator __pivot, _Compare __comp) - { - while (true) - { - while (__comp(__first, __pivot)) - ++__first; - --__last; - while (__comp(__pivot, __last)) - --__last; - if (!(__first < __last)) - return __first; - std::iter_swap(__first, __last); - ++__first; - } - } - - - template - - inline _RandomAccessIterator - __unguarded_partition_pivot(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp) - { - _RandomAccessIterator __mid = __first + (__last - __first) / 2; - std::__move_median_to_first(__first, __first + 1, __mid, __last - 1, - __comp); - return std::__unguarded_partition(__first + 1, __last, __first, __comp); - } - - template - - inline void - __partial_sort(_RandomAccessIterator __first, - _RandomAccessIterator __middle, - _RandomAccessIterator __last, - _Compare __comp) - { - std::__heap_select(__first, __middle, __last, __comp); - std::__sort_heap(__first, __middle, __comp); - } - - - template - - void - __introsort_loop(_RandomAccessIterator __first, - _RandomAccessIterator __last, - _Size __depth_limit, _Compare __comp) - { - while (__last - __first > int(_S_threshold)) - { - if (__depth_limit == 0) - { - std::__partial_sort(__first, __last, __last, __comp); - return; - } - --__depth_limit; - _RandomAccessIterator __cut = - std::__unguarded_partition_pivot(__first, __last, __comp); - std::__introsort_loop(__cut, __last, __depth_limit, __comp); - __last = __cut; - } - } - - - - template - - inline void - __sort(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare __comp) - { - if (__first != __last) - { - std::__introsort_loop(__first, __last, - std::__lg(__last - __first) * 2, - __comp); - std::__final_insertion_sort(__first, __last, __comp); - } - } - - template - - void - __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth, - _RandomAccessIterator __last, _Size __depth_limit, - _Compare __comp) - { - while (__last - __first > 3) - { - if (__depth_limit == 0) - { - std::__heap_select(__first, __nth + 1, __last, __comp); - - std::iter_swap(__first, __nth); - return; - } - --__depth_limit; - _RandomAccessIterator __cut = - std::__unguarded_partition_pivot(__first, __last, __comp); - if (__cut <= __nth) - __first = __cut; - else - __last = __cut; - } - std::__insertion_sort(__first, __last, __comp); - } -# 2028 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator - lower_bound(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __val, _Compare __comp) - { - - - - - - ; - - return std::__lower_bound(__first, __last, __val, - __gnu_cxx::__ops::__iter_comp_val(__comp)); - } - - template - - _ForwardIterator - __upper_bound(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __val, _Compare __comp) - { - typedef typename iterator_traits<_ForwardIterator>::difference_type - _DistanceType; - - _DistanceType __len = std::distance(__first, __last); - - while (__len > 0) - { - _DistanceType __half = __len >> 1; - _ForwardIterator __middle = __first; - std::advance(__middle, __half); - if (__comp(__val, __middle)) - __len = __half; - else - { - __first = __middle; - ++__first; - __len = __len - __half - 1; - } - } - return __first; - } -# 2084 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator - upper_bound(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __val) - { - - - - - ; - - return std::__upper_bound(__first, __last, __val, - __gnu_cxx::__ops::__val_less_iter()); - } -# 2115 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator - upper_bound(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __val, _Compare __comp) - { - - - - - - ; - - return std::__upper_bound(__first, __last, __val, - __gnu_cxx::__ops::__val_comp_iter(__comp)); - } - - template - - pair<_ForwardIterator, _ForwardIterator> - __equal_range(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __val, - _CompareItTp __comp_it_val, _CompareTpIt __comp_val_it) - { - typedef typename iterator_traits<_ForwardIterator>::difference_type - _DistanceType; - - _DistanceType __len = std::distance(__first, __last); - - while (__len > 0) - { - _DistanceType __half = __len >> 1; - _ForwardIterator __middle = __first; - std::advance(__middle, __half); - if (__comp_it_val(__middle, __val)) - { - __first = __middle; - ++__first; - __len = __len - __half - 1; - } - else if (__comp_val_it(__val, __middle)) - __len = __half; - else - { - _ForwardIterator __left - = std::__lower_bound(__first, __middle, __val, __comp_it_val); - std::advance(__first, __len); - _ForwardIterator __right - = std::__upper_bound(++__middle, __first, __val, __comp_val_it); - return pair<_ForwardIterator, _ForwardIterator>(__left, __right); - } - } - return pair<_ForwardIterator, _ForwardIterator>(__first, __first); - } -# 2188 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline pair<_ForwardIterator, _ForwardIterator> - equal_range(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __val) - { - - - - - - - ; - ; - - return std::__equal_range(__first, __last, __val, - __gnu_cxx::__ops::__iter_less_val(), - __gnu_cxx::__ops::__val_less_iter()); - } -# 2225 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline pair<_ForwardIterator, _ForwardIterator> - equal_range(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __val, _Compare __comp) - { - - - - - - - - ; - - ; - - return std::__equal_range(__first, __last, __val, - __gnu_cxx::__ops::__iter_comp_val(__comp), - __gnu_cxx::__ops::__val_comp_iter(__comp)); - } -# 2259 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - bool - binary_search(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __val) - { - - - - - ; - ; - - _ForwardIterator __i - = std::__lower_bound(__first, __last, __val, - __gnu_cxx::__ops::__iter_less_val()); - return __i != __last && !(__val < *__i); - } -# 2293 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - bool - binary_search(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __val, _Compare __comp) - { - - - - - - ; - - ; - - _ForwardIterator __i - = std::__lower_bound(__first, __last, __val, - __gnu_cxx::__ops::__iter_comp_val(__comp)); - return __i != __last && !bool(__comp(__val, *__i)); - } - - - - - template - void - __move_merge_adaptive(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result, _Compare __comp) - { - while (__first1 != __last1 && __first2 != __last2) - { - if (__comp(__first2, __first1)) - { - *__result = std::move(*__first2); - ++__first2; - } - else - { - *__result = std::move(*__first1); - ++__first1; - } - ++__result; - } - if (__first1 != __last1) - std::move(__first1, __last1, __result); - } - - - template - void - __move_merge_adaptive_backward(_BidirectionalIterator1 __first1, - _BidirectionalIterator1 __last1, - _BidirectionalIterator2 __first2, - _BidirectionalIterator2 __last2, - _BidirectionalIterator3 __result, - _Compare __comp) - { - if (__first1 == __last1) - { - std::move_backward(__first2, __last2, __result); - return; - } - else if (__first2 == __last2) - return; - - --__last1; - --__last2; - while (true) - { - if (__comp(__last2, __last1)) - { - *--__result = std::move(*__last1); - if (__first1 == __last1) - { - std::move_backward(__first2, ++__last2, __result); - return; - } - --__last1; - } - else - { - *--__result = std::move(*__last2); - if (__first2 == __last2) - return; - --__last2; - } - } - } - - - template - _BidirectionalIterator1 - __rotate_adaptive(_BidirectionalIterator1 __first, - _BidirectionalIterator1 __middle, - _BidirectionalIterator1 __last, - _Distance __len1, _Distance __len2, - _BidirectionalIterator2 __buffer, - _Distance __buffer_size) - { - _BidirectionalIterator2 __buffer_end; - if (__len1 > __len2 && __len2 <= __buffer_size) - { - if (__len2) - { - __buffer_end = std::move(__middle, __last, __buffer); - std::move_backward(__first, __middle, __last); - return std::move(__buffer, __buffer_end, __first); - } - else - return __first; - } - else if (__len1 <= __buffer_size) - { - if (__len1) - { - __buffer_end = std::move(__first, __middle, __buffer); - std::move(__middle, __last, __first); - return std::move_backward(__buffer, __buffer_end, __last); - } - else - return __last; - } - else - return std::rotate(__first, __middle, __last); - } - - - template - void - __merge_adaptive(_BidirectionalIterator __first, - _BidirectionalIterator __middle, - _BidirectionalIterator __last, - _Distance __len1, _Distance __len2, - _Pointer __buffer, _Distance __buffer_size, - _Compare __comp) - { - if (__len1 <= __len2 && __len1 <= __buffer_size) - { - _Pointer __buffer_end = std::move(__first, __middle, __buffer); - std::__move_merge_adaptive(__buffer, __buffer_end, __middle, __last, - __first, __comp); - } - else if (__len2 <= __buffer_size) - { - _Pointer __buffer_end = std::move(__middle, __last, __buffer); - std::__move_merge_adaptive_backward(__first, __middle, __buffer, - __buffer_end, __last, __comp); - } - else - { - _BidirectionalIterator __first_cut = __first; - _BidirectionalIterator __second_cut = __middle; - _Distance __len11 = 0; - _Distance __len22 = 0; - if (__len1 > __len2) - { - __len11 = __len1 / 2; - std::advance(__first_cut, __len11); - __second_cut - = std::__lower_bound(__middle, __last, *__first_cut, - __gnu_cxx::__ops::__iter_comp_val(__comp)); - __len22 = std::distance(__middle, __second_cut); - } - else - { - __len22 = __len2 / 2; - std::advance(__second_cut, __len22); - __first_cut - = std::__upper_bound(__first, __middle, *__second_cut, - __gnu_cxx::__ops::__val_comp_iter(__comp)); - __len11 = std::distance(__first, __first_cut); - } - - _BidirectionalIterator __new_middle - = std::__rotate_adaptive(__first_cut, __middle, __second_cut, - __len1 - __len11, __len22, __buffer, - __buffer_size); - std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, - __len22, __buffer, __buffer_size, __comp); - std::__merge_adaptive(__new_middle, __second_cut, __last, - __len1 - __len11, - __len2 - __len22, __buffer, - __buffer_size, __comp); - } - } - - - template - void - __merge_without_buffer(_BidirectionalIterator __first, - _BidirectionalIterator __middle, - _BidirectionalIterator __last, - _Distance __len1, _Distance __len2, - _Compare __comp) - { - if (__len1 == 0 || __len2 == 0) - return; - - if (__len1 + __len2 == 2) - { - if (__comp(__middle, __first)) - std::iter_swap(__first, __middle); - return; - } - - _BidirectionalIterator __first_cut = __first; - _BidirectionalIterator __second_cut = __middle; - _Distance __len11 = 0; - _Distance __len22 = 0; - if (__len1 > __len2) - { - __len11 = __len1 / 2; - std::advance(__first_cut, __len11); - __second_cut - = std::__lower_bound(__middle, __last, *__first_cut, - __gnu_cxx::__ops::__iter_comp_val(__comp)); - __len22 = std::distance(__middle, __second_cut); - } - else - { - __len22 = __len2 / 2; - std::advance(__second_cut, __len22); - __first_cut - = std::__upper_bound(__first, __middle, *__second_cut, - __gnu_cxx::__ops::__val_comp_iter(__comp)); - __len11 = std::distance(__first, __first_cut); - } - - _BidirectionalIterator __new_middle - = std::rotate(__first_cut, __middle, __second_cut); - std::__merge_without_buffer(__first, __first_cut, __new_middle, - __len11, __len22, __comp); - std::__merge_without_buffer(__new_middle, __second_cut, __last, - __len1 - __len11, __len2 - __len22, __comp); - } - - template - void - __inplace_merge(_BidirectionalIterator __first, - _BidirectionalIterator __middle, - _BidirectionalIterator __last, - _Compare __comp) - { - typedef typename iterator_traits<_BidirectionalIterator>::value_type - _ValueType; - typedef typename iterator_traits<_BidirectionalIterator>::difference_type - _DistanceType; - - if (__first == __middle || __middle == __last) - return; - - const _DistanceType __len1 = std::distance(__first, __middle); - const _DistanceType __len2 = std::distance(__middle, __last); - - typedef _Temporary_buffer<_BidirectionalIterator, _ValueType> _TmpBuf; - _TmpBuf __buf(__first, __len1 + __len2); - - if (__buf.begin() == 0) - std::__merge_without_buffer - (__first, __middle, __last, __len1, __len2, __comp); - else - std::__merge_adaptive - (__first, __middle, __last, __len1, __len2, __buf.begin(), - _DistanceType(__buf.size()), __comp); - } -# 2583 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - inline void - inplace_merge(_BidirectionalIterator __first, - _BidirectionalIterator __middle, - _BidirectionalIterator __last) - { - - - - - - ; - ; - ; - - std::__inplace_merge(__first, __middle, __last, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 2624 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - inline void - inplace_merge(_BidirectionalIterator __first, - _BidirectionalIterator __middle, - _BidirectionalIterator __last, - _Compare __comp) - { - - - - - - - ; - ; - ; - - std::__inplace_merge(__first, __middle, __last, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } - - - - template - _OutputIterator - __move_merge(_InputIterator __first1, _InputIterator __last1, - _InputIterator __first2, _InputIterator __last2, - _OutputIterator __result, _Compare __comp) - { - while (__first1 != __last1 && __first2 != __last2) - { - if (__comp(__first2, __first1)) - { - *__result = std::move(*__first2); - ++__first2; - } - else - { - *__result = std::move(*__first1); - ++__first1; - } - ++__result; - } - return std::move(__first2, __last2, std::move(__first1, __last1, __result)) - - ; - } - - template - void - __merge_sort_loop(_RandomAccessIterator1 __first, - _RandomAccessIterator1 __last, - _RandomAccessIterator2 __result, _Distance __step_size, - _Compare __comp) - { - const _Distance __two_step = 2 * __step_size; - - while (__last - __first >= __two_step) - { - __result = std::__move_merge(__first, __first + __step_size, - __first + __step_size, - __first + __two_step, - __result, __comp); - __first += __two_step; - } - __step_size = std::min(_Distance(__last - __first), __step_size); - - std::__move_merge(__first, __first + __step_size, - __first + __step_size, __last, __result, __comp); - } - - template - - void - __chunk_insertion_sort(_RandomAccessIterator __first, - _RandomAccessIterator __last, - _Distance __chunk_size, _Compare __comp) - { - while (__last - __first >= __chunk_size) - { - std::__insertion_sort(__first, __first + __chunk_size, __comp); - __first += __chunk_size; - } - std::__insertion_sort(__first, __last, __comp); - } - - enum { _S_chunk_size = 7 }; - - template - void - __merge_sort_with_buffer(_RandomAccessIterator __first, - _RandomAccessIterator __last, - _Pointer __buffer, _Compare __comp) - { - typedef typename iterator_traits<_RandomAccessIterator>::difference_type - _Distance; - - const _Distance __len = __last - __first; - const _Pointer __buffer_last = __buffer + __len; - - _Distance __step_size = _S_chunk_size; - std::__chunk_insertion_sort(__first, __last, __step_size, __comp); - - while (__step_size < __len) - { - std::__merge_sort_loop(__first, __last, __buffer, - __step_size, __comp); - __step_size *= 2; - std::__merge_sort_loop(__buffer, __buffer_last, __first, - __step_size, __comp); - __step_size *= 2; - } - } - - template - void - __stable_sort_adaptive(_RandomAccessIterator __first, - _RandomAccessIterator __last, - _Pointer __buffer, _Distance __buffer_size, - _Compare __comp) - { - const _Distance __len = (__last - __first + 1) / 2; - const _RandomAccessIterator __middle = __first + __len; - if (__len > __buffer_size) - { - std::__stable_sort_adaptive(__first, __middle, __buffer, - __buffer_size, __comp); - std::__stable_sort_adaptive(__middle, __last, __buffer, - __buffer_size, __comp); - } - else - { - std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp); - std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp); - } - std::__merge_adaptive(__first, __middle, __last, - _Distance(__middle - __first), - _Distance(__last - __middle), - __buffer, __buffer_size, - __comp); - } - - - template - void - __inplace_stable_sort(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp) - { - if (__last - __first < 15) - { - std::__insertion_sort(__first, __last, __comp); - return; - } - _RandomAccessIterator __middle = __first + (__last - __first) / 2; - std::__inplace_stable_sort(__first, __middle, __comp); - std::__inplace_stable_sort(__middle, __last, __comp); - std::__merge_without_buffer(__first, __middle, __last, - __middle - __first, - __last - __middle, - __comp); - } -# 2797 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - bool - __includes(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _Compare __comp) - { - while (__first1 != __last1 && __first2 != __last2) - if (__comp(__first2, __first1)) - return false; - else if (__comp(__first1, __first2)) - ++__first1; - else - { - ++__first1; - ++__first2; - } - - return __first2 == __last2; - } -# 2837 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline bool - includes(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2) - { - - - - - - - - - - ; - ; - ; - ; - - return std::__includes(__first1, __last1, __first2, __last2, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 2882 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline bool - includes(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _Compare __comp) - { - - - - - - - - - - ; - ; - ; - ; - - return std::__includes(__first1, __last1, __first2, __last2, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } -# 2918 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - bool - __next_permutation(_BidirectionalIterator __first, - _BidirectionalIterator __last, _Compare __comp) - { - if (__first == __last) - return false; - _BidirectionalIterator __i = __first; - ++__i; - if (__i == __last) - return false; - __i = __last; - --__i; - - for(;;) - { - _BidirectionalIterator __ii = __i; - --__i; - if (__comp(__i, __ii)) - { - _BidirectionalIterator __j = __last; - while (!__comp(__i, --__j)) - {} - std::iter_swap(__i, __j); - std::__reverse(__ii, __last, - std::__iterator_category(__first)); - return true; - } - if (__i == __first) - { - std::__reverse(__first, __last, - std::__iterator_category(__first)); - return false; - } - } - } -# 2968 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline bool - next_permutation(_BidirectionalIterator __first, - _BidirectionalIterator __last) - { - - - - - - ; - ; - - return std::__next_permutation - (__first, __last, __gnu_cxx::__ops::__iter_less_iter()); - } -# 3001 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline bool - next_permutation(_BidirectionalIterator __first, - _BidirectionalIterator __last, _Compare __comp) - { - - - - - - - ; - ; - - return std::__next_permutation - (__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } - - template - - bool - __prev_permutation(_BidirectionalIterator __first, - _BidirectionalIterator __last, _Compare __comp) - { - if (__first == __last) - return false; - _BidirectionalIterator __i = __first; - ++__i; - if (__i == __last) - return false; - __i = __last; - --__i; - - for(;;) - { - _BidirectionalIterator __ii = __i; - --__i; - if (__comp(__ii, __i)) - { - _BidirectionalIterator __j = __last; - while (!__comp(--__j, __i)) - {} - std::iter_swap(__i, __j); - std::__reverse(__ii, __last, - std::__iterator_category(__first)); - return true; - } - if (__i == __first) - { - std::__reverse(__first, __last, - std::__iterator_category(__first)); - return false; - } - } - } -# 3071 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline bool - prev_permutation(_BidirectionalIterator __first, - _BidirectionalIterator __last) - { - - - - - - ; - ; - - return std::__prev_permutation(__first, __last, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 3104 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline bool - prev_permutation(_BidirectionalIterator __first, - _BidirectionalIterator __last, _Compare __comp) - { - - - - - - - ; - ; - - return std::__prev_permutation(__first, __last, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } - - - - - template - - _OutputIterator - __replace_copy_if(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, - _Predicate __pred, const _Tp& __new_value) - { - for (; __first != __last; ++__first, (void)++__result) - if (__pred(__first)) - *__result = __new_value; - else - *__result = *__first; - return __result; - } -# 3156 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - replace_copy(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, - const _Tp& __old_value, const _Tp& __new_value) - { - - - - - - - ; - - return std::__replace_copy_if(__first, __last, __result, - __gnu_cxx::__ops::__iter_equals_val(__old_value), - __new_value); - } -# 3191 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - replace_copy_if(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, - _Predicate __pred, const _Tp& __new_value) - { - - - - - - - ; - - return std::__replace_copy_if(__first, __last, __result, - __gnu_cxx::__ops::__pred_iter(__pred), - __new_value); - } -# 3220 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline bool - is_sorted(_ForwardIterator __first, _ForwardIterator __last) - { return std::is_sorted_until(__first, __last) == __last; } -# 3235 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline bool - is_sorted(_ForwardIterator __first, _ForwardIterator __last, - _Compare __comp) - { return std::is_sorted_until(__first, __last, __comp) == __last; } - - template - - _ForwardIterator - __is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, - _Compare __comp) - { - if (__first == __last) - return __last; - - _ForwardIterator __next = __first; - for (++__next; __next != __last; __first = __next, (void)++__next) - if (__comp(__next, __first)) - return __next; - return __next; - } -# 3266 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator - is_sorted_until(_ForwardIterator __first, _ForwardIterator __last) - { - - - - - ; - ; - - return std::__is_sorted_until(__first, __last, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 3291 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator - is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, - _Compare __comp) - { - - - - - - ; - ; - - return std::__is_sorted_until(__first, __last, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } -# 3317 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - constexpr - inline pair - minmax(const _Tp& __a, const _Tp& __b) - { - - - - return __b < __a ? pair(__b, __a) - : pair(__a, __b); - } -# 3338 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - constexpr - inline pair - minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) - { - return __comp(__b, __a) ? pair(__b, __a) - : pair(__a, __b); - } - - template - constexpr - pair<_ForwardIterator, _ForwardIterator> - __minmax_element(_ForwardIterator __first, _ForwardIterator __last, - _Compare __comp) - { - _ForwardIterator __next = __first; - if (__first == __last - || ++__next == __last) - return std::make_pair(__first, __first); - - _ForwardIterator __min{}, __max{}; - if (__comp(__next, __first)) - { - __min = __next; - __max = __first; - } - else - { - __min = __first; - __max = __next; - } - - __first = __next; - ++__first; - - while (__first != __last) - { - __next = __first; - if (++__next == __last) - { - if (__comp(__first, __min)) - __min = __first; - else if (!__comp(__first, __max)) - __max = __first; - break; - } - - if (__comp(__next, __first)) - { - if (__comp(__next, __min)) - __min = __next; - if (!__comp(__first, __max)) - __max = __first; - } - else - { - if (__comp(__first, __min)) - __min = __first; - if (!__comp(__next, __max)) - __max = __next; - } - - __first = __next; - ++__first; - } - - return std::make_pair(__min, __max); - } -# 3418 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - constexpr - inline pair<_ForwardIterator, _ForwardIterator> - minmax_element(_ForwardIterator __first, _ForwardIterator __last) - { - - - - - ; - ; - - return std::__minmax_element(__first, __last, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 3446 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - constexpr - inline pair<_ForwardIterator, _ForwardIterator> - minmax_element(_ForwardIterator __first, _ForwardIterator __last, - _Compare __comp) - { - - - - - - ; - ; - - return std::__minmax_element(__first, __last, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } - - - template - constexpr - inline _Tp - min(initializer_list<_Tp> __l) - { return *std::min_element(__l.begin(), __l.end()); } - - template - constexpr - inline _Tp - min(initializer_list<_Tp> __l, _Compare __comp) - { return *std::min_element(__l.begin(), __l.end(), __comp); } - - template - constexpr - inline _Tp - max(initializer_list<_Tp> __l) - { return *std::max_element(__l.begin(), __l.end()); } - - template - constexpr - inline _Tp - max(initializer_list<_Tp> __l, _Compare __comp) - { return *std::max_element(__l.begin(), __l.end(), __comp); } - - template - constexpr - inline pair<_Tp, _Tp> - minmax(initializer_list<_Tp> __l) - { - pair __p = - std::minmax_element(__l.begin(), __l.end()); - return std::make_pair(*__p.first, *__p.second); - } - - template - constexpr - inline pair<_Tp, _Tp> - minmax(initializer_list<_Tp> __l, _Compare __comp) - { - pair __p = - std::minmax_element(__l.begin(), __l.end(), __comp); - return std::make_pair(*__p.first, *__p.second); - } -# 3523 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline bool - is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _BinaryPredicate __pred) - { - - - - - - - ; - - return std::__is_permutation(__first1, __last1, __first2, - __gnu_cxx::__ops::__iter_comp_iter(__pred)); - } - - - template - - bool - __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2, - _BinaryPredicate __pred) - { - using _Cat1 - = typename iterator_traits<_ForwardIterator1>::iterator_category; - using _Cat2 - = typename iterator_traits<_ForwardIterator2>::iterator_category; - using _It1_is_RA = is_same<_Cat1, random_access_iterator_tag>; - using _It2_is_RA = is_same<_Cat2, random_access_iterator_tag>; - constexpr bool __ra_iters = _It1_is_RA() && _It2_is_RA(); - if (__ra_iters) - { - auto __d1 = std::distance(__first1, __last1); - auto __d2 = std::distance(__first2, __last2); - if (__d1 != __d2) - return false; - } - - - - for (; __first1 != __last1 && __first2 != __last2; - ++__first1, (void)++__first2) - if (!__pred(__first1, __first2)) - break; - - if (__ra_iters) - { - if (__first1 == __last1) - return true; - } - else - { - auto __d1 = std::distance(__first1, __last1); - auto __d2 = std::distance(__first2, __last2); - if (__d1 == 0 && __d2 == 0) - return true; - if (__d1 != __d2) - return false; - } - - for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) - { - if (__scan != std::__find_if(__first1, __scan, - __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) - continue; - - auto __matches = std::__count_if(__first2, __last2, - __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); - if (0 == __matches - || std::__count_if(__scan, __last1, - __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) - != __matches) - return false; - } - return true; - } -# 3618 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline bool - is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2) - { - ; - ; - - return - std::__is_permutation(__first1, __last1, __first2, __last2, - __gnu_cxx::__ops::__iter_equal_to_iter()); - } -# 3646 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline bool - is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2, - _BinaryPredicate __pred) - { - ; - ; - - return std::__is_permutation(__first1, __last1, __first2, __last2, - __gnu_cxx::__ops::__iter_comp_iter(__pred)); - } -# 3723 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - pair<_IntType, _IntType> - __gen_two_uniform_ints(_IntType __b0, _IntType __b1, - _UniformRandomBitGenerator&& __g) - { - _IntType __x - = uniform_int_distribution<_IntType>{0, (__b0 * __b1) - 1}(__g); - return std::make_pair(__x / __b1, __x % __b1); - } -# 3745 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - void - shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, - _UniformRandomNumberGenerator&& __g) - { - - - - ; - - if (__first == __last) - return; - - typedef typename iterator_traits<_RandomAccessIterator>::difference_type - _DistanceType; - - typedef typename std::make_unsigned<_DistanceType>::type __ud_type; - typedef typename std::uniform_int_distribution<__ud_type> __distr_type; - typedef typename __distr_type::param_type __p_type; - - typedef typename remove_reference<_UniformRandomNumberGenerator>::type - _Gen; - typedef typename common_type::type - __uc_type; - - const __uc_type __urngrange = __g.max() - __g.min(); - const __uc_type __urange = __uc_type(__last - __first); - - if (__urngrange / __urange >= __urange) - - { - _RandomAccessIterator __i = __first + 1; - - - - - - if ((__urange % 2) == 0) - { - __distr_type __d{0, 1}; - std::iter_swap(__i++, __first + __d(__g)); - } - - - - - - while (__i != __last) - { - const __uc_type __swap_range = __uc_type(__i - __first) + 1; - - const pair<__uc_type, __uc_type> __pospos = - __gen_two_uniform_ints(__swap_range, __swap_range + 1, __g); - - std::iter_swap(__i++, __first + __pospos.first); - std::iter_swap(__i++, __first + __pospos.second); - } - - return; - } - - __distr_type __d; - - for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) - std::iter_swap(__i, __first + __d(__g, __p_type(0, __i - __first))); - } - - - - - -# 3830 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - _Function - for_each(_InputIterator __first, _InputIterator __last, _Function __f) - { - - - ; - for (; __first != __last; ++__first) - __f(*__first); - return __f; - } -# 3891 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _InputIterator - find(_InputIterator __first, _InputIterator __last, - const _Tp& __val) - { - - - - - ; - return std::__find_if(__first, __last, - __gnu_cxx::__ops::__iter_equals_val(__val)); - } -# 3916 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _InputIterator - find_if(_InputIterator __first, _InputIterator __last, - _Predicate __pred) - { - - - - - ; - - return std::__find_if(__first, __last, - __gnu_cxx::__ops::__pred_iter(__pred)); - } -# 3948 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - _InputIterator - find_first_of(_InputIterator __first1, _InputIterator __last1, - _ForwardIterator __first2, _ForwardIterator __last2) - { - - - - - - - ; - ; - - for (; __first1 != __last1; ++__first1) - for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) - if (*__first1 == *__iter) - return __first1; - return __last1; - } -# 3989 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - _InputIterator - find_first_of(_InputIterator __first1, _InputIterator __last1, - _ForwardIterator __first2, _ForwardIterator __last2, - _BinaryPredicate __comp) - { - - - - - - - ; - ; - - for (; __first1 != __last1; ++__first1) - for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) - if (__comp(*__first1, *__iter)) - return __first1; - return __last1; - } -# 4022 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator - adjacent_find(_ForwardIterator __first, _ForwardIterator __last) - { - - - - - ; - - return std::__adjacent_find(__first, __last, - __gnu_cxx::__ops::__iter_equal_to_iter()); - } -# 4048 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator - adjacent_find(_ForwardIterator __first, _ForwardIterator __last, - _BinaryPredicate __binary_pred) - { - - - - - - ; - - return std::__adjacent_find(__first, __last, - __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); - } -# 4074 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline typename iterator_traits<_InputIterator>::difference_type - count(_InputIterator __first, _InputIterator __last, const _Tp& __value) - { - - - - - ; - - return std::__count_if(__first, __last, - __gnu_cxx::__ops::__iter_equals_val(__value)); - } -# 4098 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline typename iterator_traits<_InputIterator>::difference_type - count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) - { - - - - - ; - - return std::__count_if(__first, __last, - __gnu_cxx::__ops::__pred_iter(__pred)); - } -# 4139 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator1 - search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2) - { - - - - - - - ; - ; - - return std::__search(__first1, __last1, __first2, __last2, - __gnu_cxx::__ops::__iter_equal_to_iter()); - } -# 4179 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator1 - search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2, - _BinaryPredicate __predicate) - { - - - - - - - ; - ; - - return std::__search(__first1, __last1, __first2, __last2, - __gnu_cxx::__ops::__iter_comp_iter(__predicate)); - } -# 4215 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator - search_n(_ForwardIterator __first, _ForwardIterator __last, - _Integer __count, const _Tp& __val) - { - - - - - ; - - return std::__search_n(__first, __last, __count, - __gnu_cxx::__ops::__iter_equals_val(__val)); - } -# 4249 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator - search_n(_ForwardIterator __first, _ForwardIterator __last, - _Integer __count, const _Tp& __val, - _BinaryPredicate __binary_pred) - { - - - - - ; - - return std::__search_n(__first, __last, __count, - __gnu_cxx::__ops::__iter_comp_val(__binary_pred, __val)); - } -# 4298 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - _OutputIterator - transform(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _UnaryOperation __unary_op) - { - - - - - - ; - - for (; __first != __last; ++__first, (void)++__result) - *__result = __unary_op(*__first); - return __result; - } -# 4336 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - _OutputIterator - transform(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _OutputIterator __result, - _BinaryOperation __binary_op) - { - - - - - - - ; - - for (; __first1 != __last1; ++__first1, (void)++__first2, ++__result) - *__result = __binary_op(*__first1, *__first2); - return __result; - } -# 4370 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - void - replace(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __old_value, const _Tp& __new_value) - { - - - - - - - - ; - - for (; __first != __last; ++__first) - if (*__first == __old_value) - *__first = __new_value; - } -# 4403 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - void - replace_if(_ForwardIterator __first, _ForwardIterator __last, - _Predicate __pred, const _Tp& __new_value) - { - - - - - - - - ; - - for (; __first != __last; ++__first) - if (__pred(*__first)) - *__first = __new_value; - } -# 4436 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - void - generate(_ForwardIterator __first, _ForwardIterator __last, - _Generator __gen) - { - - - - - ; - - for (; __first != __last; ++__first) - *__first = __gen(); - } -# 4470 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - _OutputIterator - generate_n(_OutputIterator __first, _Size __n, _Generator __gen) - { - - - - - - typedef __decltype(std::__size_to_integer(__n)) _IntSize; - for (_IntSize __niter = std::__size_to_integer(__n); - __niter > 0; --__niter, (void) ++__first) - *__first = __gen(); - return __first; - } -# 4508 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - unique_copy(_InputIterator __first, _InputIterator __last, - _OutputIterator __result) - { - - - - - - - ; - - if (__first == __last) - return __result; - return std::__unique_copy(__first, __last, __result, - __gnu_cxx::__ops::__iter_equal_to_iter(), - std::__iterator_category(__first), - std::__iterator_category(__result)); - } -# 4549 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - unique_copy(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, - _BinaryPredicate __binary_pred) - { - - - - - ; - - if (__first == __last) - return __result; - return std::__unique_copy(__first, __last, __result, - __gnu_cxx::__ops::__iter_comp_iter(__binary_pred), - std::__iterator_category(__first), - std::__iterator_category(__result)); - } -# 4583 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - inline void - random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) - { - - - - ; - - if (__first != __last) - for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) - { - - _RandomAccessIterator __j = __first - + std::rand() % ((__i - __first) + 1); - if (__i != __j) - std::iter_swap(__i, __j); - } - } -# 4618 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - void - random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, - - _RandomNumberGenerator&& __rand) - - - - { - - - - ; - - if (__first == __last) - return; - for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) - { - _RandomAccessIterator __j = __first + __rand((__i - __first) + 1); - if (__i != __j) - std::iter_swap(__i, __j); - } - } -# 4658 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _ForwardIterator - partition(_ForwardIterator __first, _ForwardIterator __last, - _Predicate __pred) - { - - - - - - ; - - return std::__partition(__first, __last, __pred, - std::__iterator_category(__first)); - } -# 4692 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline void - partial_sort(_RandomAccessIterator __first, - _RandomAccessIterator __middle, - _RandomAccessIterator __last) - { - - - - - - ; - ; - ; - - std::__partial_sort(__first, __middle, __last, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 4731 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline void - partial_sort(_RandomAccessIterator __first, - _RandomAccessIterator __middle, - _RandomAccessIterator __last, - _Compare __comp) - { - - - - - - - ; - ; - ; - - std::__partial_sort(__first, __middle, __last, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } -# 4768 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline void - nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, - _RandomAccessIterator __last) - { - - - - - - ; - ; - ; - - if (__first == __last || __nth == __last) - return; - - std::__introselect(__first, __nth, __last, - std::__lg(__last - __first) * 2, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 4808 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline void - nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, - _RandomAccessIterator __last, _Compare __comp) - { - - - - - - - ; - ; - ; - - if (__first == __last || __nth == __last) - return; - - std::__introselect(__first, __nth, __last, - std::__lg(__last - __first) * 2, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } -# 4846 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline void - sort(_RandomAccessIterator __first, _RandomAccessIterator __last) - { - - - - - - ; - ; - - std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter()); - } -# 4877 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline void - sort(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare __comp) - { - - - - - - - ; - ; - - std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } - - template - - _OutputIterator - __merge(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result, _Compare __comp) - { - while (__first1 != __last1 && __first2 != __last2) - { - if (__comp(__first2, __first1)) - { - *__result = *__first2; - ++__first2; - } - else - { - *__result = *__first1; - ++__first1; - } - ++__result; - } - return std::copy(__first2, __last2, - std::copy(__first1, __last1, __result)); - } -# 4940 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - merge(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result) - { - - - - - - - - - - - ; - ; - ; - ; - - return std::__merge(__first1, __last1, - __first2, __last2, __result, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 4991 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - merge(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result, _Compare __comp) - { - - - - - - - - - - - ; - ; - ; - ; - - return std::__merge(__first1, __last1, - __first2, __last2, __result, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } - - template - inline void - __stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare __comp) - { - typedef typename iterator_traits<_RandomAccessIterator>::value_type - _ValueType; - typedef typename iterator_traits<_RandomAccessIterator>::difference_type - _DistanceType; - - typedef _Temporary_buffer<_RandomAccessIterator, _ValueType> _TmpBuf; - _TmpBuf __buf(__first, std::distance(__first, __last)); - - if (__buf.begin() == 0) - std::__inplace_stable_sort(__first, __last, __comp); - else - std::__stable_sort_adaptive(__first, __last, __buf.begin(), - _DistanceType(__buf.size()), __comp); - } -# 5056 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - inline void - stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) - { - - - - - - ; - ; - - std::__stable_sort(__first, __last, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 5090 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - inline void - stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare __comp) - { - - - - - - - ; - ; - - std::__stable_sort(__first, __last, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } - - template - - _OutputIterator - __set_union(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result, _Compare __comp) - { - while (__first1 != __last1 && __first2 != __last2) - { - if (__comp(__first1, __first2)) - { - *__result = *__first1; - ++__first1; - } - else if (__comp(__first2, __first1)) - { - *__result = *__first2; - ++__first2; - } - else - { - *__result = *__first1; - ++__first1; - ++__first2; - } - ++__result; - } - return std::copy(__first2, __last2, - std::copy(__first1, __last1, __result)); - } -# 5160 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - set_union(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result) - { - - - - - - - - - - - - - - ; - ; - ; - ; - - return std::__set_union(__first1, __last1, - __first2, __last2, __result, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 5211 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - set_union(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result, _Compare __comp) - { - - - - - - - - - - - - - - ; - ; - ; - ; - - return std::__set_union(__first1, __last1, - __first2, __last2, __result, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } - - template - - _OutputIterator - __set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result, _Compare __comp) - { - while (__first1 != __last1 && __first2 != __last2) - if (__comp(__first1, __first2)) - ++__first1; - else if (__comp(__first2, __first1)) - ++__first2; - else - { - *__result = *__first1; - ++__first1; - ++__first2; - ++__result; - } - return __result; - } -# 5284 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result) - { - - - - - - - - - - - - ; - ; - ; - ; - - return std::__set_intersection(__first1, __last1, - __first2, __last2, __result, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 5334 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result, _Compare __comp) - { - - - - - - - - - - - - ; - ; - ; - ; - - return std::__set_intersection(__first1, __last1, - __first2, __last2, __result, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } - - template - - _OutputIterator - __set_difference(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result, _Compare __comp) - { - while (__first1 != __last1 && __first2 != __last2) - if (__comp(__first1, __first2)) - { - *__result = *__first1; - ++__first1; - ++__result; - } - else if (__comp(__first2, __first1)) - ++__first2; - else - { - ++__first1; - ++__first2; - } - return std::copy(__first1, __last1, __result); - } -# 5409 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - set_difference(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result) - { - - - - - - - - - - - - ; - ; - ; - ; - - return std::__set_difference(__first1, __last1, - __first2, __last2, __result, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 5461 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - set_difference(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result, _Compare __comp) - { - - - - - - - - - - - - ; - ; - ; - ; - - return std::__set_difference(__first1, __last1, - __first2, __last2, __result, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } - - template - - _OutputIterator - __set_symmetric_difference(_InputIterator1 __first1, - _InputIterator1 __last1, - _InputIterator2 __first2, - _InputIterator2 __last2, - _OutputIterator __result, - _Compare __comp) - { - while (__first1 != __last1 && __first2 != __last2) - if (__comp(__first1, __first2)) - { - *__result = *__first1; - ++__first1; - ++__result; - } - else if (__comp(__first2, __first1)) - { - *__result = *__first2; - ++__first2; - ++__result; - } - else - { - ++__first1; - ++__first2; - } - return std::copy(__first2, __last2, - std::copy(__first1, __last1, __result)); - } -# 5542 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result) - { - - - - - - - - - - - - - - ; - ; - ; - ; - - return std::__set_symmetric_difference(__first1, __last1, - __first2, __last2, __result, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 5594 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - - inline _OutputIterator - set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result, - _Compare __comp) - { - - - - - - - - - - - - - - ; - ; - ; - ; - - return std::__set_symmetric_difference(__first1, __last1, - __first2, __last2, __result, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } - - template - constexpr - _ForwardIterator - __min_element(_ForwardIterator __first, _ForwardIterator __last, - _Compare __comp) - { - if (__first == __last) - return __first; - _ForwardIterator __result = __first; - while (++__first != __last) - if (__comp(__first, __result)) - __result = __first; - return __result; - } -# 5648 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - constexpr - _ForwardIterator - inline min_element(_ForwardIterator __first, _ForwardIterator __last) - { - - - - - ; - ; - - return std::__min_element(__first, __last, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 5673 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - constexpr - inline _ForwardIterator - min_element(_ForwardIterator __first, _ForwardIterator __last, - _Compare __comp) - { - - - - - - ; - ; - - return std::__min_element(__first, __last, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } - - template - constexpr - _ForwardIterator - __max_element(_ForwardIterator __first, _ForwardIterator __last, - _Compare __comp) - { - if (__first == __last) return __first; - _ForwardIterator __result = __first; - while (++__first != __last) - if (__comp(__result, __first)) - __result = __first; - return __result; - } -# 5712 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - constexpr - inline _ForwardIterator - max_element(_ForwardIterator __first, _ForwardIterator __last) - { - - - - - ; - ; - - return std::__max_element(__first, __last, - __gnu_cxx::__ops::__iter_less_iter()); - } -# 5737 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - template - constexpr - inline _ForwardIterator - max_element(_ForwardIterator __first, _ForwardIterator __last, - _Compare __comp) - { - - - - - - ; - ; - - return std::__max_element(__first, __last, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } - - - - template - _RandomAccessIterator - __sample(_InputIterator __first, _InputIterator __last, input_iterator_tag, - _RandomAccessIterator __out, random_access_iterator_tag, - _Size __n, _UniformRandomBitGenerator&& __g) - { - using __distrib_type = uniform_int_distribution<_Size>; - using __param_type = typename __distrib_type::param_type; - __distrib_type __d{}; - _Size __sample_sz = 0; - while (__first != __last && __sample_sz != __n) - { - __out[__sample_sz++] = *__first; - ++__first; - } - for (auto __pop_sz = __sample_sz; __first != __last; - ++__first, (void) ++__pop_sz) - { - const auto __k = __d(__g, __param_type{0, __pop_sz}); - if (__k < __n) - __out[__k] = *__first; - } - return __out + __sample_sz; - } - - - template - _OutputIterator - __sample(_ForwardIterator __first, _ForwardIterator __last, - forward_iterator_tag, - _OutputIterator __out, _Cat, - _Size __n, _UniformRandomBitGenerator&& __g) - { - using __distrib_type = uniform_int_distribution<_Size>; - using __param_type = typename __distrib_type::param_type; - using _USize = make_unsigned_t<_Size>; - using _Gen = remove_reference_t<_UniformRandomBitGenerator>; - using __uc_type = common_type_t; - - __distrib_type __d{}; - _Size __unsampled_sz = std::distance(__first, __last); - __n = std::min(__n, __unsampled_sz); - - - - - const __uc_type __urngrange = __g.max() - __g.min(); - if (__urngrange / __uc_type(__unsampled_sz) >= __uc_type(__unsampled_sz)) - - - { - while (__n != 0 && __unsampled_sz >= 2) - { - const pair<_Size, _Size> __p = - __gen_two_uniform_ints(__unsampled_sz, __unsampled_sz - 1, __g); - - --__unsampled_sz; - if (__p.first < __n) - { - *__out++ = *__first; - --__n; - } - - ++__first; - - if (__n == 0) break; - - --__unsampled_sz; - if (__p.second < __n) - { - *__out++ = *__first; - --__n; - } - - ++__first; - } - } - - - - for (; __n != 0; ++__first) - if (__d(__g, __param_type{0, --__unsampled_sz}) < __n) - { - *__out++ = *__first; - --__n; - } - return __out; - } -# 5880 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/bits/stl_algo.h" 3 - - -} -# 63 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/algorithm" 2 3 -# 35 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Matrix.hpp" 2 -# 1 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.hpp" 1 -# 36 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Matrix.hpp" 2 - - - - -# 39 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Matrix.hpp" -namespace SGTELIB { - - - class Matrix { - - private: - - std::string _name; - - int _nbRows; - int _nbCols; - - double ** _X; - - public: - - - explicit Matrix ( const std::string & name , - int nbRows , - int nbCols ); - - - explicit Matrix ( const std::string & name , - int nbRows , - int nbCols , - double ** A ); - - - explicit Matrix ( const std::string & file_name ); - - - Matrix ( void ); - - - Matrix ( double ); - - - Matrix ( const Matrix & ); - - - Matrix & operator = ( const Matrix & A ); - - - - - - - virtual ~Matrix ( void ); - - - void set_random ( double l , double u , bool round = false ); - void fill (double v); - - - void add_rows ( const Matrix & X ); - void add_cols ( const Matrix & X ); - void add_row ( const double * row ); - void add_rows ( const int p); - void add_cols ( const int p); - void remove_rows ( const int p); - - - inline int get_nb_rows ( void ) const { return _nbRows; } - inline int get_nb_cols ( void ) const { return _nbCols; } - inline int get_numel ( void ) const { return _nbRows*_nbCols; } - - - double get ( const int k ) const; - - inline double get ( const int i , const int j ) const { - - - - - - - - return _X[i][j]; - } - - const double & operator [] ( int k ) const; - double & operator [] ( int k ); - - - - SGTELIB::Matrix get ( const std::list & list_cols , - const std::list & list_rows) const; - - SGTELIB::Matrix get_row (const int i) const; - SGTELIB::Matrix get_col (const int i) const; - - SGTELIB::Matrix get_rows (const std::list & list_rows) const; - SGTELIB::Matrix get_cols (const std::list & list_cols) const; - - SGTELIB::Matrix get_rows (const int i1, const int i2) const; - SGTELIB::Matrix get_cols (const int i1, const int i2) const; - - void swap_rows (const int i1, const int i2); - - - - int get_nb_diff_values ( int j ) const; - - - void get_fix_columns ( std::list & fix_col ) const; - - - bool is_sym ( void ) const; - - - inline void set_name ( const std::string & name ) { _name = name; } - inline std::string get_name ( void ) const { return _name; } - - void set (const int i , const int j , const double d ); - void set_row (const SGTELIB::Matrix & T , const int i); - void set_col (const SGTELIB::Matrix & T , const int j); - void set_row (const double v , const int i); - void set_col (const double v , const int j); - - - void swap (const int i1 , const int j1 , const int i2 , const int j2 ); - - - void multiply_row (const double v , const int i); - void multiply_col (const double v , const int j); - - - SGTELIB::Matrix SVD_inverse ( void ) const; - - - SGTELIB::Matrix diag_inverse ( void ) const; - - - static SGTELIB::Matrix row_vector ( const double * v, - const int n ); - - static SGTELIB::Matrix col_vector ( const double * v, - const int n ); - - - SGTELIB::Matrix transpose ( void ) const; - - - SGTELIB::Matrix diag (void ) const; - - - double trace ( void ) const; - - - double rmse ( void ) const; - - - double norm ( void ) const; - double normsquare ( void ) const; - void normalize_cols ( void ); - SGTELIB::Matrix col_norm ( const norm_t nt ) const; - - - double sum ( void ) const; - SGTELIB::Matrix sum ( const int direction ) const; - - - double mean ( void ) const; - - - int count ( void ) const; - - - - static SGTELIB::Matrix product ( const SGTELIB::Matrix & A, - const SGTELIB::Matrix & B); - - static SGTELIB::Matrix product ( const SGTELIB::Matrix & A, - const SGTELIB::Matrix & B, - const SGTELIB::Matrix & C); - - static SGTELIB::Matrix product ( const SGTELIB::Matrix & A, - const SGTELIB::Matrix & B, - const SGTELIB::Matrix & C, - const SGTELIB::Matrix & D); - - inline void product ( const int i , const int j , const double v){ _X[i][j]*=v; }; - - - - - - static SGTELIB::Matrix subset_product (const SGTELIB::Matrix & A, - const SGTELIB::Matrix & B, - int p, - int q, - int r); - - static SGTELIB::Matrix diagA_product ( const SGTELIB::Matrix & A, - const SGTELIB::Matrix & B); - - static SGTELIB::Matrix diagB_product ( const SGTELIB::Matrix & A, - const SGTELIB::Matrix & B); - - static SGTELIB::Matrix transposeA_product ( const SGTELIB::Matrix & A, - const SGTELIB::Matrix & B); - - - static SGTELIB::Matrix hadamard_product ( const SGTELIB::Matrix & A, - const SGTELIB::Matrix & B); - - static SGTELIB::Matrix hadamard_square ( const SGTELIB::Matrix & A ); - - static SGTELIB::Matrix hadamard_sqrt ( const SGTELIB::Matrix & A ); - - static SGTELIB::Matrix hadamard_power ( const SGTELIB::Matrix & A , - const double e ); - - void hadamard_inverse ( void ); - void hadamard_sqrt ( void ); - void hadamard_square ( void ); - - - static SGTELIB::Matrix add ( const SGTELIB::Matrix & A, - const SGTELIB::Matrix & B); - - - void add ( const SGTELIB::Matrix & B); - void add ( const int i , const int j , const double v){ _X[i][j]+=v; }; - - - static SGTELIB::Matrix add_fill ( const SGTELIB::Matrix & A, - const SGTELIB::Matrix & B); - - - static SGTELIB::Matrix sub ( const SGTELIB::Matrix & A, - const SGTELIB::Matrix & B); - - void sub ( const SGTELIB::Matrix & B); - - - static SGTELIB::Matrix identity ( const int n ); - - - static SGTELIB::Matrix ones ( const int nbRows , const int nbCols ); - - - SGTELIB::Matrix random_line_permutation ( void ) const; - - - SGTELIB::Matrix rank ( void ) const; - - - static SGTELIB::Matrix conjugate_solve ( const SGTELIB::Matrix & A , - const SGTELIB::Matrix & b , - const SGTELIB::Matrix & x0 , - const double tol); - - - SGTELIB::Matrix lu_inverse ( void ) const; - SGTELIB::Matrix lu_inverse ( double * det ) const; - - - SGTELIB::Matrix cholesky ( void ) const; - SGTELIB::Matrix cholesky_inverse ( double * det ) const; - SGTELIB::Matrix cholesky_inverse ( void ) const; - static SGTELIB::Matrix cholesky_solve ( const SGTELIB::Matrix & A , - const SGTELIB::Matrix & b ); - - - - - static SGTELIB::Matrix tril_inverse (const SGTELIB::Matrix & L ); - - static SGTELIB::Matrix triu_solve ( const SGTELIB::Matrix & U , - const SGTELIB::Matrix & b ); - - static SGTELIB::Matrix tril_solve ( const SGTELIB::Matrix & L , - const SGTELIB::Matrix & b ); - - bool SVD_decomposition ( std::string & error_msg , - SGTELIB::Matrix * &MAT_U, - SGTELIB::Matrix * &MAT_W, - SGTELIB::Matrix * &MAT_V, - int max_mpn = 1500 ) const; - - bool SVD_decomposition ( std::string & error_msg , - double ** U , - double * W , - double ** V , - int max_mpn = 1500 ) const; - - - static SGTELIB::Matrix get_matrix_P ( const SGTELIB::Matrix & Ai, - const SGTELIB::Matrix & H ); - - static double get_trace_P ( const SGTELIB::Matrix & Ai, - const SGTELIB::Matrix & H ); - - static SGTELIB::Matrix get_matrix_PZs ( const SGTELIB::Matrix & Ai, - const SGTELIB::Matrix & H , - const SGTELIB::Matrix & Zs); - - static SGTELIB::Matrix get_matrix_dPiPZs( const SGTELIB::Matrix & Ai, - const SGTELIB::Matrix & H , - const SGTELIB::Matrix & Zs); - - static SGTELIB::Matrix get_matrix_dPiPZs( const SGTELIB::Matrix & Ai, - const SGTELIB::Matrix & H , - const SGTELIB::Matrix & Zs , - const SGTELIB::Matrix & ALPHA); - - - static SGTELIB::Matrix get_matrix_dPi ( const SGTELIB::Matrix & Ai, - const SGTELIB::Matrix & H ); - - - double max (void); - double min (void); - static SGTELIB::Matrix max ( const SGTELIB::Matrix & A , - const SGTELIB::Matrix & B ); - static SGTELIB::Matrix min ( const SGTELIB::Matrix & A , - const SGTELIB::Matrix & B ); - - - int get_max_index ( void ); - int get_min_index ( void ); - int get_min_index_row ( const int i ); - int get_min_index_col ( const int j ); - - - void display ( std::ostream & out ) const; - void display_short( std::ostream & out ) const; - void write ( const std::string & file_name ) const; - void display_size ( std::ostream & out ) const; - - - static SGTELIB::Matrix import_data ( const std::string & file_name ); - static SGTELIB::Matrix string_to_matrix ( std::string s ); - static SGTELIB::Matrix string_to_row ( const std::string & s , int nbCols = 0 ); - - - static SGTELIB::Matrix get_distances_norm1 ( const SGTELIB::Matrix & A , - const SGTELIB::Matrix & B ); - static SGTELIB::Matrix get_distances_norm2 ( const SGTELIB::Matrix & A , - const SGTELIB::Matrix & B ); - static SGTELIB::Matrix get_distances_norminf ( const SGTELIB::Matrix & A , - const SGTELIB::Matrix & B ); - - int find_row (SGTELIB::Matrix & R); - - - bool has_nan (void) const; - bool has_inf (void) const; - void replace_nan (double d); - - - static SGTELIB::Matrix get_poll_directions ( const SGTELIB::Matrix& scaling, - const SGTELIB::param_domain_t * domain, - double psize ); - - - SGTELIB::Matrix LUPinverse (void); - - }; -} - -SGTELIB::Matrix operator * (const SGTELIB::Matrix & A , const double v ); -SGTELIB::Matrix operator * (const double v , const SGTELIB::Matrix & A); -SGTELIB::Matrix operator * (const SGTELIB::Matrix & A , const SGTELIB::Matrix & B); -SGTELIB::Matrix operator + (const SGTELIB::Matrix & A , const SGTELIB::Matrix & B); -SGTELIB::Matrix operator + (const SGTELIB::Matrix & A , const double v ); -SGTELIB::Matrix operator + (const double v , const SGTELIB::Matrix & A); -SGTELIB::Matrix operator - (const SGTELIB::Matrix & A , const SGTELIB::Matrix & B); -SGTELIB::Matrix operator - (const SGTELIB::Matrix & A , const double v); -SGTELIB::Matrix operator - (const double v , const SGTELIB::Matrix & A); -SGTELIB::Matrix operator - (const SGTELIB::Matrix & A); -SGTELIB::Matrix operator / (const SGTELIB::Matrix & A , const double v ); -# 32 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.hpp" 2 -# 1 "/usr/include/sys/stat.h" 1 3 4 -# 104 "/usr/include/sys/stat.h" 3 4 - -# 104 "/usr/include/sys/stat.h" 3 4 -extern "C" { - -# 1 "/usr/include/bits/stat.h" 1 3 4 -# 46 "/usr/include/bits/stat.h" 3 4 -struct stat - { - __dev_t st_dev; - - - - - __ino_t st_ino; - - - - - - - - __nlink_t st_nlink; - __mode_t st_mode; - - __uid_t st_uid; - __gid_t st_gid; - - int __pad0; - - __dev_t st_rdev; - - - - - __off_t st_size; - - - - __blksize_t st_blksize; - - __blkcnt_t st_blocks; -# 91 "/usr/include/bits/stat.h" 3 4 - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; -# 106 "/usr/include/bits/stat.h" 3 4 - __syscall_slong_t __unused[3]; -# 115 "/usr/include/bits/stat.h" 3 4 - }; - - - -struct stat64 - { - __dev_t st_dev; - - __ino64_t st_ino; - __nlink_t st_nlink; - __mode_t st_mode; - - - - - - - __uid_t st_uid; - __gid_t st_gid; - - int __pad0; - __dev_t st_rdev; - __off_t st_size; - - - - - - __blksize_t st_blksize; - __blkcnt64_t st_blocks; - - - - - - - - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; -# 164 "/usr/include/bits/stat.h" 3 4 - __syscall_slong_t __unused[3]; - - - - }; -# 107 "/usr/include/sys/stat.h" 2 3 4 -# 210 "/usr/include/sys/stat.h" 3 4 -extern int stat (const char *__restrict __file, - struct stat *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); - - - -extern int fstat (int __fd, struct stat *__buf) throw () __attribute__ ((__nonnull__ (2))); -# 229 "/usr/include/sys/stat.h" 3 4 -extern int stat64 (const char *__restrict __file, - struct stat64 *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); -extern int fstat64 (int __fd, struct stat64 *__buf) throw () __attribute__ ((__nonnull__ (2))); - - - - - - - -extern int fstatat (int __fd, const char *__restrict __file, - struct stat *__restrict __buf, int __flag) - throw () __attribute__ ((__nonnull__ (2, 3))); -# 254 "/usr/include/sys/stat.h" 3 4 -extern int fstatat64 (int __fd, const char *__restrict __file, - struct stat64 *__restrict __buf, int __flag) - throw () __attribute__ ((__nonnull__ (2, 3))); - - - - - - - -extern int lstat (const char *__restrict __file, - struct stat *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); -# 277 "/usr/include/sys/stat.h" 3 4 -extern int lstat64 (const char *__restrict __file, - struct stat64 *__restrict __buf) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - - - -extern int chmod (const char *__file, __mode_t __mode) - throw () __attribute__ ((__nonnull__ (1))); - - - - - -extern int lchmod (const char *__file, __mode_t __mode) - throw () __attribute__ ((__nonnull__ (1))); - - - - -extern int fchmod (int __fd, __mode_t __mode) throw (); - - - - - -extern int fchmodat (int __fd, const char *__file, __mode_t __mode, - int __flag) - throw () __attribute__ ((__nonnull__ (2))) ; - - - - - - -extern __mode_t umask (__mode_t __mask) throw (); - - - - -extern __mode_t getumask (void) throw (); - - - -extern int mkdir (const char *__path, __mode_t __mode) - throw () __attribute__ ((__nonnull__ (1))); - - - - - -extern int mkdirat (int __fd, const char *__path, __mode_t __mode) - throw () __attribute__ ((__nonnull__ (2))); - - - - - - -extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev) - throw () __attribute__ ((__nonnull__ (1))); - - - - - -extern int mknodat (int __fd, const char *__path, __mode_t __mode, - __dev_t __dev) throw () __attribute__ ((__nonnull__ (2))); - - - - - -extern int mkfifo (const char *__path, __mode_t __mode) - throw () __attribute__ ((__nonnull__ (1))); - - - - - -extern int mkfifoat (int __fd, const char *__path, __mode_t __mode) - throw () __attribute__ ((__nonnull__ (2))); - - - - - -extern int utimensat (int __fd, const char *__path, - const struct timespec __times[2], - int __flags) - throw () __attribute__ ((__nonnull__ (2))); - - - - -extern int futimens (int __fd, const struct timespec __times[2]) throw (); -# 400 "/usr/include/sys/stat.h" 3 4 -extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) - throw () __attribute__ ((__nonnull__ (3))); -extern int __xstat (int __ver, const char *__filename, - struct stat *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); -extern int __lxstat (int __ver, const char *__filename, - struct stat *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); -extern int __fxstatat (int __ver, int __fildes, const char *__filename, - struct stat *__stat_buf, int __flag) - throw () __attribute__ ((__nonnull__ (3, 4))); -# 433 "/usr/include/sys/stat.h" 3 4 -extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) - throw () __attribute__ ((__nonnull__ (3))); -extern int __xstat64 (int __ver, const char *__filename, - struct stat64 *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); -extern int __lxstat64 (int __ver, const char *__filename, - struct stat64 *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); -extern int __fxstatat64 (int __ver, int __fildes, const char *__filename, - struct stat64 *__stat_buf, int __flag) - throw () __attribute__ ((__nonnull__ (3, 4))); - -extern int __xmknod (int __ver, const char *__path, __mode_t __mode, - __dev_t *__dev) throw () __attribute__ ((__nonnull__ (2, 4))); - -extern int __xmknodat (int __ver, int __fd, const char *__path, - __mode_t __mode, __dev_t *__dev) - throw () __attribute__ ((__nonnull__ (3, 5))); -# 535 "/usr/include/sys/stat.h" 3 4 -} -# 33 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.hpp" 2 - - -# 1 "/usr/include/sys/time.h" 1 3 4 -# 28 "/usr/include/sys/time.h" 3 4 -# 1 "/usr/include/bits/time.h" 1 3 4 -# 29 "/usr/include/sys/time.h" 2 3 4 -# 38 "/usr/include/sys/time.h" 3 4 -extern "C" { -# 56 "/usr/include/sys/time.h" 3 4 -struct timezone - { - int tz_minuteswest; - int tz_dsttime; - }; - -typedef struct timezone *__restrict __timezone_ptr_t; -# 72 "/usr/include/sys/time.h" 3 4 -extern int gettimeofday (struct timeval *__restrict __tv, - __timezone_ptr_t __tz) throw () __attribute__ ((__nonnull__ (1))); - - - - -extern int settimeofday (const struct timeval *__tv, - const struct timezone *__tz) - throw (); - - - - - -extern int adjtime (const struct timeval *__delta, - struct timeval *__olddelta) throw (); - - - - -enum __itimer_which - { - - ITIMER_REAL = 0, - - - ITIMER_VIRTUAL = 1, - - - - ITIMER_PROF = 2 - - }; - - - -struct itimerval - { - - struct timeval it_interval; - - struct timeval it_value; - }; - - - - - - -typedef int __itimer_which_t; - - - - -extern int getitimer (__itimer_which_t __which, - struct itimerval *__value) throw (); - - - - -extern int setitimer (__itimer_which_t __which, - const struct itimerval *__restrict __new, - struct itimerval *__restrict __old) throw (); - - - - -extern int utimes (const char *__file, const struct timeval __tvp[2]) - throw () __attribute__ ((__nonnull__ (1))); - - - -extern int lutimes (const char *__file, const struct timeval __tvp[2]) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int futimes (int __fd, const struct timeval __tvp[2]) throw (); - - - - - - -extern int futimesat (int __fd, const char *__file, - const struct timeval __tvp[2]) throw (); -# 190 "/usr/include/sys/time.h" 3 4 -} -# 36 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.hpp" 2 -# 51 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.hpp" -# 1 "/usr/include/unistd.h" 1 3 4 -# 27 "/usr/include/unistd.h" 3 4 -extern "C" { -# 202 "/usr/include/unistd.h" 3 4 -# 1 "/usr/include/bits/posix_opt.h" 1 3 4 -# 203 "/usr/include/unistd.h" 2 3 4 - - - -# 1 "/usr/include/bits/environments.h" 1 3 4 -# 22 "/usr/include/bits/environments.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 23 "/usr/include/bits/environments.h" 2 3 4 -# 207 "/usr/include/unistd.h" 2 3 4 -# 226 "/usr/include/unistd.h" 3 4 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stddef.h" 1 3 4 -# 227 "/usr/include/unistd.h" 2 3 4 -# 274 "/usr/include/unistd.h" 3 4 -typedef __socklen_t socklen_t; -# 287 "/usr/include/unistd.h" 3 4 -extern int access (const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1))); - - - - -extern int euidaccess (const char *__name, int __type) - throw () __attribute__ ((__nonnull__ (1))); - - -extern int eaccess (const char *__name, int __type) - throw () __attribute__ ((__nonnull__ (1))); - - - - - - -extern int faccessat (int __fd, const char *__file, int __type, int __flag) - throw () __attribute__ ((__nonnull__ (2))) ; -# 334 "/usr/include/unistd.h" 3 4 -extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw (); -# 345 "/usr/include/unistd.h" 3 4 -extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) - throw (); - - - - - - -extern int close (int __fd); - - - - - - -extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ; - - - - - -extern ssize_t write (int __fd, const void *__buf, size_t __n) ; -# 376 "/usr/include/unistd.h" 3 4 -extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, - __off_t __offset) ; - - - - - - -extern ssize_t pwrite (int __fd, const void *__buf, size_t __n, - __off_t __offset) ; -# 404 "/usr/include/unistd.h" 3 4 -extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, - __off64_t __offset) ; - - -extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n, - __off64_t __offset) ; - - - - - - - -extern int pipe (int __pipedes[2]) throw () ; - - - - -extern int pipe2 (int __pipedes[2], int __flags) throw () ; -# 432 "/usr/include/unistd.h" 3 4 -extern unsigned int alarm (unsigned int __seconds) throw (); -# 444 "/usr/include/unistd.h" 3 4 -extern unsigned int sleep (unsigned int __seconds); - - - - - - - -extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) - throw (); - - - - - - -extern int usleep (__useconds_t __useconds); -# 469 "/usr/include/unistd.h" 3 4 -extern int pause (void); - - - -extern int chown (const char *__file, __uid_t __owner, __gid_t __group) - throw () __attribute__ ((__nonnull__ (1))) ; - - - -extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw () ; - - - - -extern int lchown (const char *__file, __uid_t __owner, __gid_t __group) - throw () __attribute__ ((__nonnull__ (1))) ; - - - - - - -extern int fchownat (int __fd, const char *__file, __uid_t __owner, - __gid_t __group, int __flag) - throw () __attribute__ ((__nonnull__ (2))) ; - - - -extern int chdir (const char *__path) throw () __attribute__ ((__nonnull__ (1))) ; - - - -extern int fchdir (int __fd) throw () ; -# 511 "/usr/include/unistd.h" 3 4 -extern char *getcwd (char *__buf, size_t __size) throw () ; - - - - - -extern char *get_current_dir_name (void) throw (); - - - - - - - -extern char *getwd (char *__buf) - throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ; - - - - -extern int dup (int __fd) throw () ; - - -extern int dup2 (int __fd, int __fd2) throw (); - - - - -extern int dup3 (int __fd, int __fd2, int __flags) throw (); - - - -extern char **__environ; - -extern char **environ; - - - - - -extern int execve (const char *__path, char *const __argv[], - char *const __envp[]) throw () __attribute__ ((__nonnull__ (1, 2))); - - - - -extern int fexecve (int __fd, char *const __argv[], char *const __envp[]) - throw () __attribute__ ((__nonnull__ (2))); - - - - -extern int execv (const char *__path, char *const __argv[]) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - -extern int execle (const char *__path, const char *__arg, ...) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - -extern int execl (const char *__path, const char *__arg, ...) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - -extern int execvp (const char *__file, char *const __argv[]) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - - -extern int execlp (const char *__file, const char *__arg, ...) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - - -extern int execvpe (const char *__file, char *const __argv[], - char *const __envp[]) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - - - -extern int nice (int __inc) throw () ; - - - - -extern void _exit (int __status) __attribute__ ((__noreturn__)); - - - - - -# 1 "/usr/include/bits/confname.h" 1 3 4 -# 25 "/usr/include/bits/confname.h" 3 4 -enum - { - _PC_LINK_MAX, - - _PC_MAX_CANON, - - _PC_MAX_INPUT, - - _PC_NAME_MAX, - - _PC_PATH_MAX, - - _PC_PIPE_BUF, - - _PC_CHOWN_RESTRICTED, - - _PC_NO_TRUNC, - - _PC_VDISABLE, - - _PC_SYNC_IO, - - _PC_ASYNC_IO, - - _PC_PRIO_IO, - - _PC_SOCK_MAXBUF, - - _PC_FILESIZEBITS, - - _PC_REC_INCR_XFER_SIZE, - - _PC_REC_MAX_XFER_SIZE, - - _PC_REC_MIN_XFER_SIZE, - - _PC_REC_XFER_ALIGN, - - _PC_ALLOC_SIZE_MIN, - - _PC_SYMLINK_MAX, - - _PC_2_SYMLINKS - - }; - - -enum - { - _SC_ARG_MAX, - - _SC_CHILD_MAX, - - _SC_CLK_TCK, - - _SC_NGROUPS_MAX, - - _SC_OPEN_MAX, - - _SC_STREAM_MAX, - - _SC_TZNAME_MAX, - - _SC_JOB_CONTROL, - - _SC_SAVED_IDS, - - _SC_REALTIME_SIGNALS, - - _SC_PRIORITY_SCHEDULING, - - _SC_TIMERS, - - _SC_ASYNCHRONOUS_IO, - - _SC_PRIORITIZED_IO, - - _SC_SYNCHRONIZED_IO, - - _SC_FSYNC, - - _SC_MAPPED_FILES, - - _SC_MEMLOCK, - - _SC_MEMLOCK_RANGE, - - _SC_MEMORY_PROTECTION, - - _SC_MESSAGE_PASSING, - - _SC_SEMAPHORES, - - _SC_SHARED_MEMORY_OBJECTS, - - _SC_AIO_LISTIO_MAX, - - _SC_AIO_MAX, - - _SC_AIO_PRIO_DELTA_MAX, - - _SC_DELAYTIMER_MAX, - - _SC_MQ_OPEN_MAX, - - _SC_MQ_PRIO_MAX, - - _SC_VERSION, - - _SC_PAGESIZE, - - - _SC_RTSIG_MAX, - - _SC_SEM_NSEMS_MAX, - - _SC_SEM_VALUE_MAX, - - _SC_SIGQUEUE_MAX, - - _SC_TIMER_MAX, - - - - - _SC_BC_BASE_MAX, - - _SC_BC_DIM_MAX, - - _SC_BC_SCALE_MAX, - - _SC_BC_STRING_MAX, - - _SC_COLL_WEIGHTS_MAX, - - _SC_EQUIV_CLASS_MAX, - - _SC_EXPR_NEST_MAX, - - _SC_LINE_MAX, - - _SC_RE_DUP_MAX, - - _SC_CHARCLASS_NAME_MAX, - - - _SC_2_VERSION, - - _SC_2_C_BIND, - - _SC_2_C_DEV, - - _SC_2_FORT_DEV, - - _SC_2_FORT_RUN, - - _SC_2_SW_DEV, - - _SC_2_LOCALEDEF, - - - _SC_PII, - - _SC_PII_XTI, - - _SC_PII_SOCKET, - - _SC_PII_INTERNET, - - _SC_PII_OSI, - - _SC_POLL, - - _SC_SELECT, - - _SC_UIO_MAXIOV, - - _SC_IOV_MAX = _SC_UIO_MAXIOV, - - _SC_PII_INTERNET_STREAM, - - _SC_PII_INTERNET_DGRAM, - - _SC_PII_OSI_COTS, - - _SC_PII_OSI_CLTS, - - _SC_PII_OSI_M, - - _SC_T_IOV_MAX, - - - - _SC_THREADS, - - _SC_THREAD_SAFE_FUNCTIONS, - - _SC_GETGR_R_SIZE_MAX, - - _SC_GETPW_R_SIZE_MAX, - - _SC_LOGIN_NAME_MAX, - - _SC_TTY_NAME_MAX, - - _SC_THREAD_DESTRUCTOR_ITERATIONS, - - _SC_THREAD_KEYS_MAX, - - _SC_THREAD_STACK_MIN, - - _SC_THREAD_THREADS_MAX, - - _SC_THREAD_ATTR_STACKADDR, - - _SC_THREAD_ATTR_STACKSIZE, - - _SC_THREAD_PRIORITY_SCHEDULING, - - _SC_THREAD_PRIO_INHERIT, - - _SC_THREAD_PRIO_PROTECT, - - _SC_THREAD_PROCESS_SHARED, - - - _SC_NPROCESSORS_CONF, - - _SC_NPROCESSORS_ONLN, - - _SC_PHYS_PAGES, - - _SC_AVPHYS_PAGES, - - _SC_ATEXIT_MAX, - - _SC_PASS_MAX, - - - _SC_XOPEN_VERSION, - - _SC_XOPEN_XCU_VERSION, - - _SC_XOPEN_UNIX, - - _SC_XOPEN_CRYPT, - - _SC_XOPEN_ENH_I18N, - - _SC_XOPEN_SHM, - - - _SC_2_CHAR_TERM, - - _SC_2_C_VERSION, - - _SC_2_UPE, - - - _SC_XOPEN_XPG2, - - _SC_XOPEN_XPG3, - - _SC_XOPEN_XPG4, - - - _SC_CHAR_BIT, - - _SC_CHAR_MAX, - - _SC_CHAR_MIN, - - _SC_INT_MAX, - - _SC_INT_MIN, - - _SC_LONG_BIT, - - _SC_WORD_BIT, - - _SC_MB_LEN_MAX, - - _SC_NZERO, - - _SC_SSIZE_MAX, - - _SC_SCHAR_MAX, - - _SC_SCHAR_MIN, - - _SC_SHRT_MAX, - - _SC_SHRT_MIN, - - _SC_UCHAR_MAX, - - _SC_UINT_MAX, - - _SC_ULONG_MAX, - - _SC_USHRT_MAX, - - - _SC_NL_ARGMAX, - - _SC_NL_LANGMAX, - - _SC_NL_MSGMAX, - - _SC_NL_NMAX, - - _SC_NL_SETMAX, - - _SC_NL_TEXTMAX, - - - _SC_XBS5_ILP32_OFF32, - - _SC_XBS5_ILP32_OFFBIG, - - _SC_XBS5_LP64_OFF64, - - _SC_XBS5_LPBIG_OFFBIG, - - - _SC_XOPEN_LEGACY, - - _SC_XOPEN_REALTIME, - - _SC_XOPEN_REALTIME_THREADS, - - - _SC_ADVISORY_INFO, - - _SC_BARRIERS, - - _SC_BASE, - - _SC_C_LANG_SUPPORT, - - _SC_C_LANG_SUPPORT_R, - - _SC_CLOCK_SELECTION, - - _SC_CPUTIME, - - _SC_THREAD_CPUTIME, - - _SC_DEVICE_IO, - - _SC_DEVICE_SPECIFIC, - - _SC_DEVICE_SPECIFIC_R, - - _SC_FD_MGMT, - - _SC_FIFO, - - _SC_PIPE, - - _SC_FILE_ATTRIBUTES, - - _SC_FILE_LOCKING, - - _SC_FILE_SYSTEM, - - _SC_MONOTONIC_CLOCK, - - _SC_MULTI_PROCESS, - - _SC_SINGLE_PROCESS, - - _SC_NETWORKING, - - _SC_READER_WRITER_LOCKS, - - _SC_SPIN_LOCKS, - - _SC_REGEXP, - - _SC_REGEX_VERSION, - - _SC_SHELL, - - _SC_SIGNALS, - - _SC_SPAWN, - - _SC_SPORADIC_SERVER, - - _SC_THREAD_SPORADIC_SERVER, - - _SC_SYSTEM_DATABASE, - - _SC_SYSTEM_DATABASE_R, - - _SC_TIMEOUTS, - - _SC_TYPED_MEMORY_OBJECTS, - - _SC_USER_GROUPS, - - _SC_USER_GROUPS_R, - - _SC_2_PBS, - - _SC_2_PBS_ACCOUNTING, - - _SC_2_PBS_LOCATE, - - _SC_2_PBS_MESSAGE, - - _SC_2_PBS_TRACK, - - _SC_SYMLOOP_MAX, - - _SC_STREAMS, - - _SC_2_PBS_CHECKPOINT, - - - _SC_V6_ILP32_OFF32, - - _SC_V6_ILP32_OFFBIG, - - _SC_V6_LP64_OFF64, - - _SC_V6_LPBIG_OFFBIG, - - - _SC_HOST_NAME_MAX, - - _SC_TRACE, - - _SC_TRACE_EVENT_FILTER, - - _SC_TRACE_INHERIT, - - _SC_TRACE_LOG, - - - _SC_LEVEL1_ICACHE_SIZE, - - _SC_LEVEL1_ICACHE_ASSOC, - - _SC_LEVEL1_ICACHE_LINESIZE, - - _SC_LEVEL1_DCACHE_SIZE, - - _SC_LEVEL1_DCACHE_ASSOC, - - _SC_LEVEL1_DCACHE_LINESIZE, - - _SC_LEVEL2_CACHE_SIZE, - - _SC_LEVEL2_CACHE_ASSOC, - - _SC_LEVEL2_CACHE_LINESIZE, - - _SC_LEVEL3_CACHE_SIZE, - - _SC_LEVEL3_CACHE_ASSOC, - - _SC_LEVEL3_CACHE_LINESIZE, - - _SC_LEVEL4_CACHE_SIZE, - - _SC_LEVEL4_CACHE_ASSOC, - - _SC_LEVEL4_CACHE_LINESIZE, - - - - _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, - - _SC_RAW_SOCKETS, - - - _SC_V7_ILP32_OFF32, - - _SC_V7_ILP32_OFFBIG, - - _SC_V7_LP64_OFF64, - - _SC_V7_LPBIG_OFFBIG, - - - _SC_SS_REPL_MAX, - - - _SC_TRACE_EVENT_NAME_MAX, - - _SC_TRACE_NAME_MAX, - - _SC_TRACE_SYS_MAX, - - _SC_TRACE_USER_EVENT_MAX, - - - _SC_XOPEN_STREAMS, - - - _SC_THREAD_ROBUST_PRIO_INHERIT, - - _SC_THREAD_ROBUST_PRIO_PROTECT - - }; - - -enum - { - _CS_PATH, - - - _CS_V6_WIDTH_RESTRICTED_ENVS, - - - - _CS_GNU_LIBC_VERSION, - - _CS_GNU_LIBPTHREAD_VERSION, - - - _CS_V5_WIDTH_RESTRICTED_ENVS, - - - - _CS_V7_WIDTH_RESTRICTED_ENVS, - - - - _CS_LFS_CFLAGS = 1000, - - _CS_LFS_LDFLAGS, - - _CS_LFS_LIBS, - - _CS_LFS_LINTFLAGS, - - _CS_LFS64_CFLAGS, - - _CS_LFS64_LDFLAGS, - - _CS_LFS64_LIBS, - - _CS_LFS64_LINTFLAGS, - - - _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, - - _CS_XBS5_ILP32_OFF32_LDFLAGS, - - _CS_XBS5_ILP32_OFF32_LIBS, - - _CS_XBS5_ILP32_OFF32_LINTFLAGS, - - _CS_XBS5_ILP32_OFFBIG_CFLAGS, - - _CS_XBS5_ILP32_OFFBIG_LDFLAGS, - - _CS_XBS5_ILP32_OFFBIG_LIBS, - - _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, - - _CS_XBS5_LP64_OFF64_CFLAGS, - - _CS_XBS5_LP64_OFF64_LDFLAGS, - - _CS_XBS5_LP64_OFF64_LIBS, - - _CS_XBS5_LP64_OFF64_LINTFLAGS, - - _CS_XBS5_LPBIG_OFFBIG_CFLAGS, - - _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, - - _CS_XBS5_LPBIG_OFFBIG_LIBS, - - _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, - - - _CS_POSIX_V6_ILP32_OFF32_CFLAGS, - - _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, - - _CS_POSIX_V6_ILP32_OFF32_LIBS, - - _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, - - _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, - - _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, - - _CS_POSIX_V6_ILP32_OFFBIG_LIBS, - - _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, - - _CS_POSIX_V6_LP64_OFF64_CFLAGS, - - _CS_POSIX_V6_LP64_OFF64_LDFLAGS, - - _CS_POSIX_V6_LP64_OFF64_LIBS, - - _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, - - _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, - - _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, - - _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, - - _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, - - - _CS_POSIX_V7_ILP32_OFF32_CFLAGS, - - _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, - - _CS_POSIX_V7_ILP32_OFF32_LIBS, - - _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, - - _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, - - _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, - - _CS_POSIX_V7_ILP32_OFFBIG_LIBS, - - _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, - - _CS_POSIX_V7_LP64_OFF64_CFLAGS, - - _CS_POSIX_V7_LP64_OFF64_LDFLAGS, - - _CS_POSIX_V7_LP64_OFF64_LIBS, - - _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, - - _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, - - _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, - - _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, - - _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, - - - _CS_V6_ENV, - - _CS_V7_ENV - - }; -# 610 "/usr/include/unistd.h" 2 3 4 - - -extern long int pathconf (const char *__path, int __name) - throw () __attribute__ ((__nonnull__ (1))); - - -extern long int fpathconf (int __fd, int __name) throw (); - - -extern long int sysconf (int __name) throw (); - - - -extern size_t confstr (int __name, char *__buf, size_t __len) throw (); - - - - -extern __pid_t getpid (void) throw (); - - -extern __pid_t getppid (void) throw (); - - - - -extern __pid_t getpgrp (void) throw (); -# 646 "/usr/include/unistd.h" 3 4 -extern __pid_t __getpgid (__pid_t __pid) throw (); - -extern __pid_t getpgid (__pid_t __pid) throw (); - - - - - - -extern int setpgid (__pid_t __pid, __pid_t __pgid) throw (); -# 672 "/usr/include/unistd.h" 3 4 -extern int setpgrp (void) throw (); -# 689 "/usr/include/unistd.h" 3 4 -extern __pid_t setsid (void) throw (); - - - -extern __pid_t getsid (__pid_t __pid) throw (); - - - -extern __uid_t getuid (void) throw (); - - -extern __uid_t geteuid (void) throw (); - - -extern __gid_t getgid (void) throw (); - - -extern __gid_t getegid (void) throw (); - - - - -extern int getgroups (int __size, __gid_t __list[]) throw () ; - - - -extern int group_member (__gid_t __gid) throw (); - - - - - - -extern int setuid (__uid_t __uid) throw () ; - - - - -extern int setreuid (__uid_t __ruid, __uid_t __euid) throw () ; - - - - -extern int seteuid (__uid_t __uid) throw () ; - - - - - - -extern int setgid (__gid_t __gid) throw () ; - - - - -extern int setregid (__gid_t __rgid, __gid_t __egid) throw () ; - - - - -extern int setegid (__gid_t __gid) throw () ; - - - - - -extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid) - throw (); - - - -extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid) - throw (); - - - -extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid) - throw () ; - - - -extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid) - throw () ; - - - - - - -extern __pid_t fork (void) throw (); - - - - - - - -extern __pid_t vfork (void) throw (); - - - - - -extern char *ttyname (int __fd) throw (); - - - -extern int ttyname_r (int __fd, char *__buf, size_t __buflen) - throw () __attribute__ ((__nonnull__ (2))) ; - - - -extern int isatty (int __fd) throw (); - - - - - -extern int ttyslot (void) throw (); - - - - -extern int link (const char *__from, const char *__to) - throw () __attribute__ ((__nonnull__ (1, 2))) ; - - - - -extern int linkat (int __fromfd, const char *__from, int __tofd, - const char *__to, int __flags) - throw () __attribute__ ((__nonnull__ (2, 4))) ; - - - - -extern int symlink (const char *__from, const char *__to) - throw () __attribute__ ((__nonnull__ (1, 2))) ; - - - - -extern ssize_t readlink (const char *__restrict __path, - char *__restrict __buf, size_t __len) - throw () __attribute__ ((__nonnull__ (1, 2))) ; - - - - -extern int symlinkat (const char *__from, int __tofd, - const char *__to) throw () __attribute__ ((__nonnull__ (1, 3))) ; - - -extern ssize_t readlinkat (int __fd, const char *__restrict __path, - char *__restrict __buf, size_t __len) - throw () __attribute__ ((__nonnull__ (2, 3))) ; - - - -extern int unlink (const char *__name) throw () __attribute__ ((__nonnull__ (1))); - - - -extern int unlinkat (int __fd, const char *__name, int __flag) - throw () __attribute__ ((__nonnull__ (2))); - - - -extern int rmdir (const char *__path) throw () __attribute__ ((__nonnull__ (1))); - - - -extern __pid_t tcgetpgrp (int __fd) throw (); - - -extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw (); - - - - - - -extern char *getlogin (void); - - - - - - - -extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))); - - - - -extern int setlogin (const char *__name) throw () __attribute__ ((__nonnull__ (1))); -# 893 "/usr/include/unistd.h" 3 4 -# 1 "/usr/include/getopt.h" 1 3 4 -# 49 "/usr/include/getopt.h" 3 4 -extern "C" { -# 58 "/usr/include/getopt.h" 3 4 -extern char *optarg; -# 72 "/usr/include/getopt.h" 3 4 -extern int optind; - - - - -extern int opterr; - - - -extern int optopt; -# 151 "/usr/include/getopt.h" 3 4 -extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) - throw (); -# 186 "/usr/include/getopt.h" 3 4 -} -# 894 "/usr/include/unistd.h" 2 3 4 - - - - - - - -extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1))); - - - - - - -extern int sethostname (const char *__name, size_t __len) - throw () __attribute__ ((__nonnull__ (1))) ; - - - -extern int sethostid (long int __id) throw () ; - - - - - -extern int getdomainname (char *__name, size_t __len) - throw () __attribute__ ((__nonnull__ (1))) ; -extern int setdomainname (const char *__name, size_t __len) - throw () __attribute__ ((__nonnull__ (1))) ; - - - - - -extern int vhangup (void) throw (); - - -extern int revoke (const char *__file) throw () __attribute__ ((__nonnull__ (1))) ; - - - - - - - -extern int profil (unsigned short int *__sample_buffer, size_t __size, - size_t __offset, unsigned int __scale) - throw () __attribute__ ((__nonnull__ (1))); - - - - - -extern int acct (const char *__name) throw (); - - - -extern char *getusershell (void) throw (); -extern void endusershell (void) throw (); -extern void setusershell (void) throw (); - - - - - -extern int daemon (int __nochdir, int __noclose) throw () ; - - - - - - -extern int chroot (const char *__path) throw () __attribute__ ((__nonnull__ (1))) ; - - - -extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1))); - - - - - - - -extern int fsync (int __fd); - - - - - -extern int syncfs (int __fd) throw (); - - - - - - -extern long int gethostid (void); - - -extern void sync (void) throw (); - - - - - -extern int getpagesize (void) throw () __attribute__ ((__const__)); - - - - -extern int getdtablesize (void) throw (); -# 1015 "/usr/include/unistd.h" 3 4 -extern int truncate (const char *__file, __off_t __length) - throw () __attribute__ ((__nonnull__ (1))) ; -# 1027 "/usr/include/unistd.h" 3 4 -extern int truncate64 (const char *__file, __off64_t __length) - throw () __attribute__ ((__nonnull__ (1))) ; -# 1038 "/usr/include/unistd.h" 3 4 -extern int ftruncate (int __fd, __off_t __length) throw () ; -# 1048 "/usr/include/unistd.h" 3 4 -extern int ftruncate64 (int __fd, __off64_t __length) throw () ; -# 1059 "/usr/include/unistd.h" 3 4 -extern int brk (void *__addr) throw () ; - - - - - -extern void *sbrk (intptr_t __delta) throw (); -# 1080 "/usr/include/unistd.h" 3 4 -extern long int syscall (long int __sysno, ...) throw (); -# 1103 "/usr/include/unistd.h" 3 4 -extern int lockf (int __fd, int __cmd, __off_t __len) ; -# 1113 "/usr/include/unistd.h" 3 4 -extern int lockf64 (int __fd, int __cmd, __off64_t __len) ; -# 1134 "/usr/include/unistd.h" 3 4 -extern int fdatasync (int __fildes); - - - - - - - -extern char *crypt (const char *__key, const char *__salt) - throw () __attribute__ ((__nonnull__ (1, 2))); - - - -extern void encrypt (char *__block, int __edflag) throw () __attribute__ ((__nonnull__ (1))); - - - - - - -extern void swab (const void *__restrict __from, void *__restrict __to, - ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); -# 1172 "/usr/include/unistd.h" 3 4 -} -# 52 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.hpp" 2 - - - -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstring" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstring" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstring" 3 -# 71 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstring" 3 -extern "C++" -{ -namespace std __attribute__ ((__visibility__ ("default"))) -{ - - - using ::memchr; - using ::memcmp; - using ::memcpy; - using ::memmove; - using ::memset; - using ::strcat; - using ::strcmp; - using ::strcoll; - using ::strcpy; - using ::strcspn; - using ::strerror; - using ::strlen; - using ::strncat; - using ::strncmp; - using ::strncpy; - using ::strspn; - using ::strtok; - using ::strxfrm; - using ::strchr; - using ::strpbrk; - using ::strrchr; - using ::strstr; -# 122 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cstring" 3 - -} -} -# 56 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.hpp" 2 -# 1 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cctype" 1 3 -# 39 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cctype" 3 - -# 40 "/home/x86_64-unknown-linux_ol7-gnu/gcc-10.1.0/include/c++/10.1.0/cctype" 3 -# 57 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.hpp" 2 - - -# 58 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.hpp" -namespace SGTELIB { - - enum distance_t { - DISTANCE_NORM2 , - DISTANCE_NORM1 , - DISTANCE_NORMINF , - DISTANCE_NORM2_IS0, - DISTANCE_NORM2_CAT - }; - const int NB_DISTANCE_TYPES = 5; - - - enum model_t { - LINEAR , - TGP , - DYNATREE , - PRS , - PRS_EDGE , - PRS_CAT , - KS , - CN , - KRIGING , - SVN , - RBF , - LOWESS , - ENSEMBLE , - ENSEMBLE_STAT - }; - const int NB_MODEL_TYPES = 12; - - - enum weight_t { - WEIGHT_SELECT, - WEIGHT_SELECT2, - WEIGHT_SELECT3, - WEIGHT_SELECT4, - WEIGHT_SELECT5, - WEIGHT_SELECT6, - WEIGHT_OPTIM, - WEIGHT_WTA1, - WEIGHT_WTA3, - WEIGHT_EXTERN - }; - const int NB_WEIGHT_TYPES = 10; - - - enum uncertainty_t { - UNCERTAINTY_SMOOTH, - UNCERTAINTY_NONSMOOTH, - UNCERTAINTY_DIST, - UNCERTAINTY_DIST_SMOOTH, - UNCERTAINTY_DIST_NONSMOOTH - }; - const int NB_UNCERTAINTY_TYPES = 5; - - - int diff_ms(timeval t1, timeval t2); - - - bool streq ( const std::string & s1 , const std::string & s2 ); - bool streqi ( const std::string & s1 , const std::string & s2 ); - - bool string_find ( const std::string & S , const std::string & s ); - - - - - std::string deblank ( const std::string & s_input ); - - - bool exists (const std::string & file); - - - int count_words(const std::string & s ); - - - void append_file (const std::string & s , const std::string & file); - - - void wait (double t); - - - bool isdef ( const double x ); - - - int round ( double d ); - double rceil (double d); - - - double rel_err ( double x , double y ); - - - double dist ( const double * x , const double * y , int n ); - - - bool same_sign (const double a, const double b); - - - std::string itos ( int ); - std::string dtos ( double ); - std::string btos ( bool ); - double stod ( const std::string & s ); - int stoi ( const std::string & s ); - bool stob ( const std::string & s ); - - std::string toupper ( const std::string & s ); - - std::string model_output_to_str ( const SGTELIB::model_output_t ); - std::string model_type_to_str ( const SGTELIB::model_t ); - std::string bbo_type_to_str ( const SGTELIB::bbo_t ); - std::string weight_type_to_str ( const SGTELIB::weight_t ); - std::string distance_type_to_str ( const SGTELIB::distance_t ); - std::string uncertainty_type_to_str ( const SGTELIB::uncertainty_t ); - std::string size_param_to_str ( const double ); - std::string sigma_mult_to_str ( const double ); - std::string lambda_p_to_str ( const double ); - std::string lambda_pi_to_str ( const double ); - - - bool isdigit ( const std::string & s ); - double str_to_size_param ( const std::string & s ); - double str_to_sigma_mult ( const std::string & s ); - double str_to_lambda_p ( const std::string & s ); - double str_to_lambda_pi ( const std::string & s ); - SGTELIB::model_t str_to_model_type ( const std::string & s ); - SGTELIB::weight_t str_to_weight_type ( const std::string & s ); - SGTELIB::uncertainty_t str_to_uncertainty_type ( const std::string & s ); - SGTELIB::distance_t str_to_distance_type ( const std::string & s ); - SGTELIB::distance_t int_to_distance_type ( const int i ); -# 198 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.hpp" - double sigmoid (double x , double lambda=1 ); - double sigmoid (double f, double mu, double sigma , double lambda=1); - - - double normcdf ( double x ); - double normcdf ( double x , double mu , double sigma ); - double normpdf ( double x ); - double normpdf ( double x , double mu , double sigma ); - double normei ( double fh, double sh , double f_min ); - double gammacdf ( double x, double a, double b); - double newei ( double fh, double sh , double f_min ); - double gammacdfinv( double f, double a, double b); - double lower_incomplete_gamma ( const double x, const double p ); - - double uniform_rand (void); - double quick_norm_rand (void); -} -# 27 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" 2 -# 35 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" -bool SGTELIB::streq ( const std::string & s1 , const std::string & s2 ){ - return !std::strcmp(s1.c_str(),s2.c_str()); -} - -bool SGTELIB::streqi ( const std::string & s1 , const std::string & s2 ){ - const std::string s1u = SGTELIB::toupper(s1); - const std::string s2u = SGTELIB::toupper(s2); - return !std::strcmp(SGTELIB::toupper(s1).c_str(),s2u.c_str()); -} - - -bool SGTELIB::string_find ( const std::string & S , const std::string & s ){ - const std::string Su = SGTELIB::toupper(S); - const std::string su = SGTELIB::toupper(s); - return ( Su.find(su) < Su.size() ); -} -# 60 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" -std::string SGTELIB::deblank ( const std::string & s_input ){ - std::string s = s_input; - - while ( (s.length()) && (s.at(0)==' ') ){ - s.erase(0,1); - } - - size_t i = s.length(); - while ( (i>0) && (s.at(i-1)==' ') ) { - s.erase(i-1,1); - i--; - } - - i=1; - while (i+2> word ) ++word_count; - return word_count; -} - - - - - - -void SGTELIB::append_file (const std::string & s , const std::string & file){ - std::string dummy_str; - std::string cmd; - if ( ! SGTELIB::exists(file)){ - cmd = "touch "+ file; - dummy_str = system( cmd.c_str() ); - } - cmd = "echo "+s+" >> "+file; - - dummy_str = system( cmd.c_str() ); -} - - - - - -void SGTELIB::wait (double t) { - - - - - usleep(t*1000000.0); - -} - - - - - - -bool SGTELIB::isdef ( const double x ) { - if ( isnan(x) ) return false; - if ( isinf(x) ) return false; - if ( fabs(x)>=SGTELIB::INF) return false; - if ( fabs(x)>=1e+16){ - return false; - } - return true; -} - - - - - - -double SGTELIB::dist ( const double * x , const double * y , int n ) { - double s = 0.0; - double d = 0; - for ( int i = 0 ; i < n ; ++i ) - { - d = x[i]-y[i]; - s += d*d; - } - return sqrt(s); -} - - - - -double SGTELIB::rel_err ( double x , double y ) { - if ( x*y < 0.0 ) - return 1.0; - if ( x*y == 0.0 ) - return fabs(x-y); - double max = fabs(x); - if ( fabs(y) > max ) - max = fabs(y); - return ( fabs ( x-y ) / max ); -} - - -int SGTELIB::round ( double d ) { - - return static_cast(d < 0.0 ? -floor(.5-d) : floor(.5+d)); -} - - -std::string SGTELIB::itos ( int i ) { - - std::ostringstream oss; - oss << i; - return oss.str(); -} - - -std::string SGTELIB::dtos (double d ) { - - std::ostringstream oss; - oss << d; - return oss.str(); -} - - -std::string SGTELIB::btos (bool b ) { - - if (b) return "True"; - else return "False"; -} - - -double SGTELIB::stod ( const std::string & s ){ - - double d = atof(s.c_str()); - return d; -} - - -int SGTELIB::stoi ( const std::string & s ){ - - int d = atoi(s.c_str()); - return d; -} - - -bool SGTELIB::stob ( const std::string & s ) { - - std::string ss = toupper(s); - if ( ss=="TRUE" ) return true; - if ( ss=="FALSE") return false; - if ( ss=="YES" ) return true; - if ( ss=="NO" ) return false; - if ( ss=="1" ) return true; - if ( ss=="0" ) return false; - throw SGTELIB::Exception ( "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" , 236 ,"Unrecognised string \""+s+"\" ( "+ss+" )" ); -} - - -bool SGTELIB::isdigit ( const std::string & s ){ - - std::string::const_iterator it = s.begin(); - char c; - while (it != s.end()){ - c = *it; - if ( ! ( ( isdigit(std::string(1,c))) || (c=='+') || (c=='-') || (c=='.') ) ){ - return false; - } - it++; - } - return true; -} - - - - - - - -std::string SGTELIB::toupper ( const std::string & s ) -{ - std::string s2(s); - size_t ns = s2.size(); - for ( size_t i = 0 ; i < ns ; ++i ) - s2[i] = std::toupper(s2[i]); - return s2; -} - - - -std::string SGTELIB::model_output_to_str ( const SGTELIB::model_output_t ot ) { - - switch ( ot ) { - case SGTELIB::NORMAL_OUTPUT: return "normal"; - case SGTELIB::FIXED_OUTPUT : return "fixed"; - case SGTELIB::BINARY_OUTPUT: return "binary"; - default: - throw SGTELIB::Exception ( "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" , 278 ,"Undefined type" ); - } -} - - -std::string SGTELIB::model_type_to_str ( const SGTELIB::model_t t ) { - - switch ( t ) { - case SGTELIB::LINEAR : return "LINEAR"; - case SGTELIB::TGP : return "TGP"; - case SGTELIB::DYNATREE : return "DYNATREE"; - case SGTELIB::KS : return "KS"; - case SGTELIB::CN : return "CN"; - case SGTELIB::PRS : return "PRS"; - case SGTELIB::PRS_EDGE : return "PRS_EDGE"; - case SGTELIB::PRS_CAT : return "PRS_CAT"; - case SGTELIB::RBF : return "RBF"; - case SGTELIB::KRIGING : return "KRIGING"; - case SGTELIB::SVN : return "SVN"; - case SGTELIB::LOWESS : return "LOWESS"; - case SGTELIB::ENSEMBLE : return "ENSEMBLE"; - case SGTELIB::ENSEMBLE_STAT : return "ENSEMBLE_STAT"; - default: - throw SGTELIB::Exception ( "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" , 301 ,"Undefined type" ); - } -} - - -std::string SGTELIB::distance_type_to_str ( const SGTELIB::distance_t t ) { - - switch ( t ) { - case SGTELIB::DISTANCE_NORM2 : return "NORM2"; - case SGTELIB::DISTANCE_NORM1 : return "NORM1"; - case SGTELIB::DISTANCE_NORMINF : return "NORMINF"; - case SGTELIB::DISTANCE_NORM2_IS0 : return "NORM2_IS0"; - case SGTELIB::DISTANCE_NORM2_CAT : return "NORM2_CAT"; - default: - throw SGTELIB::Exception ( "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" , 315 ,"Undefined type" ); - } -} - - - -std::string SGTELIB::weight_type_to_str ( const SGTELIB::weight_t cb ) { - - switch (cb){ - case SGTELIB::WEIGHT_SELECT : return "SELECT"; - case SGTELIB::WEIGHT_SELECT2 : return "SELECT2"; - case SGTELIB::WEIGHT_SELECT3 : return "SELECT3"; - case SGTELIB::WEIGHT_SELECT4 : return "SELECT4"; - case SGTELIB::WEIGHT_SELECT5 : return "SELECT5"; - case SGTELIB::WEIGHT_SELECT6 : return "SELECT6"; - case SGTELIB::WEIGHT_OPTIM : return "OPTIM" ; - case SGTELIB::WEIGHT_WTA1 : return "WTA1" ; - case SGTELIB::WEIGHT_WTA3 : return "WTA3" ; - case SGTELIB::WEIGHT_EXTERN : return "EXTERN"; - default : - throw SGTELIB::Exception ( "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" , 335 ,"Undefined type" ); - } -} - - - - - -std::string SGTELIB::uncertainty_type_to_str ( const SGTELIB::uncertainty_t cb ) { - - switch (cb){ - case SGTELIB::UNCERTAINTY_SMOOTH : return "SMOOTH" ; - case SGTELIB::UNCERTAINTY_NONSMOOTH : return "NONSMOOTH"; - case SGTELIB::UNCERTAINTY_DIST : return "DIST" ; - case SGTELIB::UNCERTAINTY_DIST_SMOOTH : return "DIST_SMOOTH" ; - case SGTELIB::UNCERTAINTY_DIST_NONSMOOTH : return "DIST_NONSMOOTH"; - default : - throw SGTELIB::Exception ( "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" , 352 ,"Undefined type" ); - } -} - - - -std::string SGTELIB::size_param_to_str ( const double cb ) { - - return std::to_string(cb); -} - - - -std::string SGTELIB::sigma_mult_to_str ( const double cb ) { - - return std::to_string(cb); -} - - - -std::string SGTELIB::lambda_p_to_str ( const double cb ) { - - return std::to_string(cb); -} - - - -std::string SGTELIB::lambda_pi_to_str ( const double cb ) { - - return std::to_string(cb); -} - - - -std::string SGTELIB::bbo_type_to_str ( SGTELIB::bbo_t bbot ) { - - switch ( bbot ) { - case SGTELIB::BBO_OBJ: return "OBJ"; - case SGTELIB::BBO_CON: return "CON"; - case SGTELIB::BBO_DUM: return "DUM"; - default: - throw SGTELIB::Exception ( "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" , 393 ,"Undefined type" ); - } -} - - -SGTELIB::model_t SGTELIB::str_to_model_type ( const std::string & s ) { - - std::string ss = SGTELIB::toupper(s); - if ( ss=="LINEAR" ){ return SGTELIB::LINEAR; } - if ( ss=="TGP" ){ return SGTELIB::TGP; } - if ( ss=="DYNATREE" ){ return SGTELIB::DYNATREE; } - if ( ss=="KS" ){ return SGTELIB::KS; } - if ( ss=="CN" ){ return SGTELIB::CN; } - if ( ss=="PRS" ){ return SGTELIB::PRS; } - if ( ss=="PRS_EDGE" ){ return SGTELIB::PRS_EDGE; } - if ( ss=="PRS_CAT" ){ return SGTELIB::PRS_CAT; } - if ( ss=="RBF" ){ return SGTELIB::RBF; } - if ( ss=="KRIGING" ){ return SGTELIB::KRIGING; } - if ( ss=="SVN" ){ return SGTELIB::SVN; } - if ( ss=="LWR" ){ return SGTELIB::LOWESS; } - if ( ss=="LOWESS" ){ return SGTELIB::LOWESS; } - if ( ss=="ENSEMBLE" ){ return SGTELIB::ENSEMBLE; } - if ( ss=="ENSEMBLE_STAT" ){ return SGTELIB::ENSEMBLE_STAT; } - throw SGTELIB::Exception ( "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" , 416 ,"Unrecognised string \""+s+"\" ( "+ss+" )" ); -} - - -SGTELIB::weight_t SGTELIB::str_to_weight_type ( const std::string & s ) { - - std::string ss = SGTELIB::toupper(s); - if ( ss=="SELECT" ){ return SGTELIB::WEIGHT_SELECT;} - if ( ss=="SELECT2" ){ return SGTELIB::WEIGHT_SELECT2;} - if ( ss=="SELECT3" ){ return SGTELIB::WEIGHT_SELECT3;} - if ( ss=="SELECT4" ){ return SGTELIB::WEIGHT_SELECT4;} - if ( ss=="SELECT5" ){ return SGTELIB::WEIGHT_SELECT5;} - if ( ss=="SELECT6" ){ return SGTELIB::WEIGHT_SELECT6;} - - if ( ss=="OPTIM" ){ return SGTELIB::WEIGHT_OPTIM; } - if ( ss=="WTA1" ){ return SGTELIB::WEIGHT_WTA1; } - if ( ss=="WTA3" ){ return SGTELIB::WEIGHT_WTA3; } - if ( ss=="EXTERN" ){ return SGTELIB::WEIGHT_EXTERN;} - throw SGTELIB::Exception ( "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" , 434 ,"Unrecognised string \""+s+"\" ( "+ss+" )" ); -} - - - -SGTELIB::uncertainty_t SGTELIB::str_to_uncertainty_type ( const std::string & s ) { - - std::string ss = SGTELIB::toupper(s); - if ( ss=="SMOOTH" ){ return SGTELIB::UNCERTAINTY_SMOOTH; } - if ( ss=="NONSMOOTH" ){ return SGTELIB::UNCERTAINTY_NONSMOOTH;} - if ( ss=="DIST" ){ return SGTELIB::UNCERTAINTY_DIST; } - if ( ss=="DIST_SMOOTH" ){ return SGTELIB::UNCERTAINTY_DIST_SMOOTH; } - if ( ss=="DIST_NONSMOOTH" ){ return SGTELIB::UNCERTAINTY_DIST_NONSMOOTH;} - throw SGTELIB::Exception ( "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" , 447 ,"Unrecognised string \""+s+"\" ( "+ss+" )" ); -} - - - -double SGTELIB::str_to_size_param ( const std::string & s ) { - - return std::stod(s); -} - - - -double SGTELIB::str_to_sigma_mult ( const std::string & s ) { - - return std::stod(s); -} - - - -double SGTELIB::str_to_lambda_p ( const std::string & s ) { - - return std::stod(s); -} - - - -double SGTELIB::str_to_lambda_pi ( const std::string & s ) { - - return std::stod(s); -} - - - -SGTELIB::distance_t SGTELIB::str_to_distance_type ( const std::string & s ) { - - std::string ss = SGTELIB::toupper(s); - if ( ss=="NORM2" ){ return SGTELIB::DISTANCE_NORM2; } - if ( ss=="NORM1" ){ return SGTELIB::DISTANCE_NORM1; } - if ( ss=="NORMINF" ){ return SGTELIB::DISTANCE_NORMINF; } - - if ( ss=="ISO" ){ return SGTELIB::DISTANCE_NORM2_IS0; } - if ( ss=="IS0" ){ return SGTELIB::DISTANCE_NORM2_IS0; } - if ( ss=="NORM2_ISO"){ return SGTELIB::DISTANCE_NORM2_IS0; } - if ( ss=="NORM2_IS0"){ return SGTELIB::DISTANCE_NORM2_IS0; } - - if ( ss=="CAT" ){ return SGTELIB::DISTANCE_NORM2_CAT; } - if ( ss=="NORM2_CAT"){ return SGTELIB::DISTANCE_NORM2_CAT; } - throw SGTELIB::Exception ( "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" , 494 ,"Unrecognised string \""+s+"\" ( "+ss+" )" ); -} - - -SGTELIB::distance_t SGTELIB::int_to_distance_type ( const int i ) { - - if ( (i<0) || (i>=SGTELIB::NB_DISTANCE_TYPES) ){ - throw SGTELIB::Exception ( "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" , 501 , - "int_to_distance_type: invalid integer "+itos(i) ); - } - switch ( i ){ - case 0: return SGTELIB::DISTANCE_NORM2; - case 1: return SGTELIB::DISTANCE_NORM1; - case 2: return SGTELIB::DISTANCE_NORMINF; - case 3: return SGTELIB::DISTANCE_NORM2_IS0; - case 4: return SGTELIB::DISTANCE_NORM2_CAT; - default: - throw SGTELIB::Exception ( "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" , 511 , - "int_to_kernel_type: invalid integer "+itos(i) ); - } -} - - - - - - - -bool SGTELIB::same_sign (const double a, const double b) { - return ( (a*b>0) || ( (fabs(a) mu) ? 1.0 : 0.0; - } - double x = (f-mu) / sigma; - return sigmoid(x, lambda); -} - - - - - -double SGTELIB::normcdf ( double x ) { - double t , t2 , v , Phi; - if (fabs(x)mu)?1.0:0.0; - } - else{ - - return normcdf( (x-mu)/sigma ); - } -} - - - - - - -double SGTELIB::normpdf ( double x ) { - return 0.398942280401*exp(-0.5*x*x); -} - - - - - -double SGTELIB::normpdf ( double x , double mu , double sigma ) { - if (sigma1) ){ - throw SGTELIB::Exception ( "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" , 688 , - "Surrogate_Utils::gammacdfinv: f<0 or f>1" ); - } - if (f==1.0) return INF; - if (f==0.0) return 0; - - - - double xmin = 0; - double xmax = 1; - double xtry; - -int k = 0; - while (SGTELIB::gammacdf(xmax,a,b)10) break; - } - - while (xmax-xmin>10000*EPSILON){ - xtry = (xmin+xmax)/2.0; - if (SGTELIB::gammacdf(xtry,a,b)>f) xmax = xtry; - else xmin = xtry; - - } - return (xmin+xmax)/2.0; -} - - - - - - - -double SGTELIB::lower_incomplete_gamma ( const double x, double p ){ - - if ( ( x < EPSILON ) || ( p < EPSILON ) ) return 0; -# 735 "/home/saltrena/nomad.4.0.0/ext/sgtelib/src/Surrogate_Utils.cpp" - double f = exp( p * log ( x ) - lgamma ( p + 1.0 ) - x ); - - double dv = 1.0, v = 1.0; - while (dv > v/1e+9) { - dv *= x / (++p); - v += dv; - } - return v*f; - -} - - - - -int SGTELIB::diff_ms(timeval t1, timeval t2){ - return static_cast((((t1.tv_sec - t2.tv_sec) * 1000000) + (t1.tv_usec - t2.tv_usec +500))/1000); -} - - - - -double SGTELIB::uniform_rand (void){ - return double(rand() / double(0x7fffffff)); -} - - - - -double SGTELIB::quick_norm_rand (void){ - const int N = 24; - double d = 0; - for (int i=1 ; i0) return std::ceil(d); - else if (d<0) return std::floor(d); - else return 0.0; -} diff --git a/ext/sgtelib/src/Surrogate_Utils.cpp b/ext/sgtelib/src/Surrogate_Utils.cpp index 56a317de..218151a9 100644 --- a/ext/sgtelib/src/Surrogate_Utils.cpp +++ b/ext/sgtelib/src/Surrogate_Utils.cpp @@ -143,8 +143,8 @@ void SGTELIB::wait (double t) { bool SGTELIB::isdef ( const double x ) { if ( isnan(x) ) return false; if ( isinf(x) ) return false; - if ( fabs(x)>=SGTELIB::INF) return false; - if ( fabs(x)>=1e+16){ + if ( std::fabs(x)>=SGTELIB::INF) return false; + if ( std::fabs(x)>=1e+16){ return false; } return true; @@ -173,11 +173,11 @@ double SGTELIB::rel_err ( double x , double y ) { if ( x*y < 0.0 ) return 1.0; if ( x*y == 0.0 ) - return fabs(x-y); - double max = fabs(x); - if ( fabs(y) > max ) - max = fabs(y); - return ( fabs ( x-y ) / max ); + return std::fabs(x-y); + double max = std::fabs(x); + if ( std::fabs(y) > max ) + max = std::fabs(y); + return ( std::fabs ( x-y ) / max ); } /*---------------------------------*/ @@ -514,7 +514,7 @@ SGTELIB::distance_t SGTELIB::int_to_distance_type ( const int i ) { /* Same sign */ /*----------------------------------------------*/ bool SGTELIB::same_sign (const double a, const double b) { - return ( (a*b>0) || ( (fabs(a)0) || ( (std::fabs(a)1e-6 ){ + if ( std::fabs(rmse[j]-rmse_verif[j])>1e-6 ){ oss << "Error! Diff is too big!\n"; } } @@ -1229,7 +1229,7 @@ std::string SGTELIB::test_rmsecv (const std::string & s , const SGTELIB::Matrix oss.width(14); oss << rmsecv_verif[j] << "|"; oss.width(14); - d = 2*fabs(rmsecv[j]-rmsecv_verif[j])/(rmsecv[j]+rmsecv_verif[j]); + d = 2*std::fabs(rmsecv[j]-rmsecv_verif[j])/(rmsecv[j]+rmsecv_verif[j]); oss << d << "|\n"; if (d>0.01){ oss << "Error! Diff is too big!\n"; @@ -1392,7 +1392,7 @@ std::string SGTELIB::test_multiple_occurrences (const std::string & s ){ oss.width(14); oss << rmsecv_verif[j] << "|"; oss.width(14); - d = 2*fabs(rmsecv[j]-rmsecv_verif[j])/(rmsecv[j]+rmsecv_verif[j]); + d = 2*std::fabs(rmsecv[j]-rmsecv_verif[j])/(rmsecv[j]+rmsecv_verif[j]); oss << d << "|\n"; if (d>0.01){ oss << "Error! Diff is too big!\n"; @@ -1465,7 +1465,7 @@ double SGTELIB::test_functions_1D (const double t, const int function_index){ case 0: return 6.0*t*t + t - 1.0 - 50; // Quad function case 1: - return t/(1.0+fabs(5.0*t)); // Sigmoid + return t/(1.0+std::fabs(5.0*t)); // Sigmoid case 2: return 0.5-exp(-10*t*t); // bump case 3: @@ -1473,7 +1473,7 @@ double SGTELIB::test_functions_1D (const double t, const int function_index){ case 4: return 5.0*t-17.0*pow(t,3)+13*pow(t,5); // Oscillations/polynomial case 5: - return sin(6.0*t)+cos(15.0*sqrt(fabs(t))); // Difficult function + return sin(6.0*t)+cos(15.0*sqrt(std::fabs(t))); // Difficult function default: std::cout << "function_index : " << function_index << "\n"; throw SGTELIB::Exception ( __FILE__ , __LINE__ ,"test_function_1D : function_index not recognized" ); @@ -1532,7 +1532,7 @@ void SGTELIB::check_matrix_diff(const SGTELIB::Matrix * A, const SGTELIB::Matrix va = A->get(i,j); vb = B->get(i,j); eij = false; - dab = fabs(va-vb)/std::max( 0.5*(fabs(va)+fabs(vb)) , 1.0); + dab = std::fabs(va-vb)/std::max( 0.5*(std::fabs(va)+std::fabs(vb)) , 1.0); if (dab>1e-6){ eij = true; std::cout << "diff is too big !\n"; @@ -1557,7 +1557,7 @@ void SGTELIB::check_matrix_diff(const SGTELIB::Matrix * A, const SGTELIB::Matrix e = true; std::cout << "A(" << i << "," << j << ") = " << va << "\n"; std::cout << "B(" << i << "," << j << ") = " << vb << "\n"; - std::cout << "diff = " << fabs(va-vb) << "\n"; + std::cout << "diff = " << std::fabs(va-vb) << "\n"; std::cout << "dab = " << dab << "\n"; } } diff --git a/ext/sgtelib/src/TrainingSet.cpp b/ext/sgtelib/src/TrainingSet.cpp index f8d98bda..de1de027 100644 --- a/ext/sgtelib/src/TrainingSet.cpp +++ b/ext/sgtelib/src/TrainingSet.cpp @@ -771,7 +771,7 @@ void SGTELIB::TrainingSet::compute_Ds ( void ){ // Compute the mean distance between the points _Ds_mean += d; // If d==0, then the point i2 is not unique. - if (fabs(d)EPSILON ) { + if ( std::fabs(A.get(ia,j)-B.get(ib,j))>EPSILON ) { v+=10000; } v = sqrt(v); diff --git a/interfaces/PyNomad/pyproject.toml b/interfaces/PyNomad/pyproject.toml index 31676817..2bf2bb3f 100644 --- a/interfaces/PyNomad/pyproject.toml +++ b/interfaces/PyNomad/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "PyNomadBBO" -version = "4.5.0" +version = "4.5.1" authors = [ { name = "Jan Provaznik and Christophe Tribes", email="christophe.tribes@polymtl.ca"}, ] diff --git a/src/Algos/Mads/Poll.cpp b/src/Algos/Mads/Poll.cpp index 3dc089dd..bf320246 100644 --- a/src/Algos/Mads/Poll.cpp +++ b/src/Algos/Mads/Poll.cpp @@ -412,8 +412,8 @@ void NOMAD::Poll::computePrimarySecondaryPollCenters( fMin = std::min(xFeasFvalue, fMin); fMax = std::max(xFeasFvalue, fMin); } - mu += (fMin == fMax) ? std::abs(fMin.todouble()) - : std::abs(fMax.todouble() - fMin.todouble()); + mu += (fMin == fMax) ? std::fabs(fMin.todouble()) + : std::fabs(fMax.todouble() - fMin.todouble()); } // xInf' f is ``far'' into the dominance zone of the set of feasible solutions, diff --git a/src/Algos/Mads/VNSSearchMethod.cpp b/src/Algos/Mads/VNSSearchMethod.cpp index cc929c32..8b7d8f83 100644 --- a/src/Algos/Mads/VNSSearchMethod.cpp +++ b/src/Algos/Mads/VNSSearchMethod.cpp @@ -65,39 +65,52 @@ void NOMAD::VNSSearchMethod::init() auto evc = NOMAD::EvcInterface::getEvaluatorControl(); + + bool enabled = false; + // Do not perform if EVAL_SURROGATE_OPTIMIZATION is true (parentSearch ==nullptr) // For some testing, it is possible that evaluator control or runParams is null if (nullptr != evc && nullptr != _runParams) { + auto currentEvalType = evc->getCurrentEvalType(); - // Use of surrogate for VNS - _useSurrogate = _runParams->getAttributeValue("VNS_MADS_SEARCH_WITH_SURROGATE"); - if (_useSurrogate) + // Can be enabled only if no parent step is a VNS search method and current eval type is not MODEL + enabled = (nullptr == parentSearch) && (currentEvalType != EvalType::MODEL);; + + if (enabled) { - try + enabled = _runParams->getAttributeValue("VNS_MADS_SEARCH"); + + // Use of surrogate for VNS + _VNSUseSurrogate = _runParams->getAttributeValue("VNS_MADS_SEARCH_WITH_SURROGATE"); + + if (enabled && _VNSUseSurrogate) { - // When VNS search is done the current evaluator is set back to BB - evc->setCurrentEvaluatorType(EvalType::SURROGATE); - } - catch (NOMAD::Exception &e ) { - std::string error = e.what(); - error += " VNS_MADS_SEARCH_WITH_SURROGATE is enabled but no registered surrogate evaluator is available."; - std::cerr << error << std::endl; + throw NOMAD::Exception(__FILE__,__LINE__,"VNS_MADS_SEARCH_WITH_SURROGATE and VNS_MADS_SEARCH cannot be both enabled."); } + if (_VNSUseSurrogate) + { + try + { + // For trying to use surrogate, we need to have a surrogate evaluator registered. + evc->setCurrentEvaluatorType(EvalType::SURROGATE); + } + catch (NOMAD::Exception &e ) + { + std::string error = e.what(); + error += " VNS_MADS_SEARCH_WITH_SURROGATE is enabled but no registered surrogate evaluator is available."; + std::cerr << error << std::endl; + } + // Put back the current eval type to BB (cannot be MODEL or SURROGATE at this point) + evc->setCurrentEvaluatorType(EvalType::BB); + + } } - - - bool bBEval = ( evc->getCurrentEvalType() == EvalType::BB ) ; - bool SGTEEval = ( evc->getCurrentEvalType() == EvalType::SURROGATE ) ; - - // For some testing, it is possible that _runParams is null - setEnabled((nullptr == parentSearch) && _runParams->getAttributeValue("VNS_MADS_SEARCH") && (bBEval || SGTEEval)); - } - else - { - setEnabled(false); } + + setEnabled(enabled); + if (isEnabled()) { _trigger = _runParams->getAttributeValue("VNS_MADS_SEARCH_TRIGGER").todouble(); @@ -126,8 +139,9 @@ bool NOMAD::VNSSearchMethod::runImp() { auto evc = NOMAD::EvcInterface::getEvaluatorControl(); + const NOMAD::EvalType bbEvalType = NOMAD::EvalType::BB; - const NOMAD::EvalType searchEvalType = evc->getCurrentEvalType(); // Can be BB or SURROGATE + const NOMAD::EvalType searchEvalType = evc->getCurrentEvalType(); // Can be BB or SURROGATE if the whole optimization is with surrogate if (NOMAD::EvalType::MODEL == searchEvalType) { throw NOMAD::Exception(__FILE__,__LINE__,"VNS search cannot be use MODEL evaluation."); @@ -194,12 +208,20 @@ bool NOMAD::VNSSearchMethod::runImp() if ( nullptr != frameCenter ) { + if (_VNSUseSurrogate) + { + // Set a null barrier to the VNS algo. + // We should no use the evc existing BB type barrier for the initial point surrogate evaluation. + // The barrier is updated with the VNS Mads barrier when available. + evc->setBarrier(nullptr); + evc->setCurrentEvaluatorType(NOMAD::EvalType::SURROGATE); + } _vnsAlgo->setEndDisplay(false); - + // VNS algo needs a frame center used as initial point for sub-optimization _vnsAlgo->setFrameCenter(frameCenter); - + // VNS conduct sub-optimization _vnsAlgo->start(); _vnsAlgo->run(); @@ -208,49 +230,46 @@ bool NOMAD::VNSSearchMethod::runImp() // Get the success type and update Mads barrier with VNS Mads barrier auto vnsBarrier = _vnsAlgo->getBarrier(); - if (nullptr != vnsBarrier) + if (nullptr == vnsBarrier) { - auto vnsBestFeas = vnsBarrier->getCurrentIncumbentFeas(); - auto vnsBestInf = vnsBarrier->getCurrentIncumbentInf(); - - // If searchEvalType is surrogate perform BB evaluation on the selected point. - if (_useSurrogate) - { - if (nullptr != vnsBestFeas) - { - insertTrialPoint(*vnsBestFeas); - } - if (nullptr != vnsBestInf) - { - insertTrialPoint(*vnsBestInf); - } - evc->setCurrentEvaluatorType(NOMAD::EvalType::BB); - return evalTrialPoints(this); - - } - - NOMAD::SuccessType success = barrier->getSuccessTypeOfPoints(vnsBestFeas, - vnsBestInf); - setSuccessType(success); - if (success >= NOMAD::SuccessType::PARTIAL_SUCCESS) - { - foundBetter = true; - } - - - // Update the barrier - if ( NOMAD::EvalType::BB == searchEvalType ) + throw NOMAD::Exception(__FILE__,__LINE__,"VNS Mads barrier is not available."); + } + + auto vnsBestFeas = vnsBarrier->getCurrentIncumbentFeas(); + auto vnsBestInf = vnsBarrier->getCurrentIncumbentInf(); + + // If searchEvalType is surrogate perform BB evaluation on the selected point. + if (_VNSUseSurrogate) + { + if (nullptr != vnsBestFeas) { - barrier->updateWithPoints(vnsBarrier->getAllPoints(), - _runParams->getAttributeValue("FRAME_CENTER_USE_CACHE"), - true /*true: update incumbents and hMax*/); + insertTrialPoint(*vnsBestFeas); } - else + if (nullptr != vnsBestInf) { - + insertTrialPoint(*vnsBestInf); } + evc->setCurrentEvaluatorType(NOMAD::EvalType::BB); + return evalTrialPoints(this); } + + NOMAD::SuccessType success = barrier->getSuccessTypeOfPoints(vnsBestFeas, + vnsBestInf); + setSuccessType(success); + if (success >= NOMAD::SuccessType::PARTIAL_SUCCESS) + { + foundBetter = true; + } + + + // Update the barrier + if ( NOMAD::EvalType::BB == searchEvalType ) + { + barrier->updateWithPoints(vnsBarrier->getAllPoints(), + _runParams->getAttributeValue("FRAME_CENTER_USE_CACHE"), + true /*true: update incumbents and hMax*/); + } } } else @@ -259,7 +278,6 @@ bool NOMAD::VNSSearchMethod::runImp() AddOutputInfo("VNS trigger criterion not met. Stop VNS Mads Search."); OUTPUT_INFO_END } - evc->setCurrentEvaluatorType(NOMAD::EvalType::BB); } return foundBetter; } @@ -271,27 +289,6 @@ void NOMAD::VNSSearchMethod::generateTrialPointsFinal() NOMAD::EvalPointSet trialPoints; throw NOMAD::Exception(__FILE__,__LINE__,"VNS Mads generateTrialPointsFinal() not yet implemented."); - - // The trial points of one iteration of VNS are generated (not evaluated). - // The trial points are obtained by shuffle + mads poll - - // auto madsIteration = getParentOfType(); - - /* - // Note: Use first point of barrier as simplex center. - NOMAD::VNSSingle singleVNS(this, - std::make_shared(getMegaIterationBarrier()->getFirstPoint()), - madsIteration->getMesh()); - singleVNS.start(); - singleVNS.end(); - - // Pass the generated trial pts to this - const auto& trialPts = singleVNS.getTrialPoints(); - for (const auto& point : trialPts) - { - insertTrialPoint(point); - } - */ } // end generateTrialPoints diff --git a/src/Algos/Mads/VNSSearchMethod.hpp b/src/Algos/Mads/VNSSearchMethod.hpp index a62822c7..609dd784 100644 --- a/src/Algos/Mads/VNSSearchMethod.hpp +++ b/src/Algos/Mads/VNSSearchMethod.hpp @@ -64,7 +64,7 @@ class VNSSearchMethod final: public SearchMethodAlgo double _trigger; ///< Evaluation ratio (vns evals vs all evals) to trigger vns search - bool _useSurrogate; ///< Flag for surrogate or bb use. + bool _VNSUseSurrogate; ///< Flag to enable VNS with surrogate. /** The algorithm used by the search method. @@ -88,7 +88,6 @@ class VNSSearchMethod final: public SearchMethodAlgo explicit VNSSearchMethod(const Step* parentStep) : SearchMethodAlgo(parentStep), _displayLevel(OutputLevel::LEVEL_NORMAL), - _useSurrogate(false), _vnsAlgo(nullptr) { init(); diff --git a/src/Algos/MainStep.cpp b/src/Algos/MainStep.cpp index 256243e5..1b8d6847 100644 --- a/src/Algos/MainStep.cpp +++ b/src/Algos/MainStep.cpp @@ -1324,15 +1324,10 @@ void NOMAD::MainStep::addEvaluator(const EvaluatorPtr& ev) } if (NOMAD::EvalType::SURROGATE == evalTypeAdded && - NOMAD::EvalSortType::SURROGATE != _allParams->getAttributeValue("EVAL_QUEUE_SORT") ) + NOMAD::EvalSortType::SURROGATE != _allParams->getAttributeValue("EVAL_QUEUE_SORT") && + ! _allParams->getAttributeValue("VNS_MADS_SEARCH_WITH_SURROGATE") ) { - if ( ! _allParams->getAttributeValue("VNS_MADS_SEARCH") || - ( _allParams->getAttributeValue("VNS_MADS_SEARCH") && - ! _allParams->getAttributeValue("VNS_MADS_SEARCH_WITH_SURROGATE") ) ) - { std::cout << "Warning: A SURROGATE evaluator is available but it will not be used. To use it, set EVAL_QUEUE_SORT to SURROGATE or set VNS_MADS_SEARCH_WITH_SURROGATE." << std::endl; - } - } _evaluators.push_back(ev); diff --git a/src/Algos/NelderMead/NMIterationUtils.cpp b/src/Algos/NelderMead/NMIterationUtils.cpp index 9e01ad24..fe07d147 100644 --- a/src/Algos/NelderMead/NMIterationUtils.cpp +++ b/src/Algos/NelderMead/NMIterationUtils.cpp @@ -232,7 +232,7 @@ void NOMAD::NMIterationUtils::updateYCharacteristics() nfact*= (double)i; } - _simplexVol = fabs(det) / nfact; // Use fact(n) for volume + _simplexVol = std::fabs(det) / nfact; // Use fact(n) for volume if ( _simplexDiam > 0 ) _simplexVon = _simplexVol / pow(_simplexDiam,dim) ; diff --git a/src/Algos/QPSolverAlgo/L1AugLagSolver.cpp b/src/Algos/QPSolverAlgo/L1AugLagSolver.cpp index be1d6937..1f4573cf 100644 --- a/src/Algos/QPSolverAlgo/L1AugLagSolver.cpp +++ b/src/Algos/QPSolverAlgo/L1AugLagSolver.cpp @@ -77,7 +77,7 @@ NOMAD::L1AugLagSolverStatus NOMAD::L1AugLagSolver::solve(SGTELIB::Matrix& x, // really useful. The solver could have difficulty to move in the decision space. for (int i = 0; i < n; ++i) { - if (std::abs(lb.get(i, 0) - ub.get(i, 0)) <= 1e-8) + if (std::fabs(lb.get(i, 0) - ub.get(i, 0)) <= 1e-8) { return NOMAD::L1AugLagSolverStatus::TIGHT_VAR_BOUNDS; } @@ -1177,7 +1177,7 @@ double NOMAD::L1AugLagSolver::piecewiseLineSearch(const SGTELIB::Matrix& X, } // Update ak and Ik - ak += std::abs(jprod[lk]); + ak += std::fabs(jprod[lk]); Ik[lk] = false; nbElementsIk = (int) std::count(Ik.begin(), Ik.end(), true); } @@ -1316,7 +1316,7 @@ void NOMAD::L1AugLagSolver::computeActiveConstraints(std::vector& activeCo for (int j = 0; j < nbCons; ++j) { const double ci = cons.get(j, 0); - activeConstraints[j] = std::abs(ci) <= inner_tol; + activeConstraints[j] = std::fabs(ci) <= inner_tol; } } @@ -1379,7 +1379,7 @@ void NOMAD::L1AugLagSolver::computeMultipliersInfeasibleConstraints(SGTELIB::Mat constexpr double rank_tol = 1e-15; for (int i = 0; i < nbCons; i++) { - if (fabs(W[i]) > rank_tol) + if (std::fabs(W[i]) > rank_tol) { rank++; } else diff --git a/src/Algos/QPSolverAlgo/LevenbergMarquardtSolver.cpp b/src/Algos/QPSolverAlgo/LevenbergMarquardtSolver.cpp index 17b11a22..5c1b32c9 100644 --- a/src/Algos/QPSolverAlgo/LevenbergMarquardtSolver.cpp +++ b/src/Algos/QPSolverAlgo/LevenbergMarquardtSolver.cpp @@ -554,7 +554,7 @@ bool NOMAD::LevenbergMarquardtSolver::checkBoundsTightness(const SGTELIB::Matrix constexpr double atol = 1e-8; for (int i = 0; i < n; ++i) { - if (std::abs(uvar.get(i, 0) - lvar.get(i, 0)) <= atol) + if (std::fabs(uvar.get(i, 0) - lvar.get(i, 0)) <= atol) { return false; } diff --git a/src/Algos/QPSolverAlgo/ProjectedConjugateGradientSolver.cpp b/src/Algos/QPSolverAlgo/ProjectedConjugateGradientSolver.cpp index 1cf1cc48..366d8dab 100644 --- a/src/Algos/QPSolverAlgo/ProjectedConjugateGradientSolver.cpp +++ b/src/Algos/QPSolverAlgo/ProjectedConjugateGradientSolver.cpp @@ -484,7 +484,7 @@ NOMAD::ProjectedConjugateGradientSolverStatus NOMAD::ProjectedConjugateGradientS for (int iterRefine = 0; iterRefine < nbIterRefinements; ++iterRefine) { cosTheta = computeCosTheta(A, gp); - if (std::abs(cosTheta) <= tol_itRefinement) + if (std::fabs(cosTheta) <= tol_itRefinement) { break; } diff --git a/src/Algos/QPSolverAlgo/QPSolverOptimize.cpp b/src/Algos/QPSolverAlgo/QPSolverOptimize.cpp index 3cce1d9f..a42cd320 100644 --- a/src/Algos/QPSolverAlgo/QPSolverOptimize.cpp +++ b/src/Algos/QPSolverAlgo/QPSolverOptimize.cpp @@ -754,7 +754,7 @@ void NOMAD::QPSolverOptimize::solve_TR_constrained_QP( // eigenvalue. const double nd = bk.norm(); const double slope = SGTELIB::Matrix::dot(gW, bk); - const double a_unb = (Delta < 1e15) ? Delta / nd : 1000 * std::abs(slope) / nd; + const double a_unb = (Delta < 1e15) ? Delta / nd : 1000 * std::fabs(slope) / nd; int ki = 0; d->fill(0); @@ -997,7 +997,7 @@ bool NOMAD::QPSolverOptimize::conjugateGradient( // Negative curvature detection if (sAs <= atol * atol * sNormSquare) { - if (std::abs(sAs) <= atol * sNormSquare) + if (std::fabs(sAs) <= atol * sNormSquare) { zeroCurvature = true; } @@ -1305,11 +1305,11 @@ bool NOMAD::QPSolverOptimize::solveBCQP( // Update the set of active constraints for (int i = 0; i < n; ++i) { // We will correct if needed (see for example SolverTools.jl) - if (std::abs(X.get(i, 0) - lvar.get(i, 0)) <= 1E-15) + if (std::fabs(X.get(i, 0) - lvar.get(i, 0)) <= 1E-15) { X.set(i, 0, lvar[i]); } - if (std::abs(X.get(i, 0) - uvar.get(i, 0)) <= 1E-15) + if (std::fabs(X.get(i, 0) - uvar.get(i, 0)) <= 1E-15) { X.set(i, 0, uvar[i]); } @@ -1423,11 +1423,11 @@ bool NOMAD::QPSolverOptimize::solveBCQP( // Update the set of active constraints for (int i = 0; i < n; ++i) { // We will correct if needed (see for example SolverTools.jl) - if (std::abs(X.get(i, 0) - lvar.get(i, 0)) <= 1E-15) + if (std::fabs(X.get(i, 0) - lvar.get(i, 0)) <= 1E-15) { X.set(i, 0, lvar[i]); } - if (std::abs(X.get(i, 0) - uvar.get(i, 0)) <= 1E-15) + if (std::fabs(X.get(i, 0) - uvar.get(i, 0)) <= 1E-15) { X.set(i, 0, uvar[i]); } @@ -1470,7 +1470,7 @@ bool NOMAD::QPSolverOptimize::solveBCQP( break; } } - OK = !areActiveSetsChanged && ((Xm.norm() <= 1e-9) || (std::abs(fk - qCurrent) <= 1e-9)); + OK = !areActiveSetsChanged && ((Xm.norm() <= 1e-9) || (std::fabs(fk - qCurrent) <= 1e-9)); k++; verbose && std::cout << " k = " << k << " f(xk) = " << fk << " |d| = " << d_k.norm() << " a(amax) = " << a_k << " ( " << a_max << " )"; @@ -1558,7 +1558,7 @@ double NOMAD::QPSolverOptimize::projected_armijo( // NB: we do not enter often in this loop. int nbW = 0; bool wolfeCond = slope_t < wolfe_tol * slope; // NB: we use the strong Wolfe condition. - bool armijoCond = fkp <= fk - armijo_tol * tk * std::abs(slope); + bool armijoCond = fkp <= fk - armijo_tol * tk * std::fabs(slope); while (wolfeCond && armijoCond && (nbW < bW_max) && (tk <= t_max)) { tk *= t_increase; @@ -1572,7 +1572,7 @@ double NOMAD::QPSolverOptimize::projected_armijo( fkp = getModelObj(Xp, H, g, g0); slope_t = SGTELIB::Matrix::dot(d, gradientF_kp); wolfeCond = slope_t < wolfe_tol * slope; - armijoCond = fkp <= fk - armijo_tol * tk * std::abs(slope); + armijoCond = fkp <= fk - armijo_tol * tk * std::fabs(slope); nbW ++; good_grad = true; @@ -1580,7 +1580,7 @@ double NOMAD::QPSolverOptimize::projected_armijo( // Then try to satisfy Armijo's conditions. int nbA = 0; - armijoCond = fkp <= fk - armijo_tol * tk * std::abs(slope); + armijoCond = fkp <= fk - armijo_tol * tk * std::fabs(slope); while (!armijoCond && tk > t_small) { tk /= t_decrease; @@ -1588,7 +1588,7 @@ double NOMAD::QPSolverOptimize::projected_armijo( snapToBounds(Xp, lvar, uvar); fkp = getModelObj(Xp, H, g, g0); - armijoCond = fkp <= fk - armijo_tol * tk * fabs(slope); + armijoCond = fkp <= fk - armijo_tol * tk * std::fabs(slope); nbA ++; } @@ -1654,7 +1654,7 @@ bool NOMAD::QPSolverOptimize::solveL1AugLag( // Particular case : when the gap between lvar and uvar is too small, we immediately leave the procedure. for (int i = 0; i < _n; ++i) { - if (std::abs(lvar.get(i, 0) - uvar.get(i, 0)) <= 1e-8) + if (std::fabs(lvar.get(i, 0) - uvar.get(i, 0)) <= 1e-8) { return false; } @@ -1882,8 +1882,8 @@ bool NOMAD::QPSolverOptimize::solveL1AugLag( } for (int i = 0; i < _n; ++i) { - active_lb[i] = std::abs(X_k[i].todouble() - lvar[i]) <= innerTolBounds[i]; - active_ub[i] = std::abs(X_k[i].todouble() - uvar[i]) <= innerTolBounds[i]; + active_lb[i] = std::fabs(X_k[i].todouble() - lvar[i]) <= innerTolBounds[i]; + active_ub[i] = std::fabs(X_k[i].todouble() - uvar[i]) <= innerTolBounds[i]; } // Recompute a horizontal step @@ -1994,7 +1994,7 @@ bool NOMAD::QPSolverOptimize::solveL1AugLag( const double distXkXkm1 = NOMAD::Point::dist(X_k,X_km1).todouble(); // normGradLag_k = gradLag_k.norm(); F_k = getPenalizedL1AugLagModelObj(X_k, cons, lambda_l, mu_l); - const double deltaF = std::abs(F_k - F_km1); + const double deltaF = std::fabs(F_k - F_km1); // double dual_norm = 0; verbose && std::cout << " Inner: (l=" << iterInnerLoop << ") Pl = " << F_k << " |c| = " << cons.norm() << " |L| = " << ZtransposePseudoGrad_k.norm() << " |dF| = " << deltaF; verbose && std::cout << " inner precision = " << innerPrecision << " bounds precision (inf) = " << innerTolBounds.norm_inf() << std::endl; @@ -2031,7 +2031,7 @@ bool NOMAD::QPSolverOptimize::solveL1AugLag( for (int i = 0; i < _nbCons ; i++) { const double li = lambda_l.get(i, 0); - if (std::abs(cons.get(i, 0)) <= tol) + if (std::fabs(cons.get(i, 0)) <= tol) { active[i] = true; feasible[i] = false; @@ -2082,8 +2082,8 @@ bool NOMAD::QPSolverOptimize::solveL1AugLag( // Check failure for (int i = 0; i < _n; ++i) { - active_lb[i] = std::abs(X_k[i].todouble() - lvar[i]) <= 1e-8; - active_ub[i] = std::abs(X_k[i].todouble() - uvar[i]) <= 1e-8; + active_lb[i] = std::fabs(X_k[i].todouble() - lvar[i]) <= 1e-8; + active_ub[i] = std::fabs(X_k[i].todouble() - uvar[i]) <= 1e-8; } int nbActiveLb = sum(active_lb, _n); int nbActiveUb = sum(active_ub, _n); @@ -2117,8 +2117,8 @@ bool NOMAD::QPSolverOptimize::check_active_bound_constraints(const NOMAD::Point // with the lowest tolerance for (int i = 0; i < _n; ++i) { - if (std::abs(X[i].todouble() - lvar[i]) <= 1e-8 && - std::abs(X[i].todouble() - uvar[i]) <= 1e-8) + if (std::fabs(X[i].todouble() - lvar[i]) <= 1e-8 && + std::fabs(X[i].todouble() - uvar[i]) <= 1e-8) { return false; } @@ -2127,8 +2127,8 @@ bool NOMAD::QPSolverOptimize::check_active_bound_constraints(const NOMAD::Point // Update active bound sets for (int i = 0; i < _n; ++i) { - active_lb[i] = std::abs(X[i].todouble() - lvar[i]) <= tolBounds[i]; - active_ub[i] = std::abs(X[i].todouble() - uvar[i]) <= tolBounds[i]; + active_lb[i] = std::fabs(X[i].todouble() - lvar[i]) <= tolBounds[i]; + active_ub[i] = std::fabs(X[i].todouble() - uvar[i]) <= tolBounds[i]; } // Special check: further reduce the tolerance of active bound constraints to prevent @@ -2142,8 +2142,8 @@ bool NOMAD::QPSolverOptimize::check_active_bound_constraints(const NOMAD::Point bool areActiveBoundConstraintsBelowTol = true; for (int i = 0; i < _n; ++i) { - if (std::abs(X[i].todouble() - lvar[i]) > 1e-8 && - std::abs(X[i].todouble() - uvar[i]) > 1e-8) + if (std::fabs(X[i].todouble() - lvar[i]) > 1e-8 && + std::fabs(X[i].todouble() - uvar[i]) > 1e-8) { areActiveBoundConstraintsBelowTol = false; break; @@ -2167,8 +2167,8 @@ bool NOMAD::QPSolverOptimize::check_active_bound_constraints(const NOMAD::Point // 3- Recompute the set of active bound constraints for (int i = 0; i < _n; ++i) { - active_lb[i] = std::abs(X[i].todouble() - lvar[i]) <= tolBounds[i]; - active_ub[i] = std::abs(X[i].todouble() - uvar[i]) <= tolBounds[i]; + active_lb[i] = std::fabs(X[i].todouble() - lvar[i]) <= tolBounds[i]; + active_ub[i] = std::fabs(X[i].todouble() - uvar[i]) <= tolBounds[i]; } nbActiveLb = sum(active_lb, _n); nbActiveUb = sum(active_ub, _n); @@ -2193,7 +2193,7 @@ bool NOMAD::QPSolverOptimize::check_active_constraints(const SGTELIB::Matrix& co bool areConstraintsBelowTol = true; for (int i = 0; i < _nbCons; ++i) { - if (active[i] && std::abs(cons.get(i, 0)) > 1e-5) + if (active[i] && std::fabs(cons.get(i, 0)) > 1e-5) { areConstraintsBelowTol = false; break; @@ -2444,11 +2444,11 @@ double NOMAD::QPSolverOptimize::piecewise_line_search( // Update ak if (lk < _nbCons) { - ak += fabs(jprod[lk]); + ak += std::fabs(jprod[lk]); } else if (lk < _nbCons + _n) { - ak += std::abs(d[lk - _nbCons]); + ak += std::fabs(d[lk - _nbCons]); } else { - ak += std::abs(d[lk - _nbCons - _n]); + ak += std::fabs(d[lk - _nbCons - _n]); } if (ak >= 0) @@ -3487,7 +3487,7 @@ bool NOMAD::QPSolverOptimize::solveTRIPM( // When the difference between lvar and uvar is too small, stop the algorithm for (int i = 0; i < nbVar; ++i) { - if (std::abs(uvar.get(i, 0) - lvar.get(i, 0)) <= 1e-8) + if (std::fabs(uvar.get(i, 0) - lvar.get(i, 0)) <= 1e-8) { return false; } @@ -3744,7 +3744,7 @@ void NOMAD::QPSolverOptimize::compute_slack_multiplier( if (y.get(i, 0) >= 0) { const double si = XS.get(_n + i, 0); - y.set(i, 0, -std::min(std::abs(1E-3), std::abs(mu / si))); + y.set(i, 0, -std::min(std::fabs(1E-3), std::fabs(mu / si))); } } } @@ -3799,7 +3799,7 @@ double NOMAD::QPSolverOptimize::errorTRIPM( double lagGradS = 0; for (int i=0; i < _nbCons; i++) { - lagGradS = std::max(std::abs(-XS.get(i + _n, 0) * lambda.get(i, 0) - mu), lagGradS); + lagGradS = std::max(std::fabs(-XS.get(i + _n, 0) * lambda.get(i, 0) - mu), lagGradS); } return std::max(lagGradS, std::max(cslack.norm_inf(), dual_feas.norm_inf())); } @@ -4876,8 +4876,8 @@ bool NOMAD::QPSolverOptimize::InverseIteration( const double Ckp = 1 / invHWpbk.norm(); - // OK = (fix_point <= tol) || (fabs(Ck - Ckp) <= tol); - OK = (fix_point <= 1E-7) || (std::abs(Ck - Ckp) <= tol); + // OK = (fix_point <= tol) || (std::fabs(Ck - Ckp) <= tol); + OK = (fix_point <= 1E-7) || (std::fabs(Ck - Ckp) <= tol); Ck = Ckp; count++; @@ -5647,11 +5647,11 @@ double NOMAD::QPSolverOptimize::max_step_bounds( double gamma = INF; if (di > 0) { - gamma = (uvar.get(i, 0) - X.get(i, 0)) / std::abs(di); + gamma = (uvar.get(i, 0) - X.get(i, 0)) / std::fabs(di); } else if (di < 0) { - gamma = (X.get(i, 0) - lvar.get(i, 0)) / std::abs(di); + gamma = (X.get(i, 0) - lvar.get(i, 0)) / std::fabs(di); } if (gamma < t_max) { @@ -5770,8 +5770,8 @@ void NOMAD::QPSolverOptimize::active_bounds( for (int i = 0; i < n; ++i) { - active_l[i] = (std::abs(X.get(i, 0) - lvar.get(i, 0)) < tol); - active_u[i] = (std::abs(X.get(i, 0) - uvar.get(i, 0)) < tol); + active_l[i] = (std::fabs(X.get(i, 0) - lvar.get(i, 0)) < tol); + active_u[i] = (std::fabs(X.get(i, 0) - uvar.get(i, 0)) < tol); } } @@ -5809,7 +5809,7 @@ void NOMAD::QPSolverOptimize::getModelActiveCons( for (int i = 0; i < static_cast(_nbCons) ; i++) { - indices[i] = (fabs(cons.get(i, 0)) <= tol); + indices[i] = (std::fabs(cons.get(i, 0)) <= tol); } } diff --git a/src/Algos/QPSolverAlgo/TRIPMSolver.cpp b/src/Algos/QPSolverAlgo/TRIPMSolver.cpp index 4a06039a..fe6a44b2 100644 --- a/src/Algos/QPSolverAlgo/TRIPMSolver.cpp +++ b/src/Algos/QPSolverAlgo/TRIPMSolver.cpp @@ -92,7 +92,7 @@ NOMAD::TRIPMSolverStatus NOMAD::TRIPMSolver::solve(SGTELIB::Matrix& x, std::vector fixedVars(n, false); for (int i = 0; i < n; ++i) { - if (std::abs(ub.get(i, 0) - lb.get(i, 0)) <= atol) + if (std::fabs(ub.get(i, 0) - lb.get(i, 0)) <= atol) { nbFixedVars += 1; fixedVars[i] = true; @@ -654,14 +654,14 @@ void NOMAD::TRIPMSolver::computeErrorFunctionMetric(NOMAD::TRIPMSolver::TRIPMErr double dualFeas = x.get(i, 0) - gradLx.get(i, 0); dualFeas = std::clamp(dualFeas, lvar.get(i, 0), uvar.get(i, 0)); dualFeas = x.get(i, 0) - dualFeas; - errMetric.projlagGradNorm = std::max(errMetric.projlagGradNorm, std::abs(dualFeas)); + errMetric.projlagGradNorm = std::max(errMetric.projlagGradNorm, std::fabs(dualFeas)); } // Compute || -S y - mu ||_inf errMetric.slackLambdaMuNorm = 0.0; for (int i = 0; i < nbCons; i++) { - errMetric.slackLambdaMuNorm = std::max(std::abs(-XS.get(i + n, 0) * lambda.get(i, 0) - mu), + errMetric.slackLambdaMuNorm = std::max(std::fabs(-XS.get(i + n, 0) * lambda.get(i, 0) - mu), errMetric.slackLambdaMuNorm); } @@ -673,7 +673,7 @@ void NOMAD::TRIPMSolver::computeErrorFunctionMetric(NOMAD::TRIPMSolver::TRIPMErr double dualFeas = x.get(i, 0) - gradObj.get(i, 0); dualFeas = std::clamp(dualFeas, lvar.get(i, 0), uvar.get(i, 0)); dualFeas = x.get(i, 0) - dualFeas; - errMetric.projObjGrad = std::max(errMetric.projObjGrad, std::abs(dualFeas)); + errMetric.projObjGrad = std::max(errMetric.projObjGrad, std::fabs(dualFeas)); } // Compute || c(x) + s ||_inf (for the barrier subproblem) or || max(c(x), 0) ||_inf (for the outer loop) @@ -685,7 +685,7 @@ void NOMAD::TRIPMSolver::computeErrorFunctionMetric(NOMAD::TRIPMSolver::TRIPMErr for (int i = 0; i < nbCons; ++i) { const double si = XS.get(i + n, 0); - errMetric.cxNorm = std::max(std::abs(cons.get(i, 0) + si), errMetric.cxNorm); + errMetric.cxNorm = std::max(std::fabs(cons.get(i, 0) + si), errMetric.cxNorm); } } else @@ -749,7 +749,7 @@ bool NOMAD::TRIPMSolver::computeSlackMultipliers(SGTELIB::Matrix& slackMultiplie if (slackMultipliers.get(i, 0) >= 0) { const double si = XS.get(i + n, 0); - slackMultipliers.set(i, 0, -std::min(std::abs(1E-3), std::abs(mu / si))); + slackMultipliers.set(i, 0, -std::min(std::fabs(1E-3), std::fabs(mu / si))); } } return true; diff --git a/src/Algos/QuadModel/QuadModelOptimize.cpp b/src/Algos/QuadModel/QuadModelOptimize.cpp index e169a048..6d5a8ba2 100644 --- a/src/Algos/QuadModel/QuadModelOptimize.cpp +++ b/src/Algos/QuadModel/QuadModelOptimize.cpp @@ -159,6 +159,7 @@ void NOMAD::QuadModelOptimize::setupRunParameters() // IMPORTANT: if VNS_MADS_SEARCH is changed to yes, the static members of VNSSearchMethod must be managed correctly _optRunParams->setAttributeValue("VNS_MADS_SEARCH", false); + _optRunParams->setAttributeValue("VNS_MADS_SEARCH_WITH_SURROGATE", false); _optRunParams->setAttributeValue("ANISOTROPIC_MESH", false); diff --git a/src/Algos/SgtelibModel/SgtelibModelOptimize.cpp b/src/Algos/SgtelibModel/SgtelibModelOptimize.cpp index 9d032318..c143c042 100644 --- a/src/Algos/SgtelibModel/SgtelibModelOptimize.cpp +++ b/src/Algos/SgtelibModel/SgtelibModelOptimize.cpp @@ -183,6 +183,7 @@ void NOMAD::SgtelibModelOptimize::setupRunParameters() _optRunParams->setAttributeValue("SGTELIB_MODEL_SEARCH", false); _optRunParams->setAttributeValue("QUAD_MODEL_SEARCH", false); _optRunParams->setAttributeValue("VNS_MADS_SEARCH", false); + _optRunParams->setAttributeValue("VNS_MADS_SEARCH_WITH_SURROGATE", false); // Set direction type to Ortho 2n _optRunParams->setAttributeValue("DIRECTION_TYPE",NOMAD::DirectionType::ORTHO_2N); diff --git a/src/Algos/VNSMads/VNS.cpp b/src/Algos/VNSMads/VNS.cpp index e2ffc19f..40a98c8c 100644 --- a/src/Algos/VNSMads/VNS.cpp +++ b/src/Algos/VNSMads/VNS.cpp @@ -119,7 +119,7 @@ bool NOMAD::VNS::runImp() NOMAD::Direction dir = scaledDirection.front(); if (!dir.isDefined()) { - throw NOMAD::Exception(__FILE__,__LINE__,"VNS_MADS_OPTIMIZATION: single scaled direction not defined"); + throw NOMAD::Exception(__FILE__,__LINE__,"VNS: single scaled direction not defined"); } // Multiply shake direction by VNS neighborhood parameter @@ -167,6 +167,20 @@ bool NOMAD::VNS::runImp() setupPbParameters(shakePoint,currentMadsFrameSize); setupRunParameters(); + + // In case we are doing a VNS using Surrogate (VNS_MADS_SEARCH_WITH_SURROGATE) we must not use the surrogate for the evaluation queue sort. + auto evc = NOMAD::EvcInterface::getEvaluatorControl(); + auto evalType = evc->getCurrentEvalType(); + auto evalSortType = evc->getEvalSortType(); + bool evalSortTypeChanged = false; + if (evalType == NOMAD::EvalType::SURROGATE && evalSortType == NOMAD::EvalSortType::SURROGATE) + { // Force eval sort type to DIR_LAST_SUCCESS when doing VNS with Surrogate + // Quad model is probably not adapted for this task because + // the quad model is built using the true BB. + // Note: Still, surrogate can be used to sort trial points before BB evaluation. + evc->setEvalSortType(NOMAD::EvalSortType::DIR_LAST_SUCCESS); + evalSortTypeChanged = true; + } NOMAD::Mads mads(this, _madsStopReasons, _optRunParams, _optPbParams, false /*false: Barrier not initialized from cache */ ); @@ -184,6 +198,12 @@ bool NOMAD::VNS::runImp() _barrier = mads.getMegaIterationBarrier(); _algoSuccessful = true; } + + // Reset the eval sort type to surrogate if it has been changed + if (evalSortTypeChanged) + { + evc->setEvalSortType(NOMAD::EvalSortType::SURROGATE); + } _termination->start(); _termination->run(); @@ -207,6 +227,7 @@ void NOMAD::VNS::setupRunParameters() // VNS do not perform VNS search _optRunParams->setAttributeValue("VNS_MADS_SEARCH", false); + _optRunParams->setAttributeValue("VNS_MADS_SEARCH_WITH_SURROGATE",false); // No LH search _optRunParams->setAttributeValue("LH_SEARCH", NOMAD::LHSearchType("0 0")); diff --git a/src/Math/Double.cpp b/src/Math/Double.cpp index 38f155a7..4b8aa016 100644 --- a/src/Math/Double.cpp +++ b/src/Math/Double.cpp @@ -519,7 +519,7 @@ std::ostream& operator<<(std::ostream& os, const NOMAD::Double& d) { os << "-" << NOMAD::Double::getInfStr(); } - else if ( std::floor(value) == std::ceil(value) && fabs(value) < INT_MAX-1 ) + else if ( std::floor(value) == std::ceil(value) && std::fabs(value) < INT_MAX-1 ) { os << static_cast(value); } @@ -666,7 +666,7 @@ std::string NOMAD::Double::display(const std::string& format) const if ( c != 'e' && c != 'E' && c != 'f' && c != 'g' && c != 'G' && c != 'd' && c != 'i' ) { - c = ( std::floor(_value) == std::ceil(_value) && fabs(_value) < INT_MAX-1 ) + c = ( std::floor(_value) == std::ceil(_value) && std::fabs(_value) < INT_MAX-1 ) ? 'd' : 'f'; format2.push_back(c); ++n; @@ -724,7 +724,7 @@ std::string NOMAD::Double::display(const std::string& format) const } else if ( c=='d' || c=='i' || ( format2.empty() && - std::floor(_value) == std::ceil(_value) && fabs(_value) < INT_MAX-1 ) ) + std::floor(_value) == std::ceil(_value) && std::fabs(_value) < INT_MAX-1 ) ) { oss << roundd(); } @@ -912,7 +912,7 @@ NOMAD::Double NOMAD::Double::abs () const if ( !_defined ) throw NotDefined ( "Double.cpp" , __LINE__ , "NOMAD::Double::abs(): value not defined" ); - return fabs ( _value ); + return std::fabs ( _value ); } /*------------------------------------------*/ @@ -961,7 +961,7 @@ NOMAD::Double NOMAD::Double::relErr ( const NOMAD::Double & x ) const if ( this == &x || _value == x._value ) return 0.0; - double diff = fabs ( _value - x._value ); + double diff = std::fabs ( _value - x._value ); // 2. test if one of the values is zero: if ( _value == 0.0 || x._value == 0.0 ) @@ -974,8 +974,8 @@ NOMAD::Double NOMAD::Double::relErr ( const NOMAD::Double & x ) const } // 3. compute the original error: - double a = fabs ( _value ); - double b = fabs ( x._value ); + double a = std::fabs ( _value ); + double b = std::fabs ( x._value ); double err = diff / ( (a rhs) + if (std::fabs(q0 * q2) > rhs) { const double rho = q1 * q1 - 4 * q2 * q0; if (rho < 0) diff --git a/src/Math/MatrixUtils.cpp b/src/Math/MatrixUtils.cpp index 0fa28f59..78f69d4f 100644 --- a/src/Math/MatrixUtils.cpp +++ b/src/Math/MatrixUtils.cpp @@ -120,7 +120,7 @@ int NOMAD::getRank(double ** M, int rank=0; for (size_t i=0;i eps) + if (std::fabs(W[i]) > eps) rank++; } @@ -200,7 +200,7 @@ bool NOMAD::SVD_decomposition ( std::string & error_msg, if ( i < m ) { for ( k = i ; k < m ; ++k ) - scale += fabs ( M[k][i] ); + scale += std::fabs ( M[k][i] ); if ( scale ) { for ( k = i ; k < m ; ++k ) @@ -209,7 +209,7 @@ bool NOMAD::SVD_decomposition ( std::string & error_msg, s += M[k][i] * M[k][i]; } f = M[i][i]; - g = ( f >= 0.0 ) ? -fabs(sqrt(s)) : fabs(sqrt(s)); + g = ( f >= 0.0 ) ? -std::fabs(sqrt(s)) : std::fabs(sqrt(s)); h = f * g - s; M[i][i] = f - g; for ( j = l ; j < n ; ++j ) @@ -229,7 +229,7 @@ bool NOMAD::SVD_decomposition ( std::string & error_msg, if ( i < m && i != nm1 ) { for ( k = l ; k < n ; ++k ) - scale += fabs ( M[i][k] ); + scale += std::fabs ( M[i][k] ); if ( scale ) { for ( k = l ; k < n ; ++k ) @@ -238,7 +238,7 @@ bool NOMAD::SVD_decomposition ( std::string & error_msg, s += M[i][k] * M[i][k]; } f = M[i][l]; - g = ( f >= 0.0 ) ? -fabs(sqrt(s)) : fabs(sqrt(s)); + g = ( f >= 0.0 ) ? -std::fabs(sqrt(s)) : std::fabs(sqrt(s)); h = f * g - s; M[i][l] = f - g; for ( k = l ; k < n ; ++k ) @@ -254,7 +254,7 @@ bool NOMAD::SVD_decomposition ( std::string & error_msg, M[i][k] *= scale; } } - double tmp = fabs ( W[i] ) + fabs ( rv1[i] ); + double tmp = std::fabs ( W[i] ) + std::fabs ( rv1[i] ); norm = ( norm > tmp ) ? norm : tmp; } @@ -319,12 +319,12 @@ bool NOMAD::SVD_decomposition ( std::string & error_msg, for ( l = k ; l >= 0 ; l-- ) { nm = l - 1; - if ( nm < 0 || fabs ( rv1[l]) + norm == norm ) + if ( nm < 0 || std::fabs ( rv1[l]) + norm == norm ) { flag = false; break; } - if ( fabs ( W[nm] ) + norm == norm ) + if ( std::fabs ( W[nm] ) + norm == norm ) break; } if ( flag ) @@ -335,12 +335,12 @@ bool NOMAD::SVD_decomposition ( std::string & error_msg, { f = s * rv1[i]; rv1[i] = c * rv1[i]; - if ( fabs(f) + norm == norm ) + if ( std::fabs(f) + norm == norm ) break; g = W[i]; - absf = fabs(f); - absg = fabs(g); + absf = std::fabs(f); + absg = std::fabs(g); h = ( absf > absg ) ? absf * sqrt ( 1.0 + pow ( absg/absf, 2.0 ) ) : ( ( absg==0 ) ? 0.0 : absg * sqrt ( 1.0 + pow ( absf/absg, 2.0 ) ) ); @@ -383,13 +383,13 @@ bool NOMAD::SVD_decomposition ( std::string & error_msg, h = rv1[k]; f = ( (y-z) * (y+z) + (g-h) * (g+h) ) / ( 2.0 * h * y ); - absf = fabs(f); + absf = std::fabs(f); g = ( absf > 1.0 ) ? absf * sqrt ( 1.0 + pow ( 1.0/absf, 2.0 ) ) : sqrt ( 1.0 + pow ( absf, 2.0 ) ); f = ( (x-z) * (x+z) + - h * ( ( y / ( f + ( (f >= 0)? fabs(g) : -fabs(g) ) ) ) - h ) ) / x; + h * ( ( y / ( f + ( (f >= 0)? std::fabs(g) : -std::fabs(g) ) ) ) - h ) ) / x; c = s = 1.0; for ( j = l ; j <= nm ; ++j ) @@ -400,8 +400,8 @@ bool NOMAD::SVD_decomposition ( std::string & error_msg, h = s * g; g = c * g; - absf = fabs(f); - absh = fabs(h); + absf = std::fabs(f); + absh = std::fabs(h); z = ( absf > absh ) ? absf * sqrt ( 1.0 + pow ( absh/absf, 2.0 ) ) : ( ( absh==0 ) ? 0.0 : absh * sqrt ( 1.0 + pow ( absf/absh, 2.0 ) ) ); @@ -421,8 +421,8 @@ bool NOMAD::SVD_decomposition ( std::string & error_msg, V[jj][i] = z * c - x * s; } - absf = fabs(f); - absh = fabs(h); + absf = std::fabs(f); + absh = std::fabs(h); z = ( absf > absh ) ? absf * sqrt ( 1.0 + pow ( absh/absf, 2.0 ) ) : ( ( absh==0 ) ? 0.0 : absh * sqrt ( 1.0 + pow ( absf/absh, 2.0 ) ) ); @@ -502,7 +502,7 @@ bool NOMAD::LU_decomposition ( std::string & error_msg, big = 0.0; for ( j = 0 ; j < n ; j++ ) { - if ( (temp = fabs(LU[i][j])) > big ) + if ( (temp = std::fabs(LU[i][j])) > big ) big = temp; } if ( big == 0 ) @@ -521,7 +521,7 @@ bool NOMAD::LU_decomposition ( std::string & error_msg, int imax = k; for ( i = k ; i < n ; i++ ) { - temp = vv[i]*fabs(LU[i][k]); + temp = vv[i]*std::fabs(LU[i][k]); if ( temp > big ) { big = temp; @@ -1159,13 +1159,13 @@ bool NOMAD::LDLt_decomposition ( std::string & error_msg, { // lambda, vr = findmax(abs.(A[k+1:n, k])) vr = k + 1; - lambda = abs(M[vr][k]); + lambda = std::fabs(M[vr][k]); for (int j = k + 2; j < n; j++) { if (abs(M[j][k]) > lambda) { vr = int(j); - lambda = abs(M[vr][k]); + lambda = std::fabs(M[vr][k]); } } @@ -1174,7 +1174,7 @@ bool NOMAD::LDLt_decomposition ( std::string & error_msg, { swap = false; - if (abs(M[k][k]) >= alpha * lambda) + if (std::fabs(M[k][k]) >= alpha * lambda) { s = 1; } @@ -1188,14 +1188,14 @@ bool NOMAD::LDLt_decomposition ( std::string & error_msg, { if (abs(M[i][r]) > sigma) { - sigma = abs(M[i][r]); // σ = norm(A[k:n, r], Inf) + sigma = std::fabs(M[i][r]); // σ = norm(A[k:n, r], Inf) } } - if (alpha * lambda * lambda <= abs(M[k][k]) * sigma) + if (alpha * lambda * lambda <= std::fabs(M[k][k]) * sigma) { s = 1; } - else if ( abs(M[r][r]) >= alpha * sigma ) + else if ( std::fabs(M[r][r]) >= alpha * sigma ) { swap = true; m1 = k; @@ -1369,7 +1369,7 @@ bool NOMAD::LDLt_decomposition ( std::string & error_msg, { if (abs(M[i][j]) > val) { - val = abs(M[i][j]); + val = std::fabs(M[i][j]); } } } @@ -1437,9 +1437,9 @@ bool NOMAD::DiagRegularization(double ** D, int n) { findmax = diag; } - if (fabs(diag) <= findsmall) + if (std::fabs(diag) <= findsmall) { - findsmall = fabs(diag); + findsmall = std::fabs(diag); } } k += s; diff --git a/src/Param/AllParameters.cpp b/src/Param/AllParameters.cpp index c695cbaf..30897d7b 100644 --- a/src/Param/AllParameters.cpp +++ b/src/Param/AllParameters.cpp @@ -273,9 +273,8 @@ bool NOMAD::AllParameters::mayUseSurrogate() const throw NOMAD::Exception(__FILE__,__LINE__,"Parameters are not checked"); } bool sortWithSurrogate = (_evaluatorControlParams->getAttributeValue("EVAL_QUEUE_SORT") == NOMAD::EvalSortType::SURROGATE); - bool vnsUseSurrogate = _runParams->getAttributeValue("VNS_MADS_SEARCH") && _runParams->getAttributeValue("VNS_MADS_SEARCH_WITH_SURROGATE"); - - + bool vnsUseSurrogate = _runParams->getAttributeValue("VNS_MADS_SEARCH_WITH_SURROGATE"); + return sortWithSurrogate || vnsUseSurrogate; } diff --git a/src/nomad_version.hpp b/src/nomad_version.hpp index a1edaab0..0c401f5b 100644 --- a/src/nomad_version.hpp +++ b/src/nomad_version.hpp @@ -51,4 +51,4 @@ #undef NOMAD_VERSION_NUMBER /// Define version number -#define NOMAD_VERSION_NUMBER "4.5.0" +#define NOMAD_VERSION_NUMBER "4.5.1"