Back to Using R 4.1.3 to BUILD/CHECK a small subset of 3.18 packages

This page was generated on 2024-03-08 16:41:47 -0500 (Fri, 08 Mar 2024).

HostnameOSArch (*)R versionInstalled pkgs
nebbiolo2Linux (Ubuntu 22.04.3 LTS)x86_644.1.3 (2022-03-10) -- "One Push-Up" 655
Click on any hostname to see more info about the system (e.g. compilers)      (*) as reported by 'uname -p', except on Windows and Mac OS X

Package 13/118HostnameOS / ArchINSTALLBUILDCHECKBUILD BIN
beachmat 2.18.1  (landing page)
Aaron Lun
Snapshot Date: 2024-03-08 15:25:35 -0500 (Fri, 08 Mar 2024)
git_url: https://git.bioconductor.org/packages/beachmat
git_branch: RELEASE_3_18
git_last_commit: 39ef12f
git_last_commit_date: 2024-01-22 13:40:03 -0500 (Mon, 22 Jan 2024)
nebbiolo2Linux (Ubuntu 22.04.3 LTS) / x86_64  OK    ERROR  skipped

BUILD results for beachmat on nebbiolo2


To the developers/maintainers of the beachmat package:
- Use the following Renviron settings to reproduce errors and warnings.
- If 'R CMD check' started to fail recently on the Linux builder(s) over a missing dependency, add the missing dependency to 'Suggests:' in your DESCRIPTION file. See Renviron.bioc for more information.

raw results


Summary

Package: beachmat
Version: 2.18.1
Command: /home/hpages/bbs-3.18-bioc-R41/R/bin/R CMD build --keep-empty-dirs --no-resave-data beachmat
StartedAt: 2024-03-08 15:41:31 -0500 (Fri, 08 Mar 2024)
EndedAt: 2024-03-08 15:47:58 -0500 (Fri, 08 Mar 2024)
EllapsedTime: 386.5 seconds
RetCode: 1
Status:   ERROR  
PackageFile: None
PackageFileSize: NA

Command output

##############################################################################
##############################################################################
###
### Running command:
###
###   /home/hpages/bbs-3.18-bioc-R41/R/bin/R CMD build --keep-empty-dirs --no-resave-data beachmat
###
##############################################################################
##############################################################################


* checking for file ‘beachmat/DESCRIPTION’ ... OK
* preparing ‘beachmat’:
* checking DESCRIPTION meta-information ... OK
* cleaning src
* installing the package to build vignettes
* creating vignettes ... ERROR
--- re-building ‘linking.Rmd’ using rmarkdown
Building shared library for Rcpp code chunk...
g++ -std=gnu++14 -I"/home/hpages/bbs-3.18-bioc-R41/R/include" -DNDEBUG   -I"/home/hpages/bbs-3.18-bioc-R41/R/site-library/Rcpp/include" -I"/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include" -I"/tmp/RtmpWh5mcr/sourceCpp-x86_64-pc-linux-gnu-1.0.12" -I/usr/local/include   -fpic  -g -O2  -Wall -c file154ae131d12088.cpp -o file154ae131d12088.o
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/parallelize.hpp:12,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:6,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/manticore/manticore.hpp: In member function ‘void manticore::Executor::finish_thread(bool)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/manticore/manticore.hpp:90:29: error: missing template arguments before ‘lck’
   90 |             std::lock_guard lck(run_lock);
      |                             ^~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/manticore/manticore.hpp: In member function ‘void manticore::Executor::run(Function_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/manticore/manticore.hpp:123:26: error: missing template arguments before ‘lk’
  123 |         std::unique_lock lk(run_lock);
      |                          ^~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/manticore/manticore.hpp:124:17: error: ‘lk’ was not declared in this scope
  124 |         cv.wait(lk, [&]{ return status == Status::FREE; });
      |                 ^~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/manticore/manticore.hpp: In member function ‘void manticore::Executor::listen()’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/manticore/manticore.hpp:159:30: error: missing template arguments before ‘lk’
  159 |             std::unique_lock lk(run_lock);
      |                              ^~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/manticore/manticore.hpp:161:21: error: ‘lk’ was not declared in this scope
  161 |             cv.wait(lk, [&]{ return status == Status::PRIMED || done(); });
      |                     ^~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/../base/Matrix.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/VirtualDenseMatrix.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/../base/Extractor.hpp: In function ‘Index_ tatami::extracted_length(tatami::ConditionalSelectionExtractor<selection_, Index_>&)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/../base/Extractor.hpp:138:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  138 |     if constexpr(selection_ == DimensionSelectionType::FULL) {
      |        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/../base/Extractor.hpp:140:15: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  140 |     } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |               ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/VirtualDenseMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/../base/utils.hpp: In function ‘auto tatami::new_extractor(const tatami::Matrix<Value_, Index_>*, Args_&& ...)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/../base/utils.hpp:42:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   42 |     if constexpr(sparse_) {
      |        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/../base/utils.hpp:43:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   43 |         if constexpr(row_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/../base/utils.hpp:49:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   49 |         if constexpr(row_) {
      |            ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/VirtualDenseMatrix.hpp: In constructor ‘tatami::VirtualDenseMatrix<Value_, Index_>::SparseWrapper<selection_>::SparseWrapper(std::unique_ptr<typename std::conditional<false, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type>, bool, bool)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/VirtualDenseMatrix.hpp:50:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   50 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/VirtualDenseMatrix.hpp:52:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   52 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/VirtualDenseMatrix.hpp:55:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   55 |             } else if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/VirtualDenseMatrix.hpp: In member function ‘const Index_* tatami::VirtualDenseMatrix<Value_, Index_>::SparseWrapper<selection_>::index_start() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/VirtualDenseMatrix.hpp:62:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   62 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/VirtualDenseMatrix.hpp: In member function ‘tatami::SparseRange<Value_, Index_> tatami::VirtualDenseMatrix<Value_, Index_>::SparseWrapper<selection_>::fetch(Index_, Value_*, Index_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/VirtualDenseMatrix.hpp:77:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   77 |                 if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/VirtualDenseMatrix.hpp:79:27: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   79 |                 } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                           ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp: In constructor ‘tatami::DenseMatrix<row_, Value_, Index_, Storage_>::DenseBase<accrow_, selection_>::DenseBase(const tatami::DenseMatrix<row_, Value_, Index_, Storage_>*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp:89:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   89 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp: In constructor ‘tatami::DenseMatrix<row_, Value_, Index_, Storage_>::DenseBase<accrow_, selection_>::DenseBase(const tatami::DenseMatrix<row_, Value_, Index_, Storage_>*, Index_, Index_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp:95:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   95 |             if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp: In constructor ‘tatami::DenseMatrix<row_, Value_, Index_, Storage_>::DenseBase<accrow_, selection_>::DenseBase(const tatami::DenseMatrix<row_, Value_, Index_, Storage_>*, std::vector<Index_>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp:102:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  102 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp: In member function ‘const Index_* tatami::DenseMatrix<row_, Value_, Index_, Storage_>::DenseBase<accrow_, selection_>::index_start() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp:110:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  110 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp: In member function ‘const Value_* tatami::DenseMatrix<row_, Value_, Index_, Storage_>::DenseBase<accrow_, selection_>::fetch(Index_, Value_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp:123:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  123 |             if constexpr(row_ == accrow_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp:124:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  124 |                 if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp:126:27: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  126 |                 } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                           ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp:132:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  132 |                 if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp:134:27: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  134 |                 } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                           ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp: In member function ‘size_t tatami::DenseMatrix<row_, Value_, Index_, Storage_>::other_dimension() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp:151:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  151 |         if constexpr(row_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp: In member function ‘const Value_* tatami::DenseMatrix<row_, Value_, Index_, Storage_>::primary(Index_, Value_*, Index_, Index_) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/dense/DenseMatrix.hpp:161:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  161 |         if constexpr(has_data<Value_, Storage_>::value) {
      |            ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/primary_extraction.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:6,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:6,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/utils.hpp: In function ‘const auto& tatami::sparse_utils::get_indices(const IndexStorage_&, Index_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/utils.hpp:27:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   27 |     if constexpr(is_fragmented<PointerStorage_>()) {
      |        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/utils.hpp: In function ‘auto tatami::sparse_utils::get_upper_limit(const IndexStorage_&, const PointerStorage_&, Index_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/utils.hpp:36:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   36 |     if constexpr(is_fragmented<PointerStorage_>()) {
      |        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/utils.hpp: In function ‘auto tatami::sparse_utils::get_lower_limit(const PointerStorage_&, Index_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/utils.hpp:47:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   47 |     if constexpr(is_fragmented<PointerStorage_>()) {
      |        ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:6,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:6,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/primary_extraction.hpp: In function ‘void tatami::sparse_utils::transplant_primary_values(const ValueStorage_&, const std::pair<long unsigned int, long unsigned int>&, tatami::SparseRange<Value_, Index_>&, Value_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/primary_extraction.hpp:71:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   71 |         if constexpr(has_data<Value_, ValueStorage_>::value) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/primary_extraction.hpp: In function ‘void tatami::sparse_utils::transplant_primary_indices(const IndexStorage_&, const std::pair<long unsigned int, long unsigned int>&, tatami::SparseRange<Value_, Index_>&, Index_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/primary_extraction.hpp:86:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   86 |         if constexpr(has_data<Index_, IndexStorage_>::value) {
      |            ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:7,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:6,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SparseSecondaryExtractorCore.hpp: In member function ‘bool tatami::SparseSecondaryExtractorCore<Index_, StoredIndex_, CustomPointer_, CustomPointerModifier_>::search_base(StoredIndex_, Index_, PrimaryFunction_, const IndexStorage_&, const PointerStorage_&, StoreFunction_, SkipFunction_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SparseSecondaryExtractorCore.hpp:390:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  390 |                 if constexpr(std::is_signed<StoredIndex_>::value) {
      |                    ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:6,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp: In constructor ‘tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>::CompressedSparseMatrix(Index_, Index_, ValueStorage_, IndexStorage_, PointerStorage_, bool)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:76:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   76 |             if constexpr(row_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:104:28: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  104 |                         if constexpr(row_) {
      |                            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:114:28: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  114 |                         if constexpr(row_) {
      |                            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp: In constructor ‘tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>::CompressedExtractorBase<accrow_, selection_, sparse_>::CompressedExtractorBase(const tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>*, const tatami::Options&)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:161:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  161 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp: In constructor ‘tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>::CompressedExtractorBase<accrow_, selection_, sparse_>::CompressedExtractorBase(const tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>*, const tatami::Options&, Index_, Index_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:167:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  167 |             if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp: In constructor ‘tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>::CompressedExtractorBase<accrow_, selection_, sparse_>::CompressedExtractorBase(const tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>*, const tatami::Options&, std::vector<Index_>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:174:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  174 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp: In member function ‘const Index_* tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>::CompressedExtractorBase<accrow_, selection_, sparse_>::index_start() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:182:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  182 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp: In constructor ‘tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>::PrimaryExtractorBase<selection_, sparse_>::PrimaryExtractorBase(const tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>*, const tatami::Options&, Args_&& ...)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:210:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  210 |             if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:213:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  213 |             } else if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:220:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  220 |                 if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:222:27: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  222 |                 } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                           ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp: In member function ‘const Value_* tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>::DensePrimaryExtractor<selection_>::fetch(Index_, Value_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:245:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  245 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:249:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  249 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp: In member function ‘tatami::SparseRange<Value_, Index_> tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>::SparsePrimaryExtractor<selection_>::fetch(Index_, Value_*, Index_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:277:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  277 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:284:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  284 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp: In constructor ‘tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>::SecondaryExtractorBase<selection_, sparse_>::SecondaryExtractorBase(const tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>*, const tatami::Options&, Args_&& ...)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:363:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  363 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:365:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  365 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp: In member function ‘const Value_* tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>::DenseSecondaryExtractor<selection_>::fetch(Index_, Value_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:457:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  457 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:460:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  460 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp: In member function ‘tatami::SparseRange<Value_, Index_> tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>::SparseSecondaryExtractor<selection_>::fetch(Index_, Value_*, Index_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:485:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  485 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:487:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  487 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type> tatami::CompressedSparseMatrix<row_, Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_>::populate(const tatami::Options&, Args_&& ...) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:505:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  505 |         if constexpr(accrow_ == row_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:506:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  506 |             if constexpr(sparse_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/CompressedSparseMatrix.hpp:512:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  512 |             if constexpr(sparse_) {
      |                ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:7,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp: In constructor ‘tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>::SemiCompressedSparseMatrix(Index_, Index_, IndexStorage_, PointerStorage_, bool)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:98:28: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   98 |                         if constexpr(row_) {
      |                            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp: In constructor ‘tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>::SemiCompressedExtractorBase<accrow_, selection_, sparse_>::SemiCompressedExtractorBase(const tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>*, const tatami::Options&)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:148:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  148 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp: In constructor ‘tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>::SemiCompressedExtractorBase<accrow_, selection_, sparse_>::SemiCompressedExtractorBase(const tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>*, const tatami::Options&, Index_, Index_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:154:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  154 |             if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp: In constructor ‘tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>::SemiCompressedExtractorBase<accrow_, selection_, sparse_>::SemiCompressedExtractorBase(const tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>*, const tatami::Options&, std::vector<Index_>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:161:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  161 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp: In member function ‘const Index_* tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>::SemiCompressedExtractorBase<accrow_, selection_, sparse_>::index_start() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:169:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  169 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp: In constructor ‘tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>::PrimaryExtractorBase<selection_, sparse_>::PrimaryExtractorBase(const tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>*, const tatami::Options&, Args_&& ...)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:219:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  219 |             if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:222:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  222 |             } else if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp: In member function ‘const Value_* tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>::DensePrimaryExtractor<selection_>::fetch(Index_, Value_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:355:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  355 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:357:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  357 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp: In member function ‘tatami::SparseRange<Value_, Index_> tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>::SparsePrimaryExtractor<selection_>::fetch(Index_, Value_*, Index_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:420:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  420 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:422:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  422 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp: In constructor ‘tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>::SecondaryExtractorBase<selection_, sparse_>::SecondaryExtractorBase(const tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>*, const tatami::Options&, Args_&& ...)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:550:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  550 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:552:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  552 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp: In member function ‘const Value_* tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>::DenseSecondaryExtractor<selection_>::fetch(Index_, Value_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:647:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  647 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:651:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  651 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp: In member function ‘tatami::SparseRange<Value_, Index_> tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>::SparseSecondaryExtractor<selection_>::fetch(Index_, Value_*, Index_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:683:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  683 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:685:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  685 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type> tatami::SemiCompressedSparseMatrix<row_, Value_, Index_, IndexStorage_, PointerStorage_>::populate(const tatami::Options&, Args_&& ...) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:703:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  703 |         if constexpr(accrow_ == row_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:704:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  704 |             if constexpr(sparse_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/SemiCompressedSparseMatrix.hpp:710:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  710 |             if constexpr(sparse_) {
      |                ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:8,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp: In constructor ‘tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>::FragmentedSparseMatrix(Index_, Index_, ValueVectorStorage_, IndexVectorStorage_, bool)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:96:28: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   96 |                         if constexpr(row_) {
      |                            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp: In constructor ‘tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>::FragmentedExtractorBase<accrow_, selection_, sparse_>::FragmentedExtractorBase(const tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>*, const tatami::Options&)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:148:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  148 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp: In constructor ‘tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>::FragmentedExtractorBase<accrow_, selection_, sparse_>::FragmentedExtractorBase(const tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>*, const tatami::Options&, Index_, Index_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:154:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  154 |             if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp: In constructor ‘tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>::FragmentedExtractorBase<accrow_, selection_, sparse_>::FragmentedExtractorBase(const tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>*, const tatami::Options&, std::vector<Index_>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:161:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  161 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp: In member function ‘const Index_* tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>::FragmentedExtractorBase<accrow_, selection_, sparse_>::index_start() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:169:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  169 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp: In constructor ‘tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>::PrimaryExtractorBase<selection_, sparse_>::PrimaryExtractorBase(const tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>*, const tatami::Options&, Args_&& ...)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:199:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  199 |             if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:202:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  202 |             } else if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:209:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  209 |                 if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:211:27: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  211 |                 } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                           ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp: In member function ‘const Value_* tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>::DensePrimaryExtractor<selection_>::fetch(Index_, Value_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:234:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  234 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:238:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  238 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp: In member function ‘tatami::SparseRange<Value_, Index_> tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>::SparsePrimaryExtractor<selection_>::fetch(Index_, Value_*, Index_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:265:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  265 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:272:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  272 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp: In constructor ‘tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>::SecondaryExtractorBase<selection_, sparse_>::SecondaryExtractorBase(const tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>*, const tatami::Options&, Args_&& ...)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:350:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  350 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:352:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  352 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp: In member function ‘const Value_* tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>::DenseSecondaryExtractor<selection_>::fetch(Index_, Value_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:448:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  448 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:451:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  451 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp: In member function ‘tatami::SparseRange<Value_, Index_> tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>::SparseSecondaryExtractor<selection_>::fetch(Index_, Value_*, Index_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:505:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  505 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:507:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  507 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type> tatami::FragmentedSparseMatrix<row_, Value_, Index_, ValueVectorStorage_, IndexVectorStorage_>::populate(const tatami::Options&, Args_&& ...) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:525:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  525 |         if constexpr(accrow_ == row_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:526:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  526 |             if constexpr(sparse_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/FragmentedSparseMatrix.hpp:532:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  532 |             if constexpr(sparse_) {
      |                ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/convert_to_fragmented_sparse.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/convert_to_compressed_sparse.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:9,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/../stats/utils.hpp: In function ‘void tatami::parallelize(Function_, Index_, size_t)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/sparse/../stats/utils.hpp:55:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   55 |     if constexpr(parallel_) {
      |        ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:12,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp: In member function ‘bool tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>::sparse() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:90:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   90 |         if constexpr(Operation_::always_sparse) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:92:19: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   92 |         } else if constexpr(!Operation_::always_dense) {
      |                   ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp: In member function ‘double tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>::sparse_proportion() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:101:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  101 |         if constexpr(Operation_::always_sparse) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:103:19: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  103 |         } else if constexpr(!Operation_::always_dense) {
      |                   ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp: In constructor ‘tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>::IsometricExtractorBase<selection_, sparse_, inner_sparse_>::IsometricExtractorBase(const tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>*, std::unique_ptr<typename std::conditional<inner_sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:135:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  135 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:137:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  137 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp: In member function ‘const Index_* tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>::IsometricExtractorBase<selection_, sparse_, inner_sparse_>::index_start() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:146:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  146 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp: In member function ‘const Value_* tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>::DenseIsometricExtractor_Basic<accrow_, selection_>::fetch(Index_, Value_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:186:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  186 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:188:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  188 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp: In constructor ‘tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>::DenseIsometricExtractor_FromSparse<accrow_, selection_>::DenseIsometricExtractor_FromSparse(const tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>*, tatami::Options, Args_&& ...)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:235:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  235 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp: In lambda function:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:252:24: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  252 |                     if constexpr(Operation_::always_sparse) {
      |                        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:254:31: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  254 |                     } else if constexpr(Operation_::always_dense) {
      |                               ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp: In member function ‘const Value_* tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>::DenseIsometricExtractor_FromSparse<accrow_, selection_>::fetch(Index_, Value_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:264:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  264 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:268:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  268 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp: In static member function ‘static void tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>::fill_dense_indices(const Extractor_&, Index_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:294:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  294 |         if constexpr(selection_ == DimensionSelectionType::FULL) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:296:19: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  296 |         } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                   ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp: In member function ‘tatami::SparseRange<Value_, Index_> tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>::SparseIsometricExtractor_FromDense<accrow_, selection_>::fetch(Index_, Value_*, Index_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:328:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  328 |                 if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:330:27: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  330 |                 } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                           ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp: In constructor ‘tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>::SparseIsometricExtractor_ForcedDense<accrow_, selection_>::SparseIsometricExtractor_ForcedDense(const tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>*, tatami::Options, Args_&& ...)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:470:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  470 |                 if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp: In lambda function:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:494:28: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  494 |                         if constexpr(Operation_::always_sparse) {
      |                            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp: In member function ‘tatami::SparseRange<Value_, Index_> tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>::SparseIsometricExtractor_ForcedDense<accrow_, selection_>::fetch(Index_, Value_*, Index_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:502:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  502 |                 if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:506:27: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  506 |                 } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                           ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp: In member function ‘bool tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>::preserves_sparsity() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:540:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  540 |         if constexpr(Operation_::always_sparse) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:542:19: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  542 |         } else if constexpr(!Operation_::always_dense) {
      |                   ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type> tatami::DelayedUnaryIsometricOp<Value_, Index_, Operation_>::propagate(const tatami::Options&, Args_&& ...) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:552:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  552 |         if constexpr(!sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:561:24: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  561 |                     if constexpr(accrow_ && !Operation_::needs_column) {      // constant sparsity breaking
      |                        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:563:31: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  563 |                     } else if constexpr(!accrow_ && !Operation_::needs_row) { // constant sparsity breaking
      |                               ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:577:24: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  577 |                     if constexpr(accrow_ && !Operation_::needs_column) {      // no need for column indices
      |                        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:579:31: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  579 |                     } else if constexpr(!accrow_ && !Operation_::needs_row) { // no need for row indices
      |                               ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:586:24: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  586 |                     if constexpr(accrow_ && !Operation_::needs_column) {      // constant sparsity breaking
      |                        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:588:31: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  588 |                     } else if constexpr(!accrow_ && !Operation_::needs_row) { // constant sparsity breaking
      |                               ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:693,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:12,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../arith_utils.hpp: In function ‘void tatami::delayed_arith_run(Value_&, Scalar_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../arith_utils.hpp:32:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   32 |     if constexpr(op_ == DelayedArithOp::ADD) {
      |        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../arith_utils.hpp:34:15: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   34 |     } else if constexpr(op_ == DelayedArithOp::MULTIPLY) {
      |               ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../arith_utils.hpp:36:15: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   36 |     } else if constexpr(op_ == DelayedArithOp::SUBTRACT) {
      |               ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../arith_utils.hpp:37:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   37 |         if constexpr(right_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../arith_utils.hpp:42:15: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   42 |     } else if constexpr(op_ == DelayedArithOp::DIVIDE) {
      |               ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../arith_utils.hpp:48:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   48 |         if constexpr(right_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../arith_utils.hpp:53:15: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   53 |     } else if constexpr(op_ == DelayedArithOp::POWER) {
      |               ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../arith_utils.hpp:54:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   54 |         if constexpr(right_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../arith_utils.hpp:59:15: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   59 |     } else if constexpr(op_ == DelayedArithOp::MODULO) {
      |               ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../arith_utils.hpp:60:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   60 |         if constexpr(right_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../arith_utils.hpp:65:15: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   65 |     } else if constexpr(op_ == DelayedArithOp::INTEGER_DIVIDE) {
      |               ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../arith_utils.hpp:66:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   66 |         if constexpr(right_) {
      |            ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:693,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:12,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp: In function ‘bool tatami::delayed_arith_actual_sparse(Scalar_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp:35:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   35 |     if constexpr(delayed_arith_unsupported_division_by_zero<op_, right_, Value_, Scalar_>()) {
      |        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp: In function ‘Value_ tatami::delayed_arith_zero(Scalar_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp:52:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   52 |     if constexpr(delayed_arith_unsupported_division_by_zero<op_, right_, Value_, Scalar_>()) {
      |        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp: In function ‘constexpr bool tatami::delayed_arith_always_dense()’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp:66:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   66 |     if constexpr(!right_) {
      |        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp:67:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   67 |         if constexpr(op_ == DelayedArithOp::DIVIDE) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp:69:19: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   69 |         } else if constexpr(op_ == DelayedArithOp::POWER) {
      |                   ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp:71:19: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   71 |         } else if constexpr(op_ == DelayedArithOp::MODULO) {
      |                   ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp:73:19: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   73 |         } else if constexpr(op_ == DelayedArithOp::INTEGER_DIVIDE) {
      |                   ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp: In function ‘constexpr bool tatami::delayed_arith_always_sparse()’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp:84:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   84 |     if constexpr(op_ == DelayedArithOp::MULTIPLY &&
      |        ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:693,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:12,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp: In member function ‘void tatami::DelayedArithVectorHelper<op_, right_, margin_, Value_, Vector_>::dense(Index_, ExtractType_, Index_, Value_*) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp:224:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  224 |         if constexpr(accrow_ == (margin_ == 0)) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp:227:19: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  227 |         } else if constexpr(std::is_same<ExtractType_, Index_>::value) {
      |                   ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp: In member function ‘void tatami::DelayedArithVectorHelper<op_, right_, margin_, Value_, Vector_>::sparse(Index_, Index_, Value_*, const Index_*) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/arith_helpers.hpp:241:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  241 |         if constexpr(accrow_ == (margin_ == 0)) {
      |            ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/compare_helpers.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:697,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:12,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../compare_utils.hpp: In function ‘void tatami::delayed_compare_run(Value_&, Scalar_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../compare_utils.hpp:29:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   29 |     if constexpr(op_ == DelayedCompareOp::EQUAL) {
      |        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../compare_utils.hpp:31:15: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   31 |     } else if constexpr(op_ == DelayedCompareOp::GREATER_THAN) {
      |               ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../compare_utils.hpp:33:15: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   33 |     } else if constexpr(op_ == DelayedCompareOp::LESS_THAN) {
      |               ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../compare_utils.hpp:35:15: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   35 |     } else if constexpr(op_ == DelayedCompareOp::GREATER_THAN_OR_EQUAL) {
      |               ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../compare_utils.hpp:37:15: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   37 |     } else if constexpr(op_ == DelayedCompareOp::LESS_THAN_OR_EQUAL) {
      |               ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:697,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:12,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/compare_helpers.hpp: In member function ‘void tatami::DelayedCompareVectorHelper<op_, margin_, Value_, Vector_>::dense(Index_, ExtractType_, Index_, Value_*) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/compare_helpers.hpp:159:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  159 |         if constexpr(accrow_ == (margin_ == 0)) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/compare_helpers.hpp:162:19: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  162 |         } else if constexpr(std::is_same<ExtractType_, Index_>::value) {
      |                   ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/compare_helpers.hpp: In member function ‘void tatami::DelayedCompareVectorHelper<op_, margin_, Value_, Vector_>::sparse(Index_, Index_, Value_*, const Index_*) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/compare_helpers.hpp:176:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  176 |         if constexpr(accrow_ == (margin_ == 0)) {
      |            ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/boolean_helpers.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:699,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:12,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../boolean_utils.hpp: In function ‘void tatami::delayed_boolean_run(Value_&, bool)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../boolean_utils.hpp:27:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   27 |     if constexpr(op_ == DelayedBooleanOp::AND) {
      |        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../boolean_utils.hpp:29:15: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   29 |     } else if constexpr(op_ == DelayedBooleanOp::OR) {
      |               ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/../boolean_utils.hpp:31:15: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   31 |     } else if constexpr(op_ == DelayedBooleanOp::XOR) {
      |               ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/DelayedUnaryIsometricOp.hpp:699,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:12,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/boolean_helpers.hpp: In member function ‘void tatami::DelayedBooleanVectorHelper<op_, margin_, Value_, Vector_>::dense(Index_, ExtractType_, Index_, Value_*) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/boolean_helpers.hpp:212:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  212 |         if constexpr(accrow_ == (margin_ == 0)) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/boolean_helpers.hpp:215:19: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  215 |         } else if constexpr(std::is_same<ExtractType_, Index_>::value) {
      |                   ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/boolean_helpers.hpp: In member function ‘void tatami::DelayedBooleanVectorHelper<op_, margin_, Value_, Vector_>::sparse(Index_, Index_, Value_*, const Index_*) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/unary/boolean_helpers.hpp:229:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  229 |         if constexpr(accrow_ == (margin_ == 0)) {
      |            ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:13,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp: In member function ‘bool tatami::DelayedBinaryIsometricOp<Value_, Index_, Operation_>::sparse() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp:97:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   97 |         if constexpr(Operation_::always_sparse) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp: In member function ‘double tatami::DelayedBinaryIsometricOp<Value_, Index_, Operation_>::sparse_proportion() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp:104:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  104 |         if constexpr(Operation_::always_sparse) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp: In constructor ‘tatami::DelayedBinaryIsometricOp<Value_, Index_, Operation_>::IsometricExtractorBase<accrow_, selection_, sparse_, inner_sparse_>::IsometricExtractorBase(const tatami::DelayedBinaryIsometricOp<Value_, Index_, Operation_>*, std::unique_ptr<typename std::conditional<inner_sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type>, std::unique_ptr<typename std::conditional<inner_sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp:143:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  143 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp:145:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  145 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp: In member function ‘const Index_* tatami::DelayedBinaryIsometricOp<Value_, Index_, Operation_>::IsometricExtractorBase<accrow_, selection_, sparse_, inner_sparse_>::index_start() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp:154:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  154 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp: In member function ‘const Value_* tatami::DelayedBinaryIsometricOp<Value_, Index_, Operation_>::DenseIsometricExtractor<accrow_, selection_>::fetch(Index_, Value_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp:260:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  260 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp:262:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  262 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp: In member function ‘tatami::SparseRange<Value_, Index_> tatami::DelayedBinaryIsometricOp<Value_, Index_, Operation_>::DensifiedSparseIsometricExtractor<accrow_, selection_>::fetch(Index_, Value_*, Index_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp:362:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  362 |                 if constexpr(!Operation_::always_sparse) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp:363:24: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  363 |                     if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp:365:31: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  365 |                     } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                               ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp:376:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  376 |                 if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp:378:27: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  378 |                 } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                           ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type> tatami::DelayedBinaryIsometricOp<Value_, Index_, Operation_>::propagate(const tatami::Options&, Args_ ...) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp:405:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  405 |         if constexpr(!sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp:410:19: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  410 |         } else if constexpr(Operation_::always_sparse) {
      |                   ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/arith_helpers.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/DelayedBinaryIsometricOp.hpp:518,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:13,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/utils.hpp: In lambda function:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/utils.hpp:11:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   11 |         if constexpr(needs_value) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/utils.hpp:15:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   15 |         if constexpr(needs_index) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/utils.hpp: In lambda function:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/utils.hpp:23:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   23 |         if constexpr(needs_value) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/utils.hpp:27:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   27 |         if constexpr(needs_index) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/utils.hpp: In function ‘Index_ tatami::delayed_binary_isometric_sparse_operation(const tatami::SparseRange<Value_, Index_>&, const tatami::SparseRange<Value_, Index_>&, Value_*, Index_*, Function_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/utils.hpp:36:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   36 |             if constexpr(!must_have_both) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/utils.hpp:43:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   43 |             if constexpr(!must_have_both) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/utils.hpp:50:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   50 |             if constexpr(needs_value) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/utils.hpp:54:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   54 |             if constexpr(needs_index) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/isometric/binary/utils.hpp:63:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   63 |     if constexpr(!must_have_both) {
      |        ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:15,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp: In constructor ‘tatami::DelayedBind<margin_, Value_, Index_>::DelayedBind(std::vector<std::shared_ptr<const tatami::Matrix<Value_, Index_> > >)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:45:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   45 |             if constexpr(margin_==0) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp: In member function ‘Index_ tatami::DelayedBind<margin_, Value_, Index_>::internal_nrow() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:110:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  110 |         if constexpr(margin_==0) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp: In member function ‘Index_ tatami::DelayedBind<margin_, Value_, Index_>::internal_ncol() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:122:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  122 |         if constexpr(margin_==0) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp: In constructor ‘tatami::DelayedBind<margin_, Value_, Index_>::ParallelExtractor<selection_, sparse_>::ParallelExtractor(const tatami::DelayedBind<margin_, Value_, Index_>*, const tatami::Options&)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:181:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  181 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp: In constructor ‘tatami::DelayedBind<margin_, Value_, Index_>::ParallelExtractor<selection_, sparse_>::ParallelExtractor(const tatami::DelayedBind<margin_, Value_, Index_>*, const tatami::Options&, Index_, Index_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:194:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  194 |             if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:202:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  202 |                 if constexpr(sparse_) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:213:24: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  213 |                     if constexpr(sparse_) {
      |                        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp: In constructor ‘tatami::DelayedBind<margin_, Value_, Index_>::ParallelExtractor<selection_, sparse_>::ParallelExtractor(const tatami::DelayedBind<margin_, Value_, Index_>*, const tatami::Options&, std::vector<Index_>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:229:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  229 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:237:24: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  237 |                     if constexpr(sparse_) {
      |                        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:255:32: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  255 |                             if constexpr(sparse_) {
      |                                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp: In member function ‘const Index_* tatami::DelayedBind<margin_, Value_, Index_>::ParallelExtractor<selection_, sparse_>::index_start() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:276:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  276 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp: In member function ‘tatami::SparseRange<Value_, Index_> tatami::DelayedBind<margin_, Value_, Index_>::SparseParallelExtractor<selection_>::fetch(Index_, Value_*, Index_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:409:24: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  409 |                     if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp: In constructor ‘tatami::DelayedBind<margin_, Value_, Index_>::PerpendicularExtractor<selection_, sparse_>::PerpendicularExtractor(const tatami::DelayedBind<margin_, Value_, Index_>*, const tatami::Options&)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:453:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  453 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp: In constructor ‘tatami::DelayedBind<margin_, Value_, Index_>::PerpendicularExtractor<selection_, sparse_>::PerpendicularExtractor(const tatami::DelayedBind<margin_, Value_, Index_>*, const tatami::Options&, Index_, Index_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:465:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  465 |             if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp: In constructor ‘tatami::DelayedBind<margin_, Value_, Index_>::PerpendicularExtractor<selection_, sparse_>::PerpendicularExtractor(const tatami::DelayedBind<margin_, Value_, Index_>*, const tatami::Options&, std::vector<Index_>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:478:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  478 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type> tatami::DelayedBind<margin_, Value_, Index_>::populate(const tatami::Options&, Args_&& ...) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:655:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  655 |         if constexpr(sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:656:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  656 |             if constexpr(accrow_ == (margin_ == 0)) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedBind.hpp:662:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  662 |             if constexpr(accrow_ == (margin_ == 0)) {
      |                ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:16,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp: In constructor ‘tatami::DelayedCast<Value_out_, Index_out_, Value_in_, Index_in_>::CastExtractor<selection_, sparse_>::CastExtractor(std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_in_, Index_in_>, tatami::DenseExtractor<selection_, Value_in_, Index_in_> >::type>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:76:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   76 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:78:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   78 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:81:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   81 |             } else if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp: In constructor ‘tatami::DelayedCast<Value_out_, Index_out_, Value_in_, Index_in_>::CastExtractor<selection_, sparse_>::CastExtractor(std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_in_, Index_in_>, tatami::DenseExtractor<selection_, Value_in_, Index_in_> >::type>, std::vector<Index>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:87:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   87 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp: In member function ‘const Index_out_* tatami::DelayedCast<Value_out_, Index_out_, Value_in_, Index_in_>::CastExtractor<selection_, sparse_>::index_start() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:98:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   98 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:99:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   99 |                 if constexpr(same_Index_type_) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp: In constructor ‘tatami::DelayedCast<Value_out_, Index_out_, Value_in_, Index_in_>::DenseCastExtractor<selection_>::DenseCastExtractor(std::unique_ptr<typename std::conditional<false, tatami::SparseExtractor<selection_, Value_in_, Index_in_>, tatami::DenseExtractor<selection_, Value_in_, Index_in_> >::type>, Args_&& ...)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:134:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  134 |             if constexpr(!same_Value_type_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp: In member function ‘const Value_out_* tatami::DelayedCast<Value_out_, Index_out_, Value_in_, Index_in_>::DenseCastExtractor<selection_>::fetch(Index_out_, Value_out_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:140:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  140 |             if constexpr(same_Value_type_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp: In constructor ‘tatami::DelayedCast<Value_out_, Index_out_, Value_in_, Index_in_>::SparseCastExtractor<selection_>::SparseCastExtractor(std::unique_ptr<typename std::conditional<true, tatami::SparseExtractor<selection_, Value_in_, Index_in_>, tatami::DenseExtractor<selection_, Value_in_, Index_in_> >::type>, Args_&& ...)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:159:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  159 |             if constexpr(!same_Value_type_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:162:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  162 |             if constexpr(!same_Index_type_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp: In member function ‘tatami::SparseRange<Value_, Index_> tatami::DelayedCast<Value_out_, Index_out_, Value_in_, Index_in_>::SparseCastExtractor<selection_>::fetch(Index_out_, Value_out_*, Index_out_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:168:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  168 |             if constexpr(same_Value_type_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:169:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  169 |                 if constexpr(same_Index_type_) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:183:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  183 |                 if constexpr(same_Index_type_) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type> tatami::DelayedCast<Value_out_, Index_out_, Value_in_, Index_in_>::populate(const tatami::Options&) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:219:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  219 |         if constexpr(sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type> tatami::DelayedCast<Value_out_, Index_out_, Value_in_, Index_in_>::populate(const tatami::Options&, Index_out_, Index_out_) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:231:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  231 |         if constexpr(sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type> tatami::DelayedCast<Value_out_, Index_out_, Value_in_, Index_in_>::populate(const tatami::Options&, std::vector<Index>) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:243:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  243 |         if constexpr(!same_Index_type_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:246:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  246 |             if constexpr(sparse_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/other/DelayedCast.hpp:253:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  253 |             if constexpr(sparse_) {
      |                ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:19,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp: In member function ‘Index_ tatami::DelayedSubsetBlock<margin_, Value_, Index_>::nrow() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp:47:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   47 |         if constexpr(margin_==0) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp: In member function ‘Index_ tatami::DelayedSubsetBlock<margin_, Value_, Index_>::ncol() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp:55:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   55 |         if constexpr(margin_==0) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp: In static member function ‘static constexpr tatami::DimensionSelectionType tatami::DelayedSubsetBlock<margin_, Value_, Index_>::define_inner_selection_type()’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp:96:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   96 |         if constexpr(selection_ == DimensionSelectionType::FULL) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp: In constructor ‘tatami::DelayedSubsetBlock<margin_, Value_, Index_>::AlongExtractor<selection_, sparse_>::AlongExtractor(const tatami::DelayedSubsetBlock<margin_, Value_, Index_>*, const tatami::Options&)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp:106:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  106 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp: In constructor ‘tatami::DelayedSubsetBlock<margin_, Value_, Index_>::AlongExtractor<selection_, sparse_>::AlongExtractor(const tatami::DelayedSubsetBlock<margin_, Value_, Index_>*, const tatami::Options&, Index_, Index_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp:113:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  113 |             if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp: In constructor ‘tatami::DelayedSubsetBlock<margin_, Value_, Index_>::AlongExtractor<selection_, sparse_>::AlongExtractor(const tatami::DelayedSubsetBlock<margin_, Value_, Index_>*, const tatami::Options&, std::vector<Index_>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp:121:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  121 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp: In member function ‘const Index_* tatami::DelayedSubsetBlock<margin_, Value_, Index_>::AlongExtractor<selection_, sparse_>::index_start() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp:140:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  140 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp: In constructor ‘tatami::DelayedSubsetBlock<margin_, Value_, Index_>::AcrossExtractor<selection_, sparse_>::AcrossExtractor(std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type>, Index_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp:192:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  192 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp:194:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  194 |             } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp:197:23: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  197 |             } else if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                       ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type> tatami::DelayedSubsetBlock<margin_, Value_, Index_>::populate(const tatami::Options&, Args_&& ...) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp:259:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  259 |         if constexpr(accrow_ != (margin_ == 0)) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp:260:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  260 |             if constexpr(sparse_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetBlock.hpp:267:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  267 |             if constexpr(sparse_) {
      |                ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/make_DelayedSubset.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:20,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/utils.hpp: In constructor ‘tatami::subset_utils::PerpendicularExtractor<selection_, sparse_, Value_, Index_, IndexStorage_>::PerpendicularExtractor(std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type>, const IndexStorage_&)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/utils.hpp:46:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   46 |         if constexpr(selection_ == DimensionSelectionType::FULL) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/utils.hpp:48:19: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   48 |         } else if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                   ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/utils.hpp: In member function ‘const Index_* tatami::subset_utils::PerpendicularExtractor<selection_, sparse_, Value_, Index_, IndexStorage_>::index_start() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/utils.hpp:62:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   62 |         if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |            ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/make_DelayedSubset.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:20,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/utils.hpp: In function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type> tatami::subset_utils::populate_perpendicular(const tatami::Matrix<InputValue_, InputIndex_>*, const IndexStorage_&, const tatami::Options&, Args_&& ...)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/utils.hpp:104:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  104 |     if constexpr(sparse_) {
      |        ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/make_DelayedSubset.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:20,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp: In constructor ‘tatami::DelayedSubsetSortedUnique<margin_, Value_, Index_, IndexStorage_>::DelayedSubsetSortedUnique(std::shared_ptr<const tatami::Matrix<Value_, Index_> >, IndexStorage_, bool)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp:39:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   39 |         if constexpr(storage_has_data) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp: In member function ‘Index_ tatami::DelayedSubsetSortedUnique<margin_, Value_, Index_, IndexStorage_>::nrow() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp:67:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   67 |         if constexpr(margin_==0) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp: In member function ‘Index_ tatami::DelayedSubsetSortedUnique<margin_, Value_, Index_, IndexStorage_>::ncol() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp:75:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   75 |         if constexpr(margin_==0) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp: In constructor ‘tatami::DelayedSubsetSortedUnique<margin_, Value_, Index_, IndexStorage_>::ParallelWorkspaceBase<selection_, sparse_>::ParallelWorkspaceBase(const tatami::DelayedSubsetSortedUnique<margin_, Value_, Index_, IndexStorage_>*, const tatami::Options&)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp:117:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  117 |             if constexpr(selection_ == DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp: In constructor ‘tatami::DelayedSubsetSortedUnique<margin_, Value_, Index_, IndexStorage_>::ParallelWorkspaceBase<selection_, sparse_>::ParallelWorkspaceBase(const tatami::DelayedSubsetSortedUnique<margin_, Value_, Index_, IndexStorage_>*, const tatami::Options&, Index_, Index_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp:124:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  124 |             if constexpr(selection_ == DimensionSelectionType::BLOCK) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp: In constructor ‘tatami::DelayedSubsetSortedUnique<margin_, Value_, Index_, IndexStorage_>::ParallelWorkspaceBase<selection_, sparse_>::ParallelWorkspaceBase(const tatami::DelayedSubsetSortedUnique<margin_, Value_, Index_, IndexStorage_>*, const tatami::Options&, std::vector<Index_>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp:134:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  134 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp: In member function ‘const Index_* tatami::DelayedSubsetSortedUnique<margin_, Value_, Index_, IndexStorage_>::ParallelWorkspaceBase<selection_, sparse_>::index_start() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp:155:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  155 |             if constexpr(selection_ == DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type> tatami::DelayedSubsetSortedUnique<margin_, Value_, Index_, IndexStorage_>::populate(const tatami::Options&, Args_&& ...) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp:210:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  210 |         if constexpr(accrow_ == (margin_ == 0)) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSortedUnique.hpp:214:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  214 |             if constexpr(sparse_) {
      |                ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/make_DelayedSubset.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:20,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp: In member function ‘Index_ tatami::DelayedSubsetSorted<margin_, Value_, Index_, IndexStorage_>::get_mapping_dim() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp:79:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   79 |         if constexpr(margin_ == 0) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp: In member function ‘Index_ tatami::DelayedSubsetSorted<margin_, Value_, Index_, IndexStorage_>::nrow() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp:88:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   88 |         if constexpr(margin_==0) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp: In member function ‘Index_ tatami::DelayedSubsetSorted<margin_, Value_, Index_, IndexStorage_>::ncol() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp:96:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   96 |         if constexpr(margin_==0) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp: In static member function ‘static tatami::SparseRange<Value_, Index_> tatami::DelayedSubsetSorted<margin_, Value_, Index_, IndexStorage_>::remap_sparse_duplicates(Index_, Value_*, Index_*, std::vector<Index>&, std::vector<Index_>&, bool, Extractor_*, const std::vector<Index_>&, const std::vector<Index_>&, Indexer_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp:173:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  173 |                 if constexpr(std::is_same<Indexer_, bool>::value) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<tatami::DimensionSelectionType::INDEX, Value_, Index_>, tatami::DenseExtractor<tatami::DimensionSelectionType::INDEX, Value_, Index_> >::type> tatami::DelayedSubsetSorted<margin_, Value_, Index_, IndexStorage_>::create_inner_extractor(const tatami::Options&, std::vector<Index_>) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp:190:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  190 |         if constexpr(sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp: In constructor ‘tatami::DelayedSubsetSorted<margin_, Value_, Index_, IndexStorage_>::IndexParallelExtractor<sparse_>::IndexParallelExtractor(const tatami::DelayedSubsetSorted<margin_, Value_, Index_, IndexStorage_>*, const tatami::Options&, std::vector<Index_>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp:400:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  400 |             if constexpr(!sparse_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<tatami::DimensionSelectionType::FULL, Value_, Index_>, tatami::DenseExtractor<tatami::DimensionSelectionType::FULL, Value_, Index_> >::type> tatami::DelayedSubsetSorted<margin_, Value_, Index_, IndexStorage_>::populate_parallel(const tatami::Options&) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp:474:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  474 |         if constexpr(sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<tatami::DimensionSelectionType::BLOCK, Value_, Index_>, tatami::DenseExtractor<tatami::DimensionSelectionType::BLOCK, Value_, Index_> >::type> tatami::DelayedSubsetSorted<margin_, Value_, Index_, IndexStorage_>::populate_parallel(const tatami::Options&, Index_, Index_) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp:485:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  485 |         if constexpr(sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<tatami::DimensionSelectionType::INDEX, Value_, Index_>, tatami::DenseExtractor<tatami::DimensionSelectionType::INDEX, Value_, Index_> >::type> tatami::DelayedSubsetSorted<margin_, Value_, Index_, IndexStorage_>::populate_parallel(const tatami::Options&, std::vector<Index_>) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp:496:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  496 |         if constexpr(sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type> tatami::DelayedSubsetSorted<margin_, Value_, Index_, IndexStorage_>::populate(const tatami::Options&, Args_&& ...) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetSorted.hpp:506:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  506 |         if constexpr(accrow_ == (margin_ == 0)) {
      |            ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/make_DelayedSubset.hpp:6,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:20,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp: In member function ‘Index_ tatami::DelayedSubsetUnique<margin_, Value_, Index_, IndexStorage_>::nrow() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp:120:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  120 |         if constexpr(margin_==0) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp: In member function ‘Index_ tatami::DelayedSubsetUnique<margin_, Value_, Index_, IndexStorage_>::ncol() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp:128:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  128 |         if constexpr(margin_==0) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<tatami::DimensionSelectionType::INDEX, Value_, Index_>, tatami::DenseExtractor<tatami::DimensionSelectionType::INDEX, Value_, Index_> >::type> tatami::DelayedSubsetUnique<margin_, Value_, Index_, IndexStorage_>::create_inner_extractor(const tatami::Options&, std::vector<Index_>) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp:199:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  199 |         if constexpr(sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp: In constructor ‘tatami::DelayedSubsetUnique<margin_, Value_, Index_, IndexStorage_>::BlockParallelExtractor<sparse_>::BlockParallelExtractor(const tatami::DelayedSubsetUnique<margin_, Value_, Index_, IndexStorage_>*, const tatami::Options&, Index_, Index_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp:399:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  399 |             if constexpr(sparse_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp: In constructor ‘tatami::DelayedSubsetUnique<margin_, Value_, Index_, IndexStorage_>::IndexParallelExtractor<sparse_>::IndexParallelExtractor(const tatami::DelayedSubsetUnique<margin_, Value_, Index_, IndexStorage_>*, const tatami::Options&, std::vector<Index_>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp:448:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  448 |             if constexpr(sparse_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<tatami::DimensionSelectionType::FULL, Value_, Index_>, tatami::DenseExtractor<tatami::DimensionSelectionType::FULL, Value_, Index_> >::type> tatami::DelayedSubsetUnique<margin_, Value_, Index_, IndexStorage_>::populate_parallel(const tatami::Options&) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp:497:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  497 |         if constexpr(sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<tatami::DimensionSelectionType::BLOCK, Value_, Index_>, tatami::DenseExtractor<tatami::DimensionSelectionType::BLOCK, Value_, Index_> >::type> tatami::DelayedSubsetUnique<margin_, Value_, Index_, IndexStorage_>::populate_parallel(const tatami::Options&, Index_, Index_) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp:508:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  508 |         if constexpr(sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<tatami::DimensionSelectionType::INDEX, Value_, Index_>, tatami::DenseExtractor<tatami::DimensionSelectionType::INDEX, Value_, Index_> >::type> tatami::DelayedSubsetUnique<margin_, Value_, Index_, IndexStorage_>::populate_parallel(const tatami::Options&, std::vector<Index_>) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp:519:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  519 |         if constexpr(sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type> tatami::DelayedSubsetUnique<margin_, Value_, Index_, IndexStorage_>::populate(const tatami::Options&, Args_&& ...) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubsetUnique.hpp:529:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  529 |         if constexpr(accrow_ == (margin_ == 0)) {
      |            ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/make_DelayedSubset.hpp:7,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:20,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp: In member function ‘Index_ tatami::DelayedSubset<margin_, Value_, Index_, IndexStorage_>::nrow() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp:121:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  121 |         if constexpr(margin_==0) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp: In member function ‘Index_ tatami::DelayedSubset<margin_, Value_, Index_, IndexStorage_>::ncol() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp:129:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  129 |         if constexpr(margin_==0) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<tatami::DimensionSelectionType::INDEX, Value_, Index_>, tatami::DenseExtractor<tatami::DimensionSelectionType::INDEX, Value_, Index_> >::type> tatami::DelayedSubset<margin_, Value_, Index_, IndexStorage_>::create_inner_extractor(const tatami::Options&, std::vector<Index_>) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp:209:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  209 |         if constexpr(sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp: In constructor ‘tatami::DelayedSubset<margin_, Value_, Index_, IndexStorage_>::BlockParallelExtractor<sparse_>::BlockParallelExtractor(const tatami::DelayedSubset<margin_, Value_, Index_, IndexStorage_>*, const tatami::Options&, Index_, Index_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp:443:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  443 |                 if constexpr(sparse_) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp:451:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  451 |             if constexpr(sparse_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp: In constructor ‘tatami::DelayedSubset<margin_, Value_, Index_, IndexStorage_>::IndexParallelExtractor<sparse_>::IndexParallelExtractor(const tatami::DelayedSubset<margin_, Value_, Index_, IndexStorage_>*, const tatami::Options&, std::vector<Index_>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp:508:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  508 |                 if constexpr(sparse_) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp:516:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  516 |             if constexpr(sparse_) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<tatami::DimensionSelectionType::FULL, Value_, Index_>, tatami::DenseExtractor<tatami::DimensionSelectionType::FULL, Value_, Index_> >::type> tatami::DelayedSubset<margin_, Value_, Index_, IndexStorage_>::populate_parallel(const tatami::Options&) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp:570:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  570 |         if constexpr(sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<tatami::DimensionSelectionType::BLOCK, Value_, Index_>, tatami::DenseExtractor<tatami::DimensionSelectionType::BLOCK, Value_, Index_> >::type> tatami::DelayedSubset<margin_, Value_, Index_, IndexStorage_>::populate_parallel(const tatami::Options&, Index_, Index_) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp:581:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  581 |         if constexpr(sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<tatami::DimensionSelectionType::INDEX, Value_, Index_>, tatami::DenseExtractor<tatami::DimensionSelectionType::INDEX, Value_, Index_> >::type> tatami::DelayedSubset<margin_, Value_, Index_, IndexStorage_>::populate_parallel(const tatami::Options&, std::vector<Index_>) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp:592:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  592 |         if constexpr(sparse_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp: In member function ‘std::unique_ptr<typename std::conditional<sparse_, tatami::SparseExtractor<selection_, Value_, Index_>, tatami::DenseExtractor<selection_, Value_, Index_> >::type> tatami::DelayedSubset<margin_, Value_, Index_, IndexStorage_>::populate(const tatami::Options&, Args_&& ...) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/subset/DelayedSubset.hpp:602:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  602 |         if constexpr(accrow_ == (margin_ == 0)) {
      |            ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:22,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/utils/compress_sparse_triplets.hpp: In function ‘std::vector<long unsigned int> tatami::compress_sparse_triplets(size_t, size_t, U&, V&, W&)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/utils/compress_sparse_triplets.hpp:104:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  104 |     if constexpr(ROW) {
      |        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/utils/compress_sparse_triplets.hpp:117:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  117 |         if constexpr(ROW) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/utils/compress_sparse_triplets.hpp:149:8: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  149 |     if constexpr(ROW) {
      |        ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/utils/convert_to_dense.hpp:1,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:23,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/utils/../dense/convert_to_dense.hpp: In lambda function:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/utils/../dense/convert_to_dense.hpp:46:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   46 |                 if constexpr(same_type) {
      |                    ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:27,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/utils/bind_intersection.hpp: In lambda function:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/utils/bind_intersection.hpp:48:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   48 |         if constexpr(margin) {
      |            ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/tatami.hpp:36,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:5,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp: In lambda function:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp:50:28: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   50 |                         if constexpr(store_min) {
      |                            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp:56:28: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   56 |                         if constexpr(store_max) {
      |                            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp: In lambda function:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp:79:28: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   79 |                         if constexpr(store_min) {
      |                            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp:85:28: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   85 |                         if constexpr(store_max) {
      |                            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp:98:28: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
   98 |                         if constexpr(store_min) {
      |                            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp:103:28: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  103 |                         if constexpr(store_max) {
      |                            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp: In lambda function:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp:120:24: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  120 |                     if constexpr(store_min) {
      |                        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp:123:24: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  123 |                     if constexpr(store_max) {
      |                        ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp: In lambda function:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp:141:32: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  141 |                             if constexpr(store_min) {
      |                                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp:147:32: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  147 |                             if constexpr(store_max) {
      |                                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp:155:28: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  155 |                         if constexpr(store_min) {
      |                            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami/stats/ranges.hpp:158:28: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  158 |                         if constexpr(store_max) {
      |                            ^~~~~~~~~
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:6,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/SimpleMatrix.hpp: In function ‘tatami_r::Parsed<Data_, Index_> tatami_r::parse_simple_matrix_internal(const InputObject_&)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/SimpleMatrix.hpp:15:23: error: missing template arguments before ‘view’
   15 |     tatami::ArrayView view(static_cast<const Value_*>(y.begin()), y.size());
      |                       ^~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/SimpleMatrix.hpp:16:77: error: ‘view’ was not declared in this scope
   16 |     output.matrix.reset(new tatami::DenseColumnMatrix<double, int, decltype(view)>(y.rows(), y.cols(), std::move(view)));
      |                                                                             ^~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/SimpleMatrix.hpp:16:82: error: template argument 3 is invalid
   16 |     output.matrix.reset(new tatami::DenseColumnMatrix<double, int, decltype(view)>(y.rows(), y.cols(), std::move(view)));
      |                                                                                  ^
In file included from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/tatami_r.hpp:4,
                 from /tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/Rtatami.h:8,
                 from file154ae131d12088.cpp:1:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp: In member function ‘Rcpp::List tatami_r::UnknownMatrix<Value_, Index_>::create_rounded_indices(Index_, tatami_r::UnknownMatrix<Value_, Index_>::Workspace<sparse_>*) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:211:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  211 |         if constexpr(byrow_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp: In member function ‘Index_ tatami_r::UnknownMatrix<Value_, Index_>::chunk_dim() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:229:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  229 |         if constexpr(byrow_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp: In member function ‘Rcpp::List tatami_r::UnknownMatrix<Value_, Index_>::create_next_indices(tatami_r::UnknownMatrix<Value_, Index_>::Workspace<sparse_>*) const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:307:12: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  307 |         if constexpr(byrow_) {
      |            ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp: In constructor ‘tatami_r::UnknownMatrix<Value_, Index_>::UnknownExtractor<byrow_, selection_, sparse_>::UnknownExtractor(const tatami_r::UnknownMatrix<Value_, Index_>*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:483:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  483 |             if constexpr(selection_ == tatami::DimensionSelectionType::FULL) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp: In constructor ‘tatami_r::UnknownMatrix<Value_, Index_>::UnknownExtractor<byrow_, selection_, sparse_>::UnknownExtractor(const tatami_r::UnknownMatrix<Value_, Index_>*, Index_, Index_)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:491:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  491 |             if constexpr(selection_ == tatami::DimensionSelectionType::BLOCK) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp: In constructor ‘tatami_r::UnknownMatrix<Value_, Index_>::UnknownExtractor<byrow_, selection_, sparse_>::UnknownExtractor(const tatami_r::UnknownMatrix<Value_, Index_>*, std::vector<Index>)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:500:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  500 |             if constexpr(selection_ == tatami::DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp: In member function ‘const Index_* tatami_r::UnknownMatrix<Value_, Index_>::UnknownExtractor<byrow_, selection_, sparse_>::index_start() const’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:509:16: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  509 |             if constexpr(selection_ == tatami::DimensionSelectionType::INDEX) {
      |                ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp: In member function ‘tatami::SparseRange<Value_, Index_> tatami_r::UnknownMatrix<Value_, Index_>::SparseUnknownExtractor<byrow_, selection_>::fetch(Index_, Value_*, Index_*)’:
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:554:20: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  554 |                 if constexpr(selection_ == tatami::DimensionSelectionType::BLOCK) {
      |                    ^~~~~~~~~
/tmp/RtmpO6pOQg/Rinst14405548042d12/beachmat/include/tatami_r/UnknownMatrix.hpp:559:27: warning: ‘if constexpr’ only available with ‘-std=c++17’ or ‘-std=gnu++17’
  559 |                 } else if constexpr(selection_ == tatami::DimensionSelectionType::INDEX) {
      |                           ^~~~~~~~~
make: *** [/home/hpages/bbs-3.18-bioc-R41/R/etc/Makeconf:175: file154ae131d12088.o] Error 1

Quitting from lines 93-118 [unnamed-chunk-4] (linking.Rmd)
Error: processing vignette 'linking.Rmd' failed with diagnostics:
Error 1 occurred building shared library.
--- failed re-building ‘linking.Rmd’

SUMMARY: processing the following file failed:
  ‘linking.Rmd’

Error: Vignette re-building failed.
Execution halted