Warning: SystemRequirements specified C++11: support has been removed * installing *source* package ‘parglm’ ... ** this is package ‘parglm’ version ‘0.1.7’ ** package ‘parglm’ successfully unpacked and MD5 sums checked ** using staged installation ** libs specified C++11 using C++ compiler: ‘Apple clang version 17.0.0 (clang-1700.6.3.2)’ using SDK: ‘MacOSX26.2.sdk’ clang++ -mmacos-version-min=26 -std=gnu++20 -I"/Users/ripley/R/cxx20/include" -DNDEBUG -DUSE_FC_LEN_T -I'/Users/ripley/R/Library/Rcpp/include' -I'/Users/ripley/R/Library/RcppArmadillo/include' -isystem /opt/R/arm64/include -fPIC -g -O2 -Wall -pedantic -Wconversion -Wno-sign-conversion -c LAPACK_wrappers.cpp -o LAPACK_wrappers.o In file included from LAPACK_wrappers.cpp:1: In file included from ./LAPACK_wrappers.h:5: In file included from ./arma_n_rcpp.h:15: In file included from /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo.h:40: /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo/interface/RcppArmadilloSugar.h:45:17: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'typename storage_type<13>::type' (aka 'int') [-Wshorten-64-to-32] 45 | j[ie] = cp; | ~ ^~ In file included from LAPACK_wrappers.cpp:1: ./LAPACK_wrappers.h:69:3: warning: all paths through this function will call itself [-Winfinite-recursion] 69 | { | ^ ./LAPACK_wrappers.h:97:45: warning: implicit conversion loses integer precision: 'const size_t' (aka 'const unsigned long') to 'int' [-Wshorten-64-to-32] 97 | alloc_mem(new double[get_qr_mem_size(M, N)]) { } | ~~~~~~~~~~~~~~~ ^ ./LAPACK_wrappers.h:97:42: warning: implicit conversion loses integer precision: 'const size_t' (aka 'const unsigned long') to 'int' [-Wshorten-64-to-32] 97 | alloc_mem(new double[get_qr_mem_size(M, N)]) { } | ~~~~~~~~~~~~~~~ ^ LAPACK_wrappers.cpp:19:14: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32] 19 | lwork = get_qr_tmp_mem_size(M, N); | ~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~ LAPACK_wrappers.cpp:36:14: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32] 36 | lwork = get_qr_tmp_mem_size(M, N); | ~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~ 6 warnings generated. clang++ -mmacos-version-min=26 -std=gnu++20 -I"/Users/ripley/R/cxx20/include" -DNDEBUG -DUSE_FC_LEN_T -I'/Users/ripley/R/Library/Rcpp/include' -I'/Users/ripley/R/Library/RcppArmadillo/include' -isystem /opt/R/arm64/include -fPIC -g -O2 -Wall -pedantic -Wconversion -Wno-sign-conversion -c R_BLAS_LAPACK.cpp -o R_BLAS_LAPACK.o clang++ -mmacos-version-min=26 -std=gnu++20 -I"/Users/ripley/R/cxx20/include" -DNDEBUG -DUSE_FC_LEN_T -I'/Users/ripley/R/Library/Rcpp/include' -I'/Users/ripley/R/Library/RcppArmadillo/include' -isystem /opt/R/arm64/include -fPIC -g -O2 -Wall -pedantic -Wconversion -Wno-sign-conversion -c RcppExports.cpp -o RcppExports.o In file included from RcppExports.cpp:4: In file included from /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo.h:40: /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo/interface/RcppArmadilloSugar.h:45:17: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'typename storage_type<13>::type' (aka 'int') [-Wshorten-64-to-32] 45 | j[ie] = cp; | ~ ^~ In file included from RcppExports.cpp:4: In file included from /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo.h:39: /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo/interface/RcppArmadilloAs.h:613:94: warning: implicit conversion loses integer precision: 'R_xlen_t' (aka 'long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 613 | ArmaVec_InputParameter( SEXP x_ ) : v(x_), vec( reinterpret_cast( v.begin() ), v.size(), false ){} | ~~~ ~~^~~~~~ /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo/interface/RcppArmadilloAs.h:648:5: note: in instantiation of member function 'Rcpp::ArmaVec_InputParameter, arma::Col &>::ArmaVec_InputParameter' requested here 648 | MAKE_INPUT_PARAMETER(ReferenceInputParameter , arma::Col, arma::Col& ) | ^ /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo/interface/RcppArmadilloAs.h:644:27: note: expanded from macro 'MAKE_INPUT_PARAMETER' 644 | INPUT_TYPE( SEXP x) : ArmaVec_InputParameter(x){} \ | ^ RcppExports.cpp:21:55: note: in instantiation of member function 'Rcpp::ReferenceInputParameter>::ReferenceInputParameter' requested here 21 | Rcpp::traits::input_parameter< arma::vec& >::type y(ySEXP); | ^ In file included from RcppExports.cpp:4: In file included from /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo.h:32: In file included from /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo/interface/RcppArmadilloForward.h:26: In file included from /Users/ripley/R/Library/Rcpp/include/RcppCommon.h:170: /Users/ripley/R/Library/Rcpp/include/Rcpp/internal/export.h:112:9: warning: implicit conversion loses integer precision: 'R_xlen_t' (aka 'long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 112 | res[i] = start[i] ; | ~~~ ^ /Users/ripley/R/Library/Rcpp/include/Rcpp/internal/export.h:130:4: note: in instantiation of function template specialization 'Rcpp::internal::export_indexing__impl, double>' requested here 130 | export_indexing__impl( | ^ /Users/ripley/R/Library/Rcpp/include/Rcpp/internal/export.h:153:4: note: in instantiation of function template specialization 'Rcpp::internal::export_indexing__dispatch, double>' requested here 153 | export_indexing__dispatch( | ^ /Users/ripley/R/Library/Rcpp/include/Rcpp/internal/Exporter.h:64:35: note: in instantiation of function template specialization 'Rcpp::internal::export_indexing, double>' requested here 64 | ::Rcpp::internal::export_indexing( object, result ) ; | ^ /Users/ripley/R/Library/Rcpp/include/Rcpp/as.h:89:29: note: in instantiation of member function 'Rcpp::traits::IndexingExporter, double>::get' requested here 89 | return exporter.get(); | ^ /Users/ripley/R/Library/Rcpp/include/Rcpp/as.h:152:26: note: in instantiation of function template specialization 'Rcpp::internal::as>' requested here 152 | return internal::as(x, typename traits::r_type_traits::r_category()); | ^ /Users/ripley/R/Library/Rcpp/include/Rcpp/InputParameter.h:34:38: note: in instantiation of function template specialization 'Rcpp::as>' requested here 34 | inline operator T() { return as(x) ; } | ^ RcppExports.cpp:46:61: note: in instantiation of member function 'Rcpp::InputParameter>::operator Col' requested here 46 | rcpp_result_gen = Rcpp::wrap(parallelglm(X, Ys, family, start, weights, offsets, tol, nthreads, it_max, trace, method, block_size, use_start)); | ^ 3 warnings generated. clang++ -mmacos-version-min=26 -std=gnu++20 -I"/Users/ripley/R/cxx20/include" -DNDEBUG -DUSE_FC_LEN_T -I'/Users/ripley/R/Library/Rcpp/include' -I'/Users/ripley/R/Library/RcppArmadillo/include' -isystem /opt/R/arm64/include -fPIC -g -O2 -Wall -pedantic -Wconversion -Wno-sign-conversion -c family.cpp -o family.o In file included from family.cpp:1: In file included from ./family.h:3: In file included from ./arma_n_rcpp.h:15: In file included from /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo.h:40: /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo/interface/RcppArmadilloSugar.h:45:17: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'typename storage_type<13>::type' (aka 'int') [-Wshorten-64-to-32] 45 | j[ie] = cp; | ~ ^~ 1 warning generated. clang++ -mmacos-version-min=26 -std=gnu++20 -I"/Users/ripley/R/cxx20/include" -DNDEBUG -DUSE_FC_LEN_T -I'/Users/ripley/R/Library/Rcpp/include' -I'/Users/ripley/R/Library/RcppArmadillo/include' -isystem /opt/R/arm64/include -fPIC -g -O2 -Wall -pedantic -Wconversion -Wno-sign-conversion -c parallel_glm.cpp -o parallel_glm.o In file included from parallel_glm.cpp:1: In file included from ./arma_n_rcpp.h:15: In file included from /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo.h:40: /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo/interface/RcppArmadilloSugar.h:45:17: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'typename storage_type<13>::type' (aka 'int') [-Wshorten-64-to-32] 45 | j[ie] = cp; | ~ ^~ In file included from parallel_glm.cpp:2: ./thread_pool.h:212:24: error: no template named 'result_of' in namespace 'std'; did you mean 'Rcpp::traits::result_of'? 212 | std::future::type> | ^~~~~~~~~~~~~~ | Rcpp::traits::result_of /Users/ripley/R/Library/Rcpp/include/Rcpp/traits/result_of.h:31:8: note: 'Rcpp::traits::result_of' declared here 31 | struct result_of{ | ^ In file included from parallel_glm.cpp:2: ./thread_pool.h:215:22: error: no template named 'result_of' in namespace 'std'; did you mean 'Rcpp::traits::result_of'? 215 | typedef typename std::result_of::type result_type; | ^~~~~~~~~~~~~~ | Rcpp::traits::result_of /Users/ripley/R/Library/Rcpp/include/Rcpp/traits/result_of.h:31:8: note: 'Rcpp::traits::result_of' declared here 31 | struct result_of{ | ^ parallel_glm.cpp:46:16: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'const arma::uword' (aka 'const unsigned int') [-Wshorten-64-to-32] 46 | block_size(floor_mult(b_size, cacheline_size() / sizeof(double))) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ parallel_glm.cpp:171:11: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 171 | z[i] = (eta[i] - offset[i]) + (y[i] - mu[i]) / mu_eta_val[i]; | ~ ^ parallel_glm.cpp:171:67: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 171 | z[i] = (eta[i] - offset[i]) + (y[i] - mu[i]) / mu_eta_val[i]; | ~~~~~~~~~~ ^ parallel_glm.cpp:171:50: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 171 | z[i] = (eta[i] - offset[i]) + (y[i] - mu[i]) / mu_eta_val[i]; | ~~ ^ parallel_glm.cpp:171:42: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 171 | z[i] = (eta[i] - offset[i]) + (y[i] - mu[i]) / mu_eta_val[i]; | ~ ^ parallel_glm.cpp:171:33: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 171 | z[i] = (eta[i] - offset[i]) + (y[i] - mu[i]) / mu_eta_val[i]; | ~~~~~~ ^ parallel_glm.cpp:171:21: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 171 | z[i] = (eta[i] - offset[i]) + (y[i] - mu[i]) / mu_eta_val[i]; | ~~~ ^ parallel_glm.cpp:172:11: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 172 | w[i] = std::sqrt(weight[i] * mu_eta_val[i] * mu_eta_val[i] / var[i]); | ~ ^ parallel_glm.cpp:172:74: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 172 | w[i] = std::sqrt(weight[i] * mu_eta_val[i] * mu_eta_val[i] / var[i]); | ~~~ ^ parallel_glm.cpp:172:65: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 172 | w[i] = std::sqrt(weight[i] * mu_eta_val[i] * mu_eta_val[i] / var[i]); | ~~~~~~~~~~ ^ parallel_glm.cpp:172:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 172 | w[i] = std::sqrt(weight[i] * mu_eta_val[i] * mu_eta_val[i] / var[i]); | ~~~~~~~~~~ ^ parallel_glm.cpp:172:33: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 172 | w[i] = std::sqrt(weight[i] * mu_eta_val[i] * mu_eta_val[i] / var[i]); | ~~~~~~ ^ parallel_glm.cpp:174:48: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 174 | bool is_good = w[i] > 0 and mu_eta_val[i] != 0.; | ~~~~~~~~~~ ^ parallel_glm.cpp:174:26: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 174 | bool is_good = w[i] > 0 and mu_eta_val[i] != 0.; | ~ ^ parallel_glm.cpp:178:11: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uword' (aka 'unsigned int') [-Wshorten-64-to-32] 178 | w[i] = 0.; | ~ ^ In file included from parallel_glm.cpp:1: In file included from ./arma_n_rcpp.h:15: In file included from /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo.h:32: In file included from /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo/interface/RcppArmadilloForward.h:26: In file included from /Users/ripley/R/Library/Rcpp/include/RcppCommon.h:161: In file included from /Users/ripley/R/Library/Rcpp/include/Rcpp/traits/traits.h:75: /Users/ripley/R/Library/Rcpp/include/Rcpp/traits/result_of.h:43:22: error: type 'parallelglm_class_QR::worker ()' cannot be used prior to '::' because it has no members 43 | typedef typename T::result_type type ; | ^ ./thread_pool.h:212:29: note: in instantiation of template class 'Rcpp::traits::result_of' requested here 212 | std::future::type> | ^ parallel_glm.cpp:280:22: note: while substituting deduced template arguments into function template 'submit' [with FunctionType = worker] 280 | pool.th_pool.submit(worker( | ^ parallel_glm.cpp:280:22: error: no matching member function for call to 'submit' 280 | pool.th_pool.submit(worker( | ~~~~~~~~~~~~~^~~~~~ ./thread_pool.h:213:3: note: candidate template ignored: substitution failure [with FunctionType = worker] 213 | submit(FunctionType f) | ^ In file included from parallel_glm.cpp:1: In file included from ./arma_n_rcpp.h:15: In file included from /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo.h:32: In file included from /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo/interface/RcppArmadilloForward.h:26: In file included from /Users/ripley/R/Library/Rcpp/include/RcppCommon.h:161: In file included from /Users/ripley/R/Library/Rcpp/include/Rcpp/traits/traits.h:75: /Users/ripley/R/Library/Rcpp/include/Rcpp/traits/result_of.h:43:22: error: type 'parallelglm_class_QR::get_inner_worker ()' cannot be used prior to '::' because it has no members 43 | typedef typename T::result_type type ; | ^ ./thread_pool.h:212:29: note: in instantiation of template class 'Rcpp::traits::result_of' requested here 212 | std::future::type> | ^ parallel_glm.cpp:339:22: note: while substituting deduced template arguments into function template 'submit' [with FunctionType = get_inner_worker] 339 | pool.th_pool.submit(get_inner_worker( | ^ parallel_glm.cpp:339:22: error: no matching member function for call to 'submit' 339 | pool.th_pool.submit(get_inner_worker( | ~~~~~~~~~~~~~^~~~~~ ./thread_pool.h:213:3: note: candidate template ignored: substitution failure [with FunctionType = get_inner_worker] 213 | submit(FunctionType f) | ^ 16 warnings and 6 errors generated. make[1]: *** [parallel_glm.o] Error 1 clang++ -mmacos-version-min=26 -std=gnu++20 -I"/Users/ripley/R/cxx20/include" -DNDEBUG -DUSE_FC_LEN_T -I'/Users/ripley/R/Library/Rcpp/include' -I'/Users/ripley/R/Library/RcppArmadillo/include' -isystem /opt/R/arm64/include -fPIC -g -O2 -Wall -pedantic -Wconversion -Wno-sign-conversion -c parallel_qr.cpp -o parallel_qr.o In file included from parallel_qr.cpp:1: In file included from ./parallel_qr.h:4: In file included from ./arma_n_rcpp.h:15: In file included from /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo.h:40: /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo/interface/RcppArmadilloSugar.h:45:17: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'typename storage_type<13>::type' (aka 'int') [-Wshorten-64-to-32] 45 | j[ie] = cp; | ~ ^~ In file included from parallel_qr.cpp:1: In file included from ./parallel_qr.h:5: ./thread_pool.h:212:24: error: no template named 'result_of' in namespace 'std'; did you mean 'Rcpp::traits::result_of'? 212 | std::future::type> | ^~~~~~~~~~~~~~ | Rcpp::traits::result_of /Users/ripley/R/Library/Rcpp/include/Rcpp/traits/result_of.h:31:8: note: 'Rcpp::traits::result_of' declared here 31 | struct result_of{ | ^ In file included from parallel_qr.cpp:1: In file included from ./parallel_qr.h:5: ./thread_pool.h:215:22: error: no template named 'result_of' in namespace 'std'; did you mean 'Rcpp::traits::result_of'? 215 | typedef typename std::result_of::type result_type; | ^~~~~~~~~~~~~~ | Rcpp::traits::result_of /Users/ripley/R/Library/Rcpp/include/Rcpp/traits/result_of.h:31:8: note: 'Rcpp::traits::result_of' declared here 31 | struct result_of{ | ^ In file included from parallel_qr.cpp:2: ./LAPACK_wrappers.h:97:45: warning: implicit conversion loses integer precision: 'const size_t' (aka 'const unsigned long') to 'int' [-Wshorten-64-to-32] 97 | alloc_mem(new double[get_qr_mem_size(M, N)]) { } | ~~~~~~~~~~~~~~~ ^ ./LAPACK_wrappers.h:97:42: warning: implicit conversion loses integer precision: 'const size_t' (aka 'const unsigned long') to 'int' [-Wshorten-64-to-32] 97 | alloc_mem(new double[get_qr_mem_size(M, N)]) { } | ~~~~~~~~~~~~~~~ ^ parallel_qr.cpp:23:41: warning: implicit conversion loses integer precision: 'const size_t' (aka 'const unsigned long') to 'int' [-Wshorten-64-to-32] 23 | size_t m_dim = get_qr_mem_size(max_m, max_n); | ~~~~~~~~~~~~~~~ ^~~~~ parallel_qr.cpp:23:34: warning: implicit conversion loses integer precision: 'const size_t' (aka 'const unsigned long') to 'int' [-Wshorten-64-to-32] 23 | size_t m_dim = get_qr_mem_size(max_m, max_n); | ~~~~~~~~~~~~~~~ ^~~~~ In file included from parallel_qr.cpp:1: In file included from ./parallel_qr.h:4: In file included from ./arma_n_rcpp.h:15: In file included from /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo.h:32: In file included from /Users/ripley/R/Library/RcppArmadillo/include/RcppArmadillo/interface/RcppArmadilloForward.h:26: In file included from /Users/ripley/R/Library/Rcpp/include/RcppCommon.h:161: In file included from /Users/ripley/R/Library/Rcpp/include/Rcpp/traits/traits.h:75: /Users/ripley/R/Library/Rcpp/include/Rcpp/traits/result_of.h:43:22: error: type 'qr_parallel::worker ()' cannot be used prior to '::' because it has no members 43 | typedef typename T::result_type type ; | ^ ./thread_pool.h:212:29: note: in instantiation of template class 'Rcpp::traits::result_of' requested here 212 | std::future::type> | ^ parallel_qr.cpp:71:29: note: while substituting deduced template arguments into function template 'submit' [with FunctionType = worker] 71 | futures.push_back(th_pool.submit(worker(std::move(generator), th_pool))); | ^ parallel_qr.cpp:71:29: error: no matching member function for call to 'submit' 71 | futures.push_back(th_pool.submit(worker(std::move(generator), th_pool))); | ~~~~~~~~^~~~~~ ./thread_pool.h:213:3: note: candidate template ignored: substitution failure [with FunctionType = worker] 213 | submit(FunctionType f) | ^ parallel_qr.cpp:84:36: warning: implicit conversion loses integer precision: 'size_type' (aka 'unsigned long') to 'arma::uword' (aka 'unsigned int') [-Wshorten-64-to-32] 84 | arma::uword num_blocks = futures.size(); | ~~~~~~~~~~ ~~~~~~~~^~~~~~ 6 warnings and 4 errors generated. make[1]: *** [parallel_qr.o] Error 1 clang++ -mmacos-version-min=26 -std=gnu++20 -I"/Users/ripley/R/cxx20/include" -DNDEBUG -DUSE_FC_LEN_T -I'/Users/ripley/R/Library/Rcpp/include' -I'/Users/ripley/R/Library/RcppArmadillo/include' -isystem /opt/R/arm64/include -fPIC -g -O2 -Wall -pedantic -Wconversion -Wno-sign-conversion -c thread_pool.cpp -o thread_pool.o In file included from thread_pool.cpp:1: ./thread_pool.h:212:29: error: no type named 'result_of' in namespace 'std' 212 | std::future::type> | ~~~~~~~~~~~~~~^~~~~~~~~ ./thread_pool.h:212:60: error: expected member name or ';' after declaration specifiers 212 | std::future::type> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ ./thread_pool.h:178:7: warning: class 'thread_pool' does not declare any constructor to initialize its non-modifiable members 178 | class thread_pool | ^ ./thread_pool.h:208:18: note: const member 'thread_count' will never be initialized 208 | unsigned const thread_count; | ^ ./thread_pool.h:208:18: warning: private field 'thread_count' is not used [-Wunused-private-field] 208 | unsigned const thread_count; | ^ 2 warnings and 2 errors generated. make[1]: *** [thread_pool.o] Error 1 make[1]: Target `all' not remade because of errors. ERROR: compilation failed for package ‘parglm’ * removing ‘/Users/ripley/R/packages/tests-CXX20/parglm.Rcheck/parglm’