* installing *source* package ‘reems’ ...
** this is package ‘reems’ version ‘0.1.0’
** package ‘reems’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
specified C++17
using C++ compiler: ‘g++ (GCC) 15.2.1 20260123 (Red Hat 15.2.1-7)’
using C++17
make[1]: Entering directory '/data/gannet/ripley/R/packages/tests-devel/reems/src'
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG  -I'/data/gannet/ripley/R/test-dev/BH/include' -I'/data/gannet/ripley/R/test-dev/Rcpp/include' -I'/data/gannet/ripley/R/test-dev/RcppEigen/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c RcppExports.cpp -o RcppExports.o
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG  -I'/data/gannet/ripley/R/test-dev/BH/include' -I'/data/gannet/ripley/R/test-dev/Rcpp/include' -I'/data/gannet/ripley/R/test-dev/RcppEigen/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c draw.cpp -o draw.o
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG  -I'/data/gannet/ripley/R/test-dev/BH/include' -I'/data/gannet/ripley/R/test-dev/Rcpp/include' -I'/data/gannet/ripley/R/test-dev/RcppEigen/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c eems.cpp -o eems.o
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG  -I'/data/gannet/ripley/R/test-dev/BH/include' -I'/data/gannet/ripley/R/test-dev/Rcpp/include' -I'/data/gannet/ripley/R/test-dev/RcppEigen/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c graph.cpp -o graph.o
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG  -I'/data/gannet/ripley/R/test-dev/BH/include' -I'/data/gannet/ripley/R/test-dev/Rcpp/include' -I'/data/gannet/ripley/R/test-dev/RcppEigen/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c habitat.cpp -o habitat.o
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG  -I'/data/gannet/ripley/R/test-dev/BH/include' -I'/data/gannet/ripley/R/test-dev/Rcpp/include' -I'/data/gannet/ripley/R/test-dev/RcppEigen/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c mcmc.cpp -o mcmc.o
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG  -I'/data/gannet/ripley/R/test-dev/BH/include' -I'/data/gannet/ripley/R/test-dev/Rcpp/include' -I'/data/gannet/ripley/R/test-dev/RcppEigen/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c reems.cpp -o reems.o
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG  -I'/data/gannet/ripley/R/test-dev/BH/include' -I'/data/gannet/ripley/R/test-dev/Rcpp/include' -I'/data/gannet/ripley/R/test-dev/RcppEigen/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c runeems_snps.cpp -o runeems_snps.o
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG  -I'/data/gannet/ripley/R/test-dev/BH/include' -I'/data/gannet/ripley/R/test-dev/Rcpp/include' -I'/data/gannet/ripley/R/test-dev/RcppEigen/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c util.cpp -o util.o
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG  -I'/data/gannet/ripley/R/test-dev/BH/include' -I'/data/gannet/ripley/R/test-dev/Rcpp/include' -I'/data/gannet/ripley/R/test-dev/RcppEigen/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c voronoi2raster.cpp -o voronoi2raster.o
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/bind/mem_fn.hpp:23,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/mem_fn.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function/function_template.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/detail/find_iterator.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/find_iterator.hpp:24,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/iter_find.hpp:27,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/split.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string.hpp:23,
                 from util.h:25,
                 from voronoi2raster.cpp:14:
/data/gannet/ripley/R/test-dev/BH/include/boost/get_pointer.hpp:48:40: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   48 | template<class T> T * get_pointer(std::auto_ptr<T> const& p)
      |                                        ^~~~~~~~
In file included from /usr/include/c++/15/bits/shared_ptr_base.h:59,
                 from /usr/include/c++/15/bits/shared_ptr.h:53,
                 from /usr/include/c++/15/bits/fs_path.h:46,
                 from /usr/include/c++/15/filesystem:54,
                 from util.h:21:
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/bind/mem_fn.hpp:23,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/mem_fn.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function/function_template.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/detail/find_iterator.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/find_iterator.hpp:24,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/iter_find.hpp:27,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/split.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string.hpp:23,
                 from util.h:25,
                 from mcmc.h:3,
                 from mcmc.cpp:6:
/data/gannet/ripley/R/test-dev/BH/include/boost/get_pointer.hpp:48:40: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   48 | template<class T> T * get_pointer(std::auto_ptr<T> const& p)
      |                                        ^~~~~~~~
In file included from /usr/include/c++/15/bits/shared_ptr_base.h:59,
                 from /usr/include/c++/15/bits/shared_ptr.h:53,
                 from /usr/include/c++/15/bits/fs_path.h:46,
                 from /usr/include/c++/15/filesystem:54,
                 from util.h:21:
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/bind/mem_fn.hpp:23,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/mem_fn.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function/function_template.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/detail/find_iterator.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/find_iterator.hpp:24,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/iter_find.hpp:27,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/split.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string.hpp:23,
                 from util.h:25,
                 from util.cpp:6:
/data/gannet/ripley/R/test-dev/BH/include/boost/get_pointer.hpp:48:40: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   48 | template<class T> T * get_pointer(std::auto_ptr<T> const& p)
      |                                        ^~~~~~~~
In file included from /usr/include/c++/15/bits/shared_ptr_base.h:59,
                 from /usr/include/c++/15/bits/shared_ptr.h:53,
                 from /usr/include/c++/15/bits/fs_path.h:46,
                 from /usr/include/c++/15/filesystem:54,
                 from util.h:21:
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/bind/mem_fn.hpp:23,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/mem_fn.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function/function_template.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/detail/find_iterator.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/find_iterator.hpp:24,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/iter_find.hpp:27,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/split.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string.hpp:23,
                 from util.h:25,
                 from draw.h:11,
                 from draw.cpp:2:
/data/gannet/ripley/R/test-dev/BH/include/boost/get_pointer.hpp:48:40: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   48 | template<class T> T * get_pointer(std::auto_ptr<T> const& p)
      |                                        ^~~~~~~~
In file included from /usr/include/c++/15/bits/shared_ptr_base.h:59,
                 from /usr/include/c++/15/bits/shared_ptr.h:53,
                 from /usr/include/c++/15/bits/fs_path.h:46,
                 from /usr/include/c++/15/filesystem:54,
                 from util.h:21:
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/bind/mem_fn.hpp:23,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/mem_fn.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function/function_template.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/detail/find_iterator.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/find_iterator.hpp:24,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/iter_find.hpp:27,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/split.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string.hpp:23,
                 from util.h:25,
                 from graph.h:3,
                 from graph.cpp:6:
/data/gannet/ripley/R/test-dev/BH/include/boost/get_pointer.hpp:48:40: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   48 | template<class T> T * get_pointer(std::auto_ptr<T> const& p)
      |                                        ^~~~~~~~
In file included from /usr/include/c++/15/bits/shared_ptr_base.h:59,
                 from /usr/include/c++/15/bits/shared_ptr.h:53,
                 from /usr/include/c++/15/bits/fs_path.h:46,
                 from /usr/include/c++/15/filesystem:54,
                 from util.h:21:
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/bind/mem_fn.hpp:23,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/mem_fn.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function/function_template.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/detail/find_iterator.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/find_iterator.hpp:24,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/iter_find.hpp:27,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/split.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string.hpp:23,
                 from util.h:25,
                 from eems.h:3,
                 from eems.cpp:2:
/data/gannet/ripley/R/test-dev/BH/include/boost/get_pointer.hpp:48:40: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   48 | template<class T> T * get_pointer(std::auto_ptr<T> const& p)
      |                                        ^~~~~~~~
In file included from /usr/include/c++/15/bits/shared_ptr_base.h:59,
                 from /usr/include/c++/15/bits/shared_ptr.h:53,
                 from /usr/include/c++/15/bits/fs_path.h:46,
                 from /usr/include/c++/15/filesystem:54,
                 from util.h:21:
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/bind/mem_fn.hpp:23,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/mem_fn.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function/function_template.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/detail/find_iterator.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/find_iterator.hpp:24,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/iter_find.hpp:27,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/split.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string.hpp:23,
                 from util.h:25,
                 from reems.cpp:4:
/data/gannet/ripley/R/test-dev/BH/include/boost/get_pointer.hpp:48:40: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   48 | template<class T> T * get_pointer(std::auto_ptr<T> const& p)
      |                                        ^~~~~~~~
In file included from /usr/include/c++/15/bits/shared_ptr_base.h:59,
                 from /usr/include/c++/15/bits/shared_ptr.h:53,
                 from /usr/include/c++/15/bits/fs_path.h:46,
                 from /usr/include/c++/15/filesystem:54,
                 from util.h:21:
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/bind/mem_fn.hpp:23,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/mem_fn.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function/function_template.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/detail/find_iterator.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/find_iterator.hpp:24,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/iter_find.hpp:27,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/split.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string.hpp:23,
                 from util.h:25,
                 from eems.h:3,
                 from runeems_snps.cpp:6:
/data/gannet/ripley/R/test-dev/BH/include/boost/get_pointer.hpp:48:40: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   48 | template<class T> T * get_pointer(std::auto_ptr<T> const& p)
      |                                        ^~~~~~~~
In file included from /usr/include/c++/15/bits/shared_ptr_base.h:59,
                 from /usr/include/c++/15/bits/shared_ptr.h:53,
                 from /usr/include/c++/15/bits/fs_path.h:46,
                 from /usr/include/c++/15/filesystem:54,
                 from util.h:21:
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/bind/mem_fn.hpp:23,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/mem_fn.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function/function_template.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/function.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/detail/find_iterator.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/find_iterator.hpp:24,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/iter_find.hpp:27,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/split.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string.hpp:23,
                 from util.h:25,
                 from habitat.h:3,
                 from habitat.cpp:6:
/data/gannet/ripley/R/test-dev/BH/include/boost/get_pointer.hpp:48:40: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   48 | template<class T> T * get_pointer(std::auto_ptr<T> const& p)
      |                                        ^~~~~~~~
In file included from /usr/include/c++/15/bits/shared_ptr_base.h:59,
                 from /usr/include/c++/15/bits/shared_ptr.h:53,
                 from /usr/include/c++/15/bits/fs_path.h:46,
                 from /usr/include/c++/15/filesystem:54,
                 from util.h:21:
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:17,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/property_map/vector_property_map.hpp:14,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/property_map/property_map.hpp:598,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:17,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/biconnected_components.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/graph/graph_util.hpp:12,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/graph/detect_biconnected_components.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/traverse.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/overlay.hpp:37,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp:34,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/intersection/interface.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/intersection/gc.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/difference.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/relate/implementation_gc.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/implementation_gc.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/covered_by.hpp:25,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/buffer/buffered_piece_collection.hpp:33,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/buffer/buffer_inserter.hpp:30,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/buffer/implementation.hpp:25,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/buffer.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometry.hpp:63,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry.hpp:17,
                 from habitat.h:5,
                 from graph.h:4,
                 from eems.h:6:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/detail/shared_count.hpp:294:33: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  294 |     explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) )
      |                                 ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:354:31: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  354 |     explicit shared_ptr( std::auto_ptr<Y> & r ): px(r.get()), pn()
      |                               ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:365:22: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  365 |     shared_ptr( std::auto_ptr<Y> && r ): px(r.get()), pn()
      |                      ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:423:34: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  423 |     shared_ptr & operator=( std::auto_ptr<Y> & r )
      |                                  ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:430:34: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  430 |     shared_ptr & operator=( std::auto_ptr<Y> && r )
      |                                  ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp: In member function ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator=(std::auto_ptr<_Up>&&)’:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:432:38: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  432 |         this_type( static_cast< std::auto_ptr<Y> && >( r ) ).swap( *this );
      |                                      ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/scoped_ptr.hpp:13,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/adjacency_list.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/graph/graph_util.hpp:13:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/scoped_ptr.hpp: At global scope:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/scoped_ptr.hpp:63:31: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   63 |     explicit scoped_ptr( std::auto_ptr<T> p ) noexcept : px( p.release() )
      |                               ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:17,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/property_map/vector_property_map.hpp:14,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/property_map/property_map.hpp:598,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:17,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/biconnected_components.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/graph/graph_util.hpp:12,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/graph/detect_biconnected_components.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/traverse.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/overlay.hpp:37,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp:34,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/intersection/interface.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/intersection/gc.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/difference.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/relate/implementation_gc.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/implementation_gc.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/covered_by.hpp:25,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/buffer/buffered_piece_collection.hpp:33,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/buffer/buffer_inserter.hpp:30,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/buffer/implementation.hpp:25,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/buffer.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometry.hpp:63,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry.hpp:17,
                 from habitat.h:5,
                 from graph.h:4:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/detail/shared_count.hpp:294:33: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  294 |     explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) )
      |                                 ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:354:31: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  354 |     explicit shared_ptr( std::auto_ptr<Y> & r ): px(r.get()), pn()
      |                               ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:365:22: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  365 |     shared_ptr( std::auto_ptr<Y> && r ): px(r.get()), pn()
      |                      ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:423:34: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  423 |     shared_ptr & operator=( std::auto_ptr<Y> & r )
      |                                  ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:430:34: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  430 |     shared_ptr & operator=( std::auto_ptr<Y> && r )
      |                                  ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp: In member function ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator=(std::auto_ptr<_Up>&&)’:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:432:38: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  432 |         this_type( static_cast< std::auto_ptr<Y> && >( r ) ).swap( *this );
      |                                      ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:17,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/property_map/vector_property_map.hpp:14,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/property_map/property_map.hpp:598,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:17,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/biconnected_components.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/graph/graph_util.hpp:12,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/graph/detect_biconnected_components.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/traverse.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/overlay.hpp:37,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp:34,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/intersection/interface.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/intersection/gc.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/difference.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/relate/implementation_gc.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/implementation_gc.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/covered_by.hpp:25,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/buffer/buffered_piece_collection.hpp:33,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/buffer/buffer_inserter.hpp:30,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/buffer/implementation.hpp:25,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/buffer.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometry.hpp:63,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry.hpp:17,
                 from habitat.h:5,
                 from reems.cpp:6:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/detail/shared_count.hpp:294:33: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  294 |     explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) )
      |                                 ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:354:31: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  354 |     explicit shared_ptr( std::auto_ptr<Y> & r ): px(r.get()), pn()
      |                               ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:365:22: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  365 |     shared_ptr( std::auto_ptr<Y> && r ): px(r.get()), pn()
      |                      ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:423:34: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  423 |     shared_ptr & operator=( std::auto_ptr<Y> & r )
      |                                  ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:430:34: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  430 |     shared_ptr & operator=( std::auto_ptr<Y> && r )
      |                                  ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp: In member function ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator=(std::auto_ptr<_Up>&&)’:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:432:38: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  432 |         this_type( static_cast< std::auto_ptr<Y> && >( r ) ).swap( *this );
      |                                      ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/scoped_ptr.hpp:13,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/adjacency_list.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/graph/graph_util.hpp:13:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/scoped_ptr.hpp: At global scope:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/scoped_ptr.hpp:63:31: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   63 |     explicit scoped_ptr( std::auto_ptr<T> p ) noexcept : px( p.release() )
      |                               ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:17,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/property_map/vector_property_map.hpp:14,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/property_map/property_map.hpp:598,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:17,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/biconnected_components.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/graph/graph_util.hpp:12,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/graph/detect_biconnected_components.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/traverse.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/overlay.hpp:37,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp:34,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/intersection/interface.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/intersection/gc.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/difference.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/relate/implementation_gc.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/implementation_gc.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/covered_by.hpp:25,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/buffer/buffered_piece_collection.hpp:33,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/buffer/buffer_inserter.hpp:30,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/buffer/implementation.hpp:25,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/buffer.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometry.hpp:63,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry.hpp:17,
                 from habitat.h:5:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/detail/shared_count.hpp:294:33: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  294 |     explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) )
      |                                 ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:354:31: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  354 |     explicit shared_ptr( std::auto_ptr<Y> & r ): px(r.get()), pn()
      |                               ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:365:22: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  365 |     shared_ptr( std::auto_ptr<Y> && r ): px(r.get()), pn()
      |                      ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:423:34: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  423 |     shared_ptr & operator=( std::auto_ptr<Y> & r )
      |                                  ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:430:34: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  430 |     shared_ptr & operator=( std::auto_ptr<Y> && r )
      |                                  ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp: In member function ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator=(std::auto_ptr<_Up>&&)’:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:432:38: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  432 |         this_type( static_cast< std::auto_ptr<Y> && >( r ) ).swap( *this );
      |                                      ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/scoped_ptr.hpp:13,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/adjacency_list.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/graph/graph_util.hpp:13:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/scoped_ptr.hpp: At global scope:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/scoped_ptr.hpp:63:31: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   63 |     explicit scoped_ptr( std::auto_ptr<T> p ) noexcept : px( p.release() )
      |                               ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:17,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/property_map/vector_property_map.hpp:14,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/property_map/property_map.hpp:598,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:17,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/biconnected_components.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/graph/graph_util.hpp:12,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/graph/detect_biconnected_components.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/traverse.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/overlay.hpp:37,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp:34,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/intersection/interface.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/intersection/gc.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/difference.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/relate/implementation_gc.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/implementation_gc.hpp:16,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/covered_by.hpp:25,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/buffer/buffered_piece_collection.hpp:33,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/buffer/buffer_inserter.hpp:30,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/buffer/implementation.hpp:25,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/buffer.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometry.hpp:63,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry.hpp:17,
                 from habitat.h:5,
                 from graph.h:4,
                 from eems.h:6:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/detail/shared_count.hpp:294:33: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  294 |     explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) )
      |                                 ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:354:31: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  354 |     explicit shared_ptr( std::auto_ptr<Y> & r ): px(r.get()), pn()
      |                               ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:365:22: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  365 |     shared_ptr( std::auto_ptr<Y> && r ): px(r.get()), pn()
      |                      ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:423:34: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  423 |     shared_ptr & operator=( std::auto_ptr<Y> & r )
      |                                  ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:430:34: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  430 |     shared_ptr & operator=( std::auto_ptr<Y> && r )
      |                                  ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp: In member function ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator=(std::auto_ptr<_Up>&&)’:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/shared_ptr.hpp:432:38: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  432 |         this_type( static_cast< std::auto_ptr<Y> && >( r ) ).swap( *this );
      |                                      ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
eems.cpp: In member function ‘double EEMS::eval_likelihood()’:
eems.cpp:258:10: warning: unused variable ‘triDeltaQD’ [-Wunused-variable]
  258 |   double triDeltaQD, ll_atfixdf;
      |          ^~~~~~~~~~
eems.cpp:258:22: warning: unused variable ‘ll_atfixdf’ [-Wunused-variable]
  258 |   double triDeltaQD, ll_atfixdf;
      |                      ^~~~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/scoped_ptr.hpp:13,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/adjacency_list.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/graph/graph_util.hpp:13:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/scoped_ptr.hpp: At global scope:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/scoped_ptr.hpp:63:31: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   63 |     explicit scoped_ptr( std::auto_ptr<T> p ) noexcept : px( p.release() )
      |                               ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
graph.cpp: In member function ‘void Graph::generate_only_grid(const std::string&, const Habitat&, int)’:
graph.cpp:48:7: warning: unused variable ‘oDemes’ [-Wunused-variable]
   48 |   int oDemes = get_num_obsrv_demes();
      |       ^~~~~~
graph.cpp: In member function ‘void Graph::reindex_demes()’:
graph.cpp:140:7: warning: unused variable ‘nEdges’ [-Wunused-variable]
  140 |   int nEdges = DemePairs.rows();
      |       ^~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/concept/assert.hpp:35,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/size_type.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:21,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/functions.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/iterator_range_core.hpp:41,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/iterator_range.hpp:13,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/as_literal.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/trim.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string.hpp:19:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5:   required from ‘class boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/arithmetic/arithmetic.hpp:46:5:   required from ‘class boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.h:53:8:   required from here
   53 |   Ring domain;
      |        ^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:31:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/arithmetic/arithmetic.hpp:46:5:   required from ‘class boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.h:53:8:   required from here
   53 |   Ring domain;
      |        ^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::Point<Geometry>::~Point() [with Geometry = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   74 |     BOOST_CONCEPT_USAGE(Point)
      |     ^~~~~~~~~~~~~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/scoped_ptr.hpp:13,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/adjacency_list.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/graph/graph_util.hpp:13:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/scoped_ptr.hpp: At global scope:
/data/gannet/ripley/R/test-dev/BH/include/boost/smart_ptr/scoped_ptr.hpp:63:31: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   63 |     explicit scoped_ptr( std::auto_ptr<T> p ) noexcept : px( p.release() )
      |                               ^~~~~~~~
/usr/include/c++/15/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/concept/assert.hpp:35,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/size_type.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:21,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/functions.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/iterator_range_core.hpp:41,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/iterator_range.hpp:13,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/as_literal.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/trim.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string.hpp:19:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5:   required from ‘class boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/arithmetic/arithmetic.hpp:46:5:   required from ‘class boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.h:53:8:   required from here
   53 |   Ring domain;
      |        ^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:31:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/arithmetic/arithmetic.hpp:46:5:   required from ‘class boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.h:53:8:   required from here
   53 |   Ring domain;
      |        ^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::Point<Geometry>::~Point() [with Geometry = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   74 |     BOOST_CONCEPT_USAGE(Point)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5:   required from ‘class boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/arithmetic/arithmetic.hpp:46:5:   required from ‘class boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.h:53:8:   required from here
   53 |   Ring domain;
      |        ^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::Point<Geometry>::~Point() [with Geometry = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   74 |     BOOST_CONCEPT_USAGE(Point)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5:   required from ‘class boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/arithmetic/arithmetic.hpp:46:5:   required from ‘class boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.h:53:8:   required from here
   53 |   Ring domain;
      |        ^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::Point<Geometry>::~Point() [with Geometry = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   74 |     BOOST_CONCEPT_USAGE(Point)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::constraint<Model>::failed() [with Model = boost::WritablePropertyMapConcept<int*, long unsigned int>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:76:5:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:65:52: warning: ‘this’ pointer is null [-Wnonnull]
   65 |     static void failed() { ((Model*)0)->constraints(); }
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/property_map/property_map.hpp:179:10: note: in a call to non-static member function ‘void boost::WritablePropertyMapConcept<PMap, Key>::constraints() [with PMap = int*; Key = long unsigned int]’
  179 |     void constraints() {
      |          ^~~~~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/concept/assert.hpp:35,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/size_type.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:21,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/functions.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/iterator_range_core.hpp:41,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/iterator_range.hpp:13,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/as_literal.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/trim.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string.hpp:19:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5:   required from ‘class boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/arithmetic/arithmetic.hpp:46:5:   required from ‘class boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.h:53:8:   required from here
   53 |   Ring domain;
      |        ^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:31:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/arithmetic/arithmetic.hpp:46:5:   required from ‘class boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.h:53:8:   required from here
   53 |   Ring domain;
      |        ^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::Point<Geometry>::~Point() [with Geometry = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   74 |     BOOST_CONCEPT_USAGE(Point)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::lvalue_property_map_tag, boost::writable_property_map_tag> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::lvalue_property_map_tag, boost::writable_property_map_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:206:3:   required from ‘struct boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::writable_property_map_tag>’
  206 |   BOOST_concept(Convertible,(X)(Y))
      |                 ^~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::writable_property_map_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::writable_property_map_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::writable_property_map_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::WritablePropertyMapConcept<int*, long unsigned int>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::WritablePropertyMapConcept<int*, long unsigned int> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::WritablePropertyMapConcept<int*, long unsigned int> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::WritablePropertyMapConcept<int*, long unsigned int>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:76:5:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::lvalue_property_map_tag, boost::writable_property_map_tag>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::writable_property_map_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/property_map/property_map.hpp:180:7:   required from ‘void boost::WritablePropertyMapConcept<PMap, Key>::constraints() [with PMap = int*; Key = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::WritablePropertyMapConcept<int*, long unsigned int>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::WritablePropertyMapConcept<int*, long unsigned int> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::WritablePropertyMapConcept<int*, long unsigned int> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::WritablePropertyMapConcept<int*, long unsigned int>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:76:5:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/mpl/aux_/integral_wrapper.hpp:22,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/mpl/int.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/mpl/lambda_fwd.hpp:23,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/mpl/aux_/na_spec.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/mpl/if.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/numeric/conversion/detail/bounds.hpp:15,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/numeric/conversion/bounds.hpp:13,
                 from util.h:24:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:206:17: note: in a call to non-static member function ‘boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::writable_property_map_tag>::~ConvertibleConcept()’
  206 |   BOOST_concept(Convertible,(X)(Y))
      |                 ^~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/preprocessor/cat.hpp:29:34: note: in definition of macro ‘BOOST_PP_CAT_I’
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/concept_def.hpp:23:12: note: in expansion of macro ‘BOOST_PP_CAT’
   23 |     struct BOOST_PP_CAT(name,Concept)                                           \
      |            ^~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:206:3: note: in expansion of macro ‘BOOST_concept’
  206 |   BOOST_concept(Convertible,(X)(Y))
      |   ^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::lvalue_property_map_tag, boost::writable_property_map_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::lvalue_property_map_tag, boost::writable_property_map_tag> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::lvalue_property_map_tag, boost::writable_property_map_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:206:3:   required from ‘struct boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::writable_property_map_tag>’
  206 |   BOOST_concept(Convertible,(X)(Y))
      |                 ^~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::writable_property_map_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::writable_property_map_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::WritablePropertyMapConcept<int*, long unsigned int>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::WritablePropertyMapConcept<int*, long unsigned int> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::WritablePropertyMapConcept<int*, long unsigned int> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::WritablePropertyMapConcept<int*, long unsigned int>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:76:5:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::lvalue_property_map_tag; Y = boost::writable_property_map_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5:   required from ‘class boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/arithmetic/arithmetic.hpp:46:5:   required from ‘class boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.h:53:8:   required from here
   53 |   Ring domain;
      |        ^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::Point<Geometry>::~Point() [with Geometry = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   74 |     BOOST_CONCEPT_USAGE(Point)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:128:5:   required from ‘class boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/linestring_concept.hpp:73:5:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/linestring_concept.hpp:73:5:   required from ‘class boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::ConstPoint<Geometry>::~ConstPoint() [with Geometry = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:128:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  128 |     BOOST_CONCEPT_USAGE(ConstPoint)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::incrementable_traversal_tag> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::incrementable_traversal_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::incrementable_traversal_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::incrementable_traversal_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::incrementable_traversal_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::incrementable_traversal_tag>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/iterator/iterator_concepts.hpp:106:7:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::incrementable_traversal_tag>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::incrementable_traversal_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/iterator/iterator_concepts.hpp:106:7:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::iterators::random_access_traversal_tag; Y = boost::iterators::incrementable_traversal_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::single_pass_traversal_tag> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::single_pass_traversal_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::single_pass_traversal_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::single_pass_traversal_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::single_pass_traversal_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::single_pass_traversal_tag>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:154:13:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::single_pass_traversal_tag>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::single_pass_traversal_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:154:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:280:9:   [ skipping 10 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::iterators::random_access_traversal_tag; Y = boost::iterators::single_pass_traversal_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:280:9:   [ skipping 10 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:280:9:   required from ‘struct boost::SinglePassRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:320:12:   required from ‘struct boost::ForwardRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  320 |     struct ForwardRangeConcept : SinglePassRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12:   required from ‘struct boost::BidirectionalRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12:   required from ‘struct boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::constraint<Model>::failed() [with Model = boost::DFSVisitorConcept<boost::detail::components_recorder<int*>, boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:130:9:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:65:52: warning: ‘this’ pointer is null [-Wnonnull]
   65 |     static void failed() { ((Model*)0)->constraints(); }
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~^~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/graph/biconnected_components.hpp:21:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:39:10: note: in a call to non-static member function ‘void boost::DFSVisitorConcept<Visitor, Graph>::constraints() [with Visitor = boost::detail::components_recorder<int*>; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
   39 |     void constraints()
      |          ^~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:283:9:   [ skipping 10 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:283:9:   required from ‘struct boost::SinglePassRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:320:12:   required from ‘struct boost::ForwardRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  320 |     struct ForwardRangeConcept : SinglePassRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12:   required from ‘struct boost::BidirectionalRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12:   required from ‘struct boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:320:12:   required from ‘struct boost::ForwardRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  320 |     struct ForwardRangeConcept : SinglePassRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12:   required from ‘struct boost::BidirectionalRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12:   required from ‘struct boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::DefaultConstructible<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5:   required from ‘struct boost::DefaultConstructible<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:183:16:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  183 |         struct ForwardIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 10 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::DefaultConstructible<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::forward_traversal_tag> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::forward_traversal_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::forward_traversal_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::forward_traversal_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::forward_traversal_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::forward_traversal_tag>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:193:13:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::forward_traversal_tag>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::forward_traversal_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:193:13:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:323:9:   [ skipping 9 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::iterators::random_access_traversal_tag; Y = boost::iterators::forward_traversal_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:323:9:   [ skipping 9 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:323:9:   required from ‘struct boost::ForwardRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12:   required from ‘struct boost::BidirectionalRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12:   required from ‘struct boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::ForwardIteratorConcept<Iterator>::~ForwardIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  199 |             BOOST_CONCEPT_USAGE(ForwardIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::DefaultConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5:   required from ‘struct boost::DefaultConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:183:16:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  183 |         struct ForwardIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 10 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::DefaultConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:324:9:   [ skipping 9 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:324:9:   required from ‘struct boost::ForwardRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12:   required from ‘struct boost::BidirectionalRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12:   required from ‘struct boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::ForwardIteratorConcept<Iterator>::~ForwardIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  199 |             BOOST_CONCEPT_USAGE(ForwardIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::bidirectional_traversal_tag> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::bidirectional_traversal_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::bidirectional_traversal_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::bidirectional_traversal_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::bidirectional_traversal_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::bidirectional_traversal_tag>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:220:14:   [ skipping 13 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::bidirectional_traversal_tag>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::bidirectional_traversal_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:220:14:   required from ‘struct boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:357:9:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::iterators::random_access_traversal_tag; Y = boost::iterators::bidirectional_traversal_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14:   required from ‘struct boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:357:9:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:357:9:   required from ‘struct boost::BidirectionalRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12:   required from ‘struct boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::BidirectionalIteratorConcept<Iterator>::~BidirectionalIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  226 |              BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14:   required from ‘struct boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:358:9:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:358:9:   required from ‘struct boost::BidirectionalRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12:   required from ‘struct boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::BidirectionalIteratorConcept<Iterator>::~BidirectionalIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  226 |              BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::random_access_traversal_tag> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::random_access_traversal_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::random_access_traversal_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::random_access_traversal_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::random_access_traversal_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::random_access_traversal_tag>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:241:14:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::random_access_traversal_tag>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::random_access_traversal_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:241:14:   required from ‘struct boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:375:9:   [ skipping 7 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::iterators::random_access_traversal_tag; Y = boost::iterators::random_access_traversal_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14:   required from ‘struct boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:375:9:   [ skipping 7 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:375:9:   required from ‘struct boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/util/range.hpp:95:5:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::RandomAccessIteratorConcept<Iterator>::~RandomAccessIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  247 |              BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14:   required from ‘struct boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:376:9:   [ skipping 7 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:376:9:   required from ‘struct boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/util/range.hpp:95:5:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::RandomAccessIteratorConcept<Iterator>::~RandomAccessIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  247 |              BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/util/range.hpp:95:5:   required from ‘class boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12: note: in a call to non-static member function ‘boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::~RandomAccessRangeConcept()’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/ring_concept.hpp:78:5:   required from ‘class boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::ConstRing<Geometry>::~ConstRing() [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/ring_concept.hpp:78:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   78 |     BOOST_CONCEPT_USAGE(ConstRing)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::AreaStrategy<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategy::area::cartesian<> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/area_concept.hpp:67:5:   required from ‘class boost::geometry::concepts::AreaStrategy<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategy::area::cartesian<> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::AreaStrategy<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategy::area::cartesian<> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::AreaStrategy<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategy::area::cartesian<> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::AreaStrategy<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategy::area::cartesian<> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::AreaStrategy<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategy::area::cartesian<> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:90:9:   required from ‘static typename boost::geometry::detail::area::area_result<Ring, Strategies>::type boost::geometry::detail::area::ring_area::apply(const Ring&, const Strategies&) [with Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategies = boost::geometry::strategies::area::cartesian<>; typename boost::geometry::detail::area::area_result<Ring, Strategies>::type = double]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:236:47:   required from ‘static auto boost::geometry::resolve_strategy::area<boost::geometry::default_strategy, false>::apply(const Geometry&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
  236 |         return dispatch::area<Geometry>::apply(geometry, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:253:55:   required from ‘static auto boost::geometry::resolve_dynamic::area<Geometry, Tag>::apply(const Geometry&, const Strategy&) [with Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  253 |         return resolve_strategy::area<Strategy>::apply(geometry, strategy);
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:319:50:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  319 |     return resolve_dynamic::area<Geometry>::apply(geometry, default_strategy());
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::AreaStrategy<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategy::area::cartesian<> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::geometry::concepts::AreaStrategy<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategy::area::cartesian<> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:90:9:   required from ‘static typename boost::geometry::detail::area::area_result<Ring, Strategies>::type boost::geometry::detail::area::ring_area::apply(const Ring&, const Strategies&) [with Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategies = boost::geometry::strategies::area::cartesian<>; typename boost::geometry::detail::area::area_result<Ring, Strategies>::type = double]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:236:47:   required from ‘static auto boost::geometry::resolve_strategy::area<boost::geometry::default_strategy, false>::apply(const Geometry&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
  236 |         return dispatch::area<Geometry>::apply(geometry, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:253:55:   required from ‘static auto boost::geometry::resolve_dynamic::area<Geometry, Tag>::apply(const Geometry&, const Strategy&) [with Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  253 |         return resolve_strategy::area<Strategy>::apply(geometry, strategy);
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:319:50:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  319 |     return resolve_dynamic::area<Geometry>::apply(geometry, default_strategy());
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::AreaStrategy<Geometry, Strategy>::~AreaStrategy() [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategy::area::cartesian<>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/area_concept.hpp:67:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   67 |     BOOST_CONCEPT_USAGE(AreaStrategy)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<boost::detail::components_recorder<int*> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<boost::detail::components_recorder<int*> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:165:3:   required from ‘struct boost::CopyConstructibleConcept<boost::detail::components_recorder<int*> >’
  165 |   BOOST_concept(CopyConstructible,(TT))
      |                 ^~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::CopyConstructibleConcept<boost::detail::components_recorder<int*> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::CopyConstructibleConcept<boost::detail::components_recorder<int*> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::CopyConstructibleConcept<boost::detail::components_recorder<int*> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:130:9:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<boost::detail::components_recorder<int*> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::CopyConstructibleConcept<boost::detail::components_recorder<int*> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:41:9:   required from ‘void boost::DFSVisitorConcept<Visitor, Graph>::constraints() [with Visitor = boost::detail::components_recorder<int*>; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::DFSVisitorConcept<boost::detail::components_recorder<int*>, boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::DFSVisitorConcept<boost::detail::components_recorder<int*>, boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::DFSVisitorConcept<boost::detail::components_recorder<int*>, boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::DFSVisitorConcept<boost::detail::components_recorder<int*>, boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:130:9:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:165:17: note: in a call to non-static member function ‘boost::CopyConstructibleConcept<boost::detail::components_recorder<int*> >::~CopyConstructibleConcept()’
  165 |   BOOST_concept(CopyConstructible,(TT))
      |                 ^~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/preprocessor/cat.hpp:29:34: note: in definition of macro ‘BOOST_PP_CAT_I’
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/concept_def.hpp:23:12: note: in expansion of macro ‘BOOST_PP_CAT’
   23 |     struct BOOST_PP_CAT(name,Concept)                                           \
      |            ^~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:165:3: note: in expansion of macro ‘BOOST_concept’
  165 |   BOOST_concept(CopyConstructible,(TT))
      |   ^~~~~~~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/concept/assert.hpp:35,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/size_type.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:21,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/functions.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/iterator_range_core.hpp:41,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/iterator_range.hpp:13,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/as_literal.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/trim.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string.hpp:19:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5:   required from ‘class boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/arithmetic/arithmetic.hpp:46:5:   required from ‘class boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.h:53:8:   required from here
   53 |   Ring domain;
      |        ^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:31:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/arithmetic/arithmetic.hpp:46:5:   required from ‘class boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.h:53:8:   required from here
   53 |   Ring domain;
      |        ^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::Point<Geometry>::~Point() [with Geometry = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   74 |     BOOST_CONCEPT_USAGE(Point)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::concepts::Graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:66:5:   required from ‘struct boost::concepts::Graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   required from ‘struct boost::concepts::IncidenceGraph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   required from ‘struct boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::concepts::Graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::concepts::IncidenceGraph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:87:5:   required from ‘struct boost::concepts::IncidenceGraph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   required from ‘struct boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::concepts::IncidenceGraph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:129:9:   required from ‘void boost::detail::depth_first_visit_impl(const IncidenceGraph&, typename boost::graph_traits<G>::vertex_descriptor, DFSVisitor&, ColorMap, TerminatorFunc) [with IncidenceGraph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; DFSVisitor = components_recorder<int*>; ColorMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; TerminatorFunc = nontruth2; typename boost::graph_traits<G>::vertex_descriptor = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:15: note: in a call to non-static member function ‘boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >::~IncidenceGraphConcept()’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/preprocessor/cat.hpp:29:34: note: in definition of macro ‘BOOST_PP_CAT_I’
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/concept_def.hpp:23:12: note: in expansion of macro ‘BOOST_PP_CAT’
   23 |     struct BOOST_PP_CAT(name,Concept)                                           \
      |            ^~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1: note: in expansion of macro ‘BOOST_concept’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      | ^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::constraint<Model>::failed() [with Model = boost::ReadWritePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:134:9:   required from ‘void boost::detail::depth_first_visit_impl(const IncidenceGraph&, typename boost::graph_traits<G>::vertex_descriptor, DFSVisitor&, ColorMap, TerminatorFunc) [with IncidenceGraph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; DFSVisitor = components_recorder<int*>; ColorMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; TerminatorFunc = nontruth2; typename boost::graph_traits<G>::vertex_descriptor = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:65:52: warning: ‘this’ pointer is null [-Wnonnull]
   65 |     static void failed() { ((Model*)0)->constraints(); }
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/property_map/property_map.hpp:205:10: note: in a call to non-static member function ‘void boost::ReadWritePropertyMapConcept<PMap, Key>::constraints() [with PMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; Key = long unsigned int]’
  205 |     void constraints() {
      |          ^~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<boost::default_color_type> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<boost::default_color_type>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:502:1:   required from ‘struct boost::concepts::ColorValue<boost::default_color_type>’
  502 | BOOST_concept(ColorValue, (C))
      |               ^~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:502:1:   required from ‘struct boost::concepts::ColorValueConcept<boost::default_color_type>’
  502 | BOOST_concept(ColorValue, (C))
      |               ^~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::concepts::ColorValueConcept<boost::default_color_type>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::concepts::ColorValueConcept<boost::default_color_type> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<boost::default_color_type>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::DefaultConstructible<boost::default_color_type> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5:   required from ‘struct boost::DefaultConstructible<boost::default_color_type>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:502:1:   required from ‘struct boost::concepts::ColorValue<boost::default_color_type>’
  502 | BOOST_concept(ColorValue, (C))
      |               ^~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:502:1:   required from ‘struct boost::concepts::ColorValueConcept<boost::default_color_type>’
  502 | BOOST_concept(ColorValue, (C))
      |               ^~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::concepts::ColorValueConcept<boost::default_color_type>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::concepts::ColorValueConcept<boost::default_color_type> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::DefaultConstructible<boost::default_color_type>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::concepts::ColorValue<boost::default_color_type> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:505:5:   required from ‘struct boost::concepts::ColorValue<boost::default_color_type>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:502:1:   required from ‘struct boost::concepts::ColorValueConcept<boost::default_color_type>’
  502 | BOOST_concept(ColorValue, (C))
      |               ^~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::concepts::ColorValueConcept<boost::default_color_type>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::concepts::ColorValueConcept<boost::default_color_type> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::concepts::ColorValueConcept<boost::default_color_type> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::concepts::ColorValue<boost::default_color_type>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::ColorValueConcept<boost::default_color_type>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:136:9:   required from ‘void boost::detail::depth_first_visit_impl(const IncidenceGraph&, typename boost::graph_traits<G>::vertex_descriptor, DFSVisitor&, ColorMap, TerminatorFunc) [with IncidenceGraph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; DFSVisitor = components_recorder<int*>; ColorMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; TerminatorFunc = nontruth2; typename boost::graph_traits<G>::vertex_descriptor = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:502:15: note: in a call to non-static member function ‘boost::concepts::ColorValueConcept<boost::default_color_type>::~ColorValueConcept()’
  502 | BOOST_concept(ColorValue, (C))
      |               ^~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/preprocessor/cat.hpp:29:34: note: in definition of macro ‘BOOST_PP_CAT_I’
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/concept_def.hpp:23:12: note: in expansion of macro ‘BOOST_PP_CAT’
   23 |     struct BOOST_PP_CAT(name,Concept)                                           \
      |            ^~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:502:1: note: in expansion of macro ‘BOOST_concept’
  502 | BOOST_concept(ColorValue, (C))
      | ^~~~~~~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/concept/assert.hpp:35,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/size_type.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:21,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/functions.hpp:20,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/iterator_range_core.hpp:41,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/iterator_range.hpp:13,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/range/as_literal.hpp:18,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string/trim.hpp:19,
                 from /data/gannet/ripley/R/test-dev/BH/include/boost/algorithm/string.hpp:19:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5:   required from ‘class boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/arithmetic/arithmetic.hpp:46:5:   required from ‘class boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.h:53:8:   required from here
   53 |   Ring domain;
      |        ^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
In file included from /data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:31:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/arithmetic/arithmetic.hpp:46:5:   required from ‘class boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.h:53:8:   required from here
   53 |   Ring domain;
      |        ^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::Point<Geometry>::~Point() [with Geometry = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   74 |     BOOST_CONCEPT_USAGE(Point)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<boost::detail::components_recorder<int*> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<boost::detail::components_recorder<int*> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<boost::detail::components_recorder<int*> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:165:3:   required from ‘struct boost::CopyConstructibleConcept<boost::detail::components_recorder<int*> >’
  165 |   BOOST_concept(CopyConstructible,(TT))
      |                 ^~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::CopyConstructibleConcept<boost::detail::components_recorder<int*> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::CopyConstructibleConcept<boost::detail::components_recorder<int*> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 7 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:130:9:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::CopyConstructible<TT>::~CopyConstructible() [with TT = boost::detail::components_recorder<int*>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  167 |     BOOST_CONCEPT_USAGE(CopyConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::concepts::Graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::concepts::Graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:66:5:   required from ‘struct boost::concepts::Graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   required from ‘struct boost::concepts::IncidenceGraph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   required from ‘struct boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::concepts::Graph<G>::~Graph() [with G = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:66:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   66 |     BOOST_CONCEPT_USAGE(Graph)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::concepts::IncidenceGraph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::concepts::IncidenceGraph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:87:5:   required from ‘struct boost::concepts::IncidenceGraph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   required from ‘struct boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::concepts::IncidenceGraph<G>::~IncidenceGraph() [with G = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:87:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   87 |     BOOST_CONCEPT_USAGE(IncidenceGraph)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::constraint<Model>::failed() [with Model = boost::ReadablePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/property_map/property_map.hpp:206:7:   required from ‘void boost::ReadWritePropertyMapConcept<PMap, Key>::constraints() [with PMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; Key = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::ReadWritePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::ReadWritePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::ReadWritePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:65:52: warning: ‘this’ pointer is null [-Wnonnull]
   65 |     static void failed() { ((Model*)0)->constraints(); }
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/property_map/property_map.hpp:147:10: note: in a call to non-static member function ‘void boost::ReadablePropertyMapConcept<PMap, Key>::constraints() [with PMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; Key = long unsigned int]’
  147 |     void constraints() {
      |          ^~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::constraint<Model>::failed() [with Model = boost::WritablePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/property_map/property_map.hpp:207:7:   required from ‘void boost::ReadWritePropertyMapConcept<PMap, Key>::constraints() [with PMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; Key = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::ReadWritePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::ReadWritePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::ReadWritePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:65:52: warning: ‘this’ pointer is null [-Wnonnull]
   65 |     static void failed() { ((Model*)0)->constraints(); }
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/property_map/property_map.hpp:179:10: note: in a call to non-static member function ‘void boost::WritablePropertyMapConcept<PMap, Key>::constraints() [with PMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; Key = long unsigned int]’
  179 |     void constraints() {
      |          ^~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::lvalue_property_map_tag, boost::read_write_property_map_tag> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::lvalue_property_map_tag, boost::read_write_property_map_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:206:3:   required from ‘struct boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::read_write_property_map_tag>’
  206 |   BOOST_concept(Convertible,(X)(Y))
      |                 ^~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::read_write_property_map_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::read_write_property_map_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::read_write_property_map_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 7 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::lvalue_property_map_tag, boost::read_write_property_map_tag>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::read_write_property_map_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/property_map/property_map.hpp:208:7:   required from ‘void boost::ReadWritePropertyMapConcept<PMap, Key>::constraints() [with PMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; Key = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::ReadWritePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::ReadWritePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::ReadWritePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:206:17: note: in a call to non-static member function ‘boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::read_write_property_map_tag>::~ConvertibleConcept()’
  206 |   BOOST_concept(Convertible,(X)(Y))
      |                 ^~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/preprocessor/cat.hpp:29:34: note: in definition of macro ‘BOOST_PP_CAT_I’
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/concept_def.hpp:23:12: note: in expansion of macro ‘BOOST_PP_CAT’
   23 |     struct BOOST_PP_CAT(name,Concept)                                           \
      |            ^~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:206:3: note: in expansion of macro ‘BOOST_concept’
  206 |   BOOST_concept(Convertible,(X)(Y))
      |   ^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<boost::default_color_type>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<boost::default_color_type> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<boost::default_color_type>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:502:1:   required from ‘struct boost::concepts::ColorValue<boost::default_color_type>’
  502 | BOOST_concept(ColorValue, (C))
      |               ^~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:502:1:   required from ‘struct boost::concepts::ColorValueConcept<boost::default_color_type>’
  502 | BOOST_concept(ColorValue, (C))
      |               ^~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::concepts::ColorValueConcept<boost::default_color_type>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::EqualityComparable<TT>::~EqualityComparable() [with TT = boost::default_color_type]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::DefaultConstructible<boost::default_color_type>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::DefaultConstructible<boost::default_color_type> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5:   required from ‘struct boost::DefaultConstructible<boost::default_color_type>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:502:1:   required from ‘struct boost::concepts::ColorValue<boost::default_color_type>’
  502 | BOOST_concept(ColorValue, (C))
      |               ^~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:502:1:   required from ‘struct boost::concepts::ColorValueConcept<boost::default_color_type>’
  502 | BOOST_concept(ColorValue, (C))
      |               ^~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::concepts::ColorValueConcept<boost::default_color_type>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::DefaultConstructible<TT>::~DefaultConstructible() [with TT = boost::default_color_type]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  137 |     BOOST_CONCEPT_USAGE(DefaultConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::concepts::ColorValue<boost::default_color_type>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::concepts::ColorValue<boost::default_color_type> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:505:5:   required from ‘struct boost::concepts::ColorValue<boost::default_color_type>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:502:1:   required from ‘struct boost::concepts::ColorValueConcept<boost::default_color_type>’
  502 | BOOST_concept(ColorValue, (C))
      |               ^~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::concepts::ColorValueConcept<boost::default_color_type>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::concepts::ColorValueConcept<boost::default_color_type> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::concepts::ColorValue<C>::~ColorValue() [with C = boost::default_color_type]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:505:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  505 |     BOOST_CONCEPT_USAGE(ColorValue)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::Ring<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/ring_concept.hpp:48:5:   required from ‘class boost::geometry::concepts::Ring<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::Ring<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::Ring<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::Ring<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::Ring<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/append.hpp:272:30:   required from ‘void boost::geometry::append(Geometry&, const RangeOrPoint&, signed_size_type, signed_size_type) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; RangeOrPoint = std::vector<model::point<double, 2, cs::cartesian>, std::allocator<model::point<double, 2, cs::cartesian> > >; signed_size_type = long int]’
  272 |     concepts::check<Geometry>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:28:26:   required from here
   28 |   boost::geometry::append(domain,points);
      |   ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::Ring<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::geometry::concepts::Ring<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/append.hpp:272:30:   required from ‘void boost::geometry::append(Geometry&, const RangeOrPoint&, signed_size_type, signed_size_type) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; RangeOrPoint = std::vector<model::point<double, 2, cs::cartesian>, std::allocator<model::point<double, 2, cs::cartesian> > >; signed_size_type = long int]’
  272 |     concepts::check<Geometry>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:28:26:   required from here
   28 |   boost::geometry::append(domain,points);
      |   ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::Ring<Geometry>::~Ring() [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/ring_concept.hpp:48:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   48 |     BOOST_CONCEPT_USAGE(Ring)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:128:5:   required from ‘class boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::ConstPoint<Geometry>::~ConstPoint() [with Geometry = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:128:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  128 |     BOOST_CONCEPT_USAGE(ConstPoint)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 13 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::CopyConstructible<TT>::~CopyConstructible() [with TT = __gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  167 |     BOOST_CONCEPT_USAGE(CopyConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::incrementable_traversal_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::incrementable_traversal_tag> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::incrementable_traversal_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::incrementable_traversal_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::incrementable_traversal_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::incrementable_traversal_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::iterators::random_access_traversal_tag; Y = boost::iterators::incrementable_traversal_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::IncrementableIteratorConcept<Iterator>::~IncrementableIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  138 |             BOOST_CONCEPT_USAGE(IncrementableIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::EqualityComparable<TT>::~EqualityComparable() [with TT = __gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::single_pass_traversal_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::single_pass_traversal_tag> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::single_pass_traversal_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::single_pass_traversal_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::single_pass_traversal_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::single_pass_traversal_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::iterators::random_access_traversal_tag; Y = boost::iterators::single_pass_traversal_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 13 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::CopyConstructible<TT>::~CopyConstructible() [with TT = __gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  167 |     BOOST_CONCEPT_USAGE(CopyConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::IncrementableIteratorConcept<Iterator>::~IncrementableIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  138 |             BOOST_CONCEPT_USAGE(IncrementableIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::EqualityComparable<TT>::~EqualityComparable() [with TT = __gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:320:12:   required from ‘struct boost::ForwardRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  320 |     struct ForwardRangeConcept : SinglePassRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12:   required from ‘struct boost::BidirectionalRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12:   required from ‘struct boost::RandomAccessRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::SinglePassRangeConcept<T>::~SinglePassRangeConcept() [with T = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  286 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::DefaultConstructible<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::DefaultConstructible<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5:   required from ‘struct boost::DefaultConstructible<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:183:16:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  183 |         struct ForwardIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::DefaultConstructible<TT>::~DefaultConstructible() [with TT = __gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  137 |     BOOST_CONCEPT_USAGE(DefaultConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::forward_traversal_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::forward_traversal_tag> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::forward_traversal_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::forward_traversal_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::forward_traversal_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::forward_traversal_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::iterators::random_access_traversal_tag; Y = boost::iterators::forward_traversal_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 10 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::ForwardIteratorConcept<Iterator>::~ForwardIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  199 |             BOOST_CONCEPT_USAGE(ForwardIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::DefaultConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::DefaultConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5:   required from ‘struct boost::DefaultConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:183:16:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
  183 |         struct ForwardIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::DefaultConstructible<TT>::~DefaultConstructible() [with TT = __gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  137 |     BOOST_CONCEPT_USAGE(DefaultConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 10 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::ForwardIteratorConcept<Iterator>::~ForwardIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  199 |             BOOST_CONCEPT_USAGE(ForwardIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::bidirectional_traversal_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::bidirectional_traversal_tag> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::bidirectional_traversal_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::bidirectional_traversal_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::bidirectional_traversal_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::bidirectional_traversal_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::iterators::random_access_traversal_tag; Y = boost::iterators::bidirectional_traversal_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14:   required from ‘struct boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 9 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::BidirectionalIteratorConcept<Iterator>::~BidirectionalIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  226 |              BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14:   required from ‘struct boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 9 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::BidirectionalIteratorConcept<Iterator>::~BidirectionalIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  226 |              BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::random_access_traversal_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::random_access_traversal_tag> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::random_access_traversal_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::random_access_traversal_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::random_access_traversal_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Convertible<boost::iterators::random_access_traversal_tag, boost::iterators::random_access_traversal_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 13 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::iterators::random_access_traversal_tag; Y = boost::iterators::random_access_traversal_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14:   required from ‘struct boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::RandomAccessIteratorConcept<Iterator>::~RandomAccessIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  247 |              BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14:   required from ‘struct boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::RandomAccessIteratorConcept<Iterator>::~RandomAccessIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  247 |              BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/ring_concept.hpp:78:5:   required from ‘class boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstRing<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:315:36:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  315 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::ConstRing<Geometry>::~ConstRing() [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/ring_concept.hpp:78:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   78 |     BOOST_CONCEPT_USAGE(ConstRing)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::AreaStrategy<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategy::area::cartesian<> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::AreaStrategy<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategy::area::cartesian<> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/area_concept.hpp:67:5:   required from ‘class boost::geometry::concepts::AreaStrategy<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategy::area::cartesian<> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::AreaStrategy<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategy::area::cartesian<> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::AreaStrategy<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategy::area::cartesian<> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::AreaStrategy<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategy::area::cartesian<> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::AreaStrategy<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategy::area::cartesian<> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:90:9:   required from ‘static typename boost::geometry::detail::area::area_result<Ring, Strategies>::type boost::geometry::detail::area::ring_area::apply(const Ring&, const Strategies&) [with Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategies = boost::geometry::strategies::area::cartesian<>; typename boost::geometry::detail::area::area_result<Ring, Strategies>::type = double]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:236:47:   required from ‘static auto boost::geometry::resolve_strategy::area<boost::geometry::default_strategy, false>::apply(const Geometry&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
  236 |         return dispatch::area<Geometry>::apply(geometry, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:253:55:   required from ‘static auto boost::geometry::resolve_dynamic::area<Geometry, Tag>::apply(const Geometry&, const Strategy&) [with Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  253 |         return resolve_strategy::area<Strategy>::apply(geometry, strategy);
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:319:50:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  319 |     return resolve_dynamic::area<Geometry>::apply(geometry, default_strategy());
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::AreaStrategy<Geometry, Strategy>::~AreaStrategy() [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategy::area::cartesian<>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/area_concept.hpp:67:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   67 |     BOOST_CONCEPT_USAGE(AreaStrategy)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::SinglePassRangeConcept<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   required from ‘typename boost::range_size<const SinglePassRange>::type boost::size(const SinglePassRange&) [with SinglePassRange = geometry::model::ring<geometry::model::point<double, 2, geometry::cs::cartesian> >; typename range_size<const SinglePassRange>::type = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:99:24:   required from ‘static typename boost::geometry::detail::area::area_result<Ring, Strategies>::type boost::geometry::detail::area::ring_area::apply(const Ring&, const Strategies&) [with Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategies = boost::geometry::strategies::area::cartesian<>; typename boost::geometry::detail::area::area_result<Ring, Strategies>::type = double]’
   99 |         if (boost::size(ring) < detail::minimum_ring_size<Ring>::value)
      |             ~~~~~~~~~~~^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:236:47:   required from ‘static auto boost::geometry::resolve_strategy::area<boost::geometry::default_strategy, false>::apply(const Geometry&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
  236 |         return dispatch::area<Geometry>::apply(geometry, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:253:55:   required from ‘static auto boost::geometry::resolve_dynamic::area<Geometry, Tag>::apply(const Geometry&, const Strategy&) [with Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  253 |         return resolve_strategy::area<Strategy>::apply(geometry, strategy);
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/area.hpp:319:50:   required from ‘auto boost::geometry::area(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  319 |     return resolve_dynamic::area<Geometry>::apply(geometry, default_strategy());
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:77:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::SinglePassRangeConcept<T>::~SinglePassRangeConcept() [with T = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  286 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:52:50:   required from ‘struct boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:89:9:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:89:9:   required from ‘boost::concepts::IncidenceGraph<G>::~IncidenceGraph() [with G = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:129:9:   required from ‘void boost::detail::depth_first_visit_impl(const IncidenceGraph&, typename boost::graph_traits<G>::vertex_descriptor, DFSVisitor&, ColorMap, TerminatorFunc) [with IncidenceGraph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; DFSVisitor = components_recorder<int*>; ColorMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; TerminatorFunc = nontruth2; typename boost::graph_traits<G>::vertex_descriptor = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::concepts::MultiPassInputIterator<T>::~MultiPassInputIterator() [with T = boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:52:50: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   52 |     BOOST_concept(MultiPassInputIterator, (T)) { BOOST_CONCEPT_USAGE(
      |                                                  ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::DefaultConstructible<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5:   required from ‘struct boost::DefaultConstructible<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::DefaultConstructible<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::DefaultConstructible<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::DefaultConstructible<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::DefaultConstructible<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:90:9:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::DefaultConstructible<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::DefaultConstructible<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:90:9:   required from ‘boost::concepts::IncidenceGraph<G>::~IncidenceGraph() [with G = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:129:9:   required from ‘void boost::detail::depth_first_visit_impl(const IncidenceGraph&, typename boost::graph_traits<G>::vertex_descriptor, DFSVisitor&, ColorMap, TerminatorFunc) [with IncidenceGraph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; DFSVisitor = components_recorder<int*>; ColorMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; TerminatorFunc = nontruth2; typename boost::graph_traits<G>::vertex_descriptor = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::DefaultConstructible<TT>::~DefaultConstructible() [with TT = boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  137 |     BOOST_CONCEPT_USAGE(DefaultConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::EqualityComparable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::EqualityComparable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::EqualityComparable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::EqualityComparable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:91:9:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::EqualityComparable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:91:9:   required from ‘boost::concepts::IncidenceGraph<G>::~IncidenceGraph() [with G = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:129:9:   required from ‘void boost::detail::depth_first_visit_impl(const IncidenceGraph&, typename boost::graph_traits<G>::vertex_descriptor, DFSVisitor&, ColorMap, TerminatorFunc) [with IncidenceGraph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; DFSVisitor = components_recorder<int*>; ColorMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; TerminatorFunc = nontruth2; typename boost::graph_traits<G>::vertex_descriptor = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::EqualityComparable<TT>::~EqualityComparable() [with TT = boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Assignable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:145:5:   required from ‘struct boost::Assignable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Assignable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Assignable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Assignable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::Assignable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:92:9:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Assignable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::Assignable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:92:9:   required from ‘boost::concepts::IncidenceGraph<G>::~IncidenceGraph() [with G = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:129:9:   required from ‘void boost::detail::depth_first_visit_impl(const IncidenceGraph&, typename boost::graph_traits<G>::vertex_descriptor, DFSVisitor&, ColorMap, TerminatorFunc) [with IncidenceGraph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; DFSVisitor = components_recorder<int*>; ColorMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; TerminatorFunc = nontruth2; typename boost::graph_traits<G>::vertex_descriptor = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Assignable<TT>::~Assignable() [with TT = boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:145:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  145 |     BOOST_CONCEPT_USAGE(Assignable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::undir_adj_list_traversal_tag, boost::incidence_graph_tag> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::undir_adj_list_traversal_tag, boost::incidence_graph_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Convertible<boost::undir_adj_list_traversal_tag, boost::incidence_graph_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Convertible<boost::undir_adj_list_traversal_tag, boost::incidence_graph_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Convertible<boost::undir_adj_list_traversal_tag, boost::incidence_graph_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::Convertible<boost::undir_adj_list_traversal_tag, boost::incidence_graph_tag>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:93:9:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::undir_adj_list_traversal_tag, boost::incidence_graph_tag>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::Convertible<boost::undir_adj_list_traversal_tag, boost::incidence_graph_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:93:9:   required from ‘boost::concepts::IncidenceGraph<G>::~IncidenceGraph() [with G = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:129:9:   required from ‘void boost::detail::depth_first_visit_impl(const IncidenceGraph&, typename boost::graph_traits<G>::vertex_descriptor, DFSVisitor&, ColorMap, TerminatorFunc) [with IncidenceGraph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; DFSVisitor = components_recorder<int*>; ColorMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; TerminatorFunc = nontruth2; typename boost::graph_traits<G>::vertex_descriptor = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::undir_adj_list_traversal_tag; Y = boost::incidence_graph_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::lvalue_property_map_tag, boost::readable_property_map_tag> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::lvalue_property_map_tag, boost::readable_property_map_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:206:3:   required from ‘struct boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::readable_property_map_tag>’
  206 |   BOOST_concept(Convertible,(X)(Y))
      |                 ^~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::readable_property_map_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::readable_property_map_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::readable_property_map_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::lvalue_property_map_tag, boost::readable_property_map_tag>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::readable_property_map_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/property_map/property_map.hpp:148:7:   required from ‘void boost::ReadablePropertyMapConcept<PMap, Key>::constraints() [with PMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; Key = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::ReadablePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::ReadablePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::ReadablePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::ReadablePropertyMapConcept<boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >, long unsigned int>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/property_map/property_map.hpp:206:7:   [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:206:17: note: in a call to non-static member function ‘boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::readable_property_map_tag>::~ConvertibleConcept()’
  206 |   BOOST_concept(Convertible,(X)(Y))
      |                 ^~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/preprocessor/cat.hpp:29:34: note: in definition of macro ‘BOOST_PP_CAT_I’
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/concept_def.hpp:23:12: note: in expansion of macro ‘BOOST_PP_CAT’
   23 |     struct BOOST_PP_CAT(name,Concept)                                           \
      |            ^~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:206:3: note: in expansion of macro ‘BOOST_concept’
  206 |   BOOST_concept(Convertible,(X)(Y))
      |   ^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::lvalue_property_map_tag, boost::read_write_property_map_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::lvalue_property_map_tag, boost::read_write_property_map_tag> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::lvalue_property_map_tag, boost::read_write_property_map_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:206:3:   required from ‘struct boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::read_write_property_map_tag>’
  206 |   BOOST_concept(Convertible,(X)(Y))
      |                 ^~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::read_write_property_map_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::read_write_property_map_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::lvalue_property_map_tag; Y = boost::read_write_property_map_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5:   required from ‘class boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/arithmetic/arithmetic.hpp:46:5:   required from ‘class boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.h:53:8:   required from here
   53 |   Ring domain;
      |        ^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::Point<Geometry>::~Point() [with Geometry = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   74 |     BOOST_CONCEPT_USAGE(Point)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::DefaultConstructible<long unsigned int> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5:   required from ‘struct boost::DefaultConstructible<long unsigned int>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::DefaultConstructible<long unsigned int>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::DefaultConstructible<long unsigned int> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::DefaultConstructible<long unsigned int> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::DefaultConstructible<long unsigned int>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:68:9:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::DefaultConstructible<long unsigned int>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::DefaultConstructible<long unsigned int>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:68:9:   required from ‘boost::concepts::Graph<G>::~Graph() [with G = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48:   required from ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::concepts::Graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::concepts::Graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:66:5:   required from ‘struct boost::concepts::Graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   required from ‘struct boost::concepts::IncidenceGraph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::DefaultConstructible<TT>::~DefaultConstructible() [with TT = long unsigned int]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  137 |     BOOST_CONCEPT_USAGE(DefaultConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<long unsigned int> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<long unsigned int>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::EqualityComparable<long unsigned int>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::EqualityComparable<long unsigned int> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::EqualityComparable<long unsigned int> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::EqualityComparable<long unsigned int>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:69:9:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<long unsigned int>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::EqualityComparable<long unsigned int>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:69:9:   required from ‘boost::concepts::Graph<G>::~Graph() [with G = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48:   required from ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::concepts::Graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::concepts::Graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:66:5:   required from ‘struct boost::concepts::Graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   required from ‘struct boost::concepts::IncidenceGraph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::EqualityComparable<TT>::~EqualityComparable() [with TT = long unsigned int]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::Ring<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::Ring<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/ring_concept.hpp:48:5:   required from ‘class boost::geometry::concepts::Ring<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::Ring<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::Ring<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::Ring<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::Ring<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/append.hpp:272:30:   required from ‘void boost::geometry::append(Geometry&, const RangeOrPoint&, signed_size_type, signed_size_type) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; RangeOrPoint = std::vector<model::point<double, 2, cs::cartesian>, std::allocator<model::point<double, 2, cs::cartesian> > >; signed_size_type = long int]’
  272 |     concepts::check<Geometry>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~^~
habitat.cpp:28:26:   required from here
   28 |   boost::geometry::append(domain,points);
      |   ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::Ring<Geometry>::~Ring() [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/ring_concept.hpp:48:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   48 |     BOOST_CONCEPT_USAGE(Ring)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Assignable<long unsigned int> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:145:5:   required from ‘struct boost::Assignable<long unsigned int>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Assignable<long unsigned int>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Assignable<long unsigned int> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Assignable<long unsigned int> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::Assignable<long unsigned int>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:70:9:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Assignable<long unsigned int>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::Assignable<long unsigned int>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:70:9:   required from ‘boost::concepts::Graph<G>::~Graph() [with G = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48:   required from ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::concepts::Graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::concepts::Graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:66:5:   required from ‘struct boost::concepts::Graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   required from ‘struct boost::concepts::IncidenceGraph<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Assignable<TT>::~Assignable() [with TT = long unsigned int]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:145:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  145 |     BOOST_CONCEPT_USAGE(Assignable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:52:50:   required from ‘struct boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::concepts::MultiPassInputIterator<T>::~MultiPassInputIterator() [with T = boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:52:50: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   52 |     BOOST_concept(MultiPassInputIterator, (T)) { BOOST_CONCEPT_USAGE(
      |                                                  ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::DefaultConstructible<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::DefaultConstructible<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5:   required from ‘struct boost::DefaultConstructible<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::DefaultConstructible<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::DefaultConstructible<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::DefaultConstructible<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::DefaultConstructible<TT>::~DefaultConstructible() [with TT = boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  137 |     BOOST_CONCEPT_USAGE(DefaultConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::EqualityComparable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::EqualityComparable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::EqualityComparable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::EqualityComparable<TT>::~EqualityComparable() [with TT = boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Assignable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Assignable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:145:5:   required from ‘struct boost::Assignable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Assignable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Assignable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Assignable<boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Assignable<TT>::~Assignable() [with TT = boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:145:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  145 |     BOOST_CONCEPT_USAGE(Assignable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::undir_adj_list_traversal_tag, boost::incidence_graph_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::undir_adj_list_traversal_tag, boost::incidence_graph_tag> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::undir_adj_list_traversal_tag, boost::incidence_graph_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Convertible<boost::undir_adj_list_traversal_tag, boost::incidence_graph_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Convertible<boost::undir_adj_list_traversal_tag, boost::incidence_graph_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Convertible<boost::undir_adj_list_traversal_tag, boost::incidence_graph_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::undir_adj_list_traversal_tag; Y = boost::incidence_graph_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::lvalue_property_map_tag, boost::readable_property_map_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::lvalue_property_map_tag, boost::readable_property_map_tag> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::lvalue_property_map_tag, boost::readable_property_map_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:206:3:   required from ‘struct boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::readable_property_map_tag>’
  206 |   BOOST_concept(Convertible,(X)(Y))
      |                 ^~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::readable_property_map_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::ConvertibleConcept<boost::lvalue_property_map_tag, boost::readable_property_map_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 13 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::lvalue_property_map_tag; Y = boost::readable_property_map_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::DefaultConstructible<long unsigned int>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::DefaultConstructible<long unsigned int> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5:   required from ‘struct boost::DefaultConstructible<long unsigned int>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::DefaultConstructible<long unsigned int>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::DefaultConstructible<long unsigned int> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::DefaultConstructible<long unsigned int> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::DefaultConstructible<TT>::~DefaultConstructible() [with TT = long unsigned int]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  137 |     BOOST_CONCEPT_USAGE(DefaultConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<long unsigned int>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<long unsigned int> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<long unsigned int>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::EqualityComparable<long unsigned int>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::EqualityComparable<long unsigned int> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::EqualityComparable<long unsigned int> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::EqualityComparable<TT>::~EqualityComparable() [with TT = long unsigned int]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Assignable<long unsigned int>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Assignable<long unsigned int> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:145:5:   required from ‘struct boost::Assignable<long unsigned int>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Assignable<long unsigned int>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Assignable<long unsigned int> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Assignable<long unsigned int> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Assignable<TT>::~Assignable() [with TT = long unsigned int]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:145:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  145 |     BOOST_CONCEPT_USAGE(Assignable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Assignable<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:145:5:   required from ‘struct boost::Assignable<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:502:3:   required from ‘struct boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >’
  502 |   BOOST_concept(InputIterator,(TT))
      |                 ^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Assignable<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:502:3:   required from ‘struct boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >’
  502 |   BOOST_concept(InputIterator,(TT))
      |                 ^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:512:7:   required from ‘struct boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:53:35:   [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:53:35:   required from ‘boost::concepts::MultiPassInputIterator<T>::~MultiPassInputIterator() [with T = boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:89:9:   required from ‘boost::concepts::IncidenceGraph<G>::~IncidenceGraph() [with G = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::IncidenceGraphConcept<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> >]’
   75 | BOOST_concept(IncidenceGraph, (G)) : Graph< G >
      |               ^~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:129:9:   required from ‘void boost::detail::depth_first_visit_impl(const IncidenceGraph&, typename boost::graph_traits<G>::vertex_descriptor, DFSVisitor&, ColorMap, TerminatorFunc) [with IncidenceGraph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; DFSVisitor = components_recorder<int*>; ColorMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::no_property, long unsigned int> >; TerminatorFunc = nontruth2; typename boost::graph_traits<G>::vertex_descriptor = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::InputIterator<TT>::~InputIterator() [with TT = boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:512:7: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  512 |       BOOST_CONCEPT_USAGE(InputIterator)
      |       ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Assignable<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Assignable<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:145:5:   required from ‘struct boost::Assignable<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:502:3:   required from ‘struct boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >’
  502 |   BOOST_concept(InputIterator,(TT))
      |                 ^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 7 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Assignable<TT>::~Assignable() [with TT = boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:145:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  145 |     BOOST_CONCEPT_USAGE(Assignable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:502:3:   required from ‘struct boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >’
  502 |   BOOST_concept(InputIterator,(TT))
      |                 ^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 7 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::EqualityComparable<TT>::~EqualityComparable() [with TT = boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:512:7:   required from ‘struct boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::InputIterator<TT>::~InputIterator() [with TT = boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:512:7: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  512 |       BOOST_CONCEPT_USAGE(InputIterator)
      |       ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::SignedInteger<long int>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:514:9:   required from ‘boost::InputIterator<TT>::~InputIterator() [with TT = boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:53:35:   required from ‘boost::concepts::MultiPassInputIterator<T>::~MultiPassInputIterator() [with T = boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:89:9:   required from ‘boost::concepts::IncidenceGraph<G>::~IncidenceGraph() [with G = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:107:22: note: in a call to non-static member function ‘boost::SignedInteger<long int>::~SignedInteger()’
  107 |   template <> struct SignedInteger<long> {};
      |                      ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>, std::input_iterator_tag> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>, std::input_iterator_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Convertible<boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>, std::input_iterator_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Convertible<boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>, std::input_iterator_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Convertible<boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>, std::input_iterator_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::Convertible<boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>, std::input_iterator_tag>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:515:9:   [ skipping 7 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>, std::input_iterator_tag>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::Convertible<boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>, std::input_iterator_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:515:9:   required from ‘boost::InputIterator<TT>::~InputIterator() [with TT = boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::InputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:53:35:   required from ‘boost::concepts::MultiPassInputIterator<T>::~MultiPassInputIterator() [with T = boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::MultiPassInputIterator<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>*, std::vector<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property>, std::allocator<boost::detail::stored_edge_iter<long unsigned int, std::_List_iterator<boost::list_edge<long unsigned int, boost::no_property> >, boost::no_property> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>, long int> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:89:9:   required from ‘boost::concepts::IncidenceGraph<G>::~IncidenceGraph() [with G = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/graph_concepts.hpp:75:1:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>; Y = std::input_iterator_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::Convertible<boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>, std::input_iterator_tag>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::Convertible<boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>, std::input_iterator_tag> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5:   required from ‘struct boost::Convertible<boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>, std::input_iterator_tag>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::Convertible<boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>, std::input_iterator_tag>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::Convertible<boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>, std::input_iterator_tag> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::Convertible<boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>, std::input_iterator_tag> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:286:39:   required from ‘void boost::depth_first_search(const VertexListGraph&, DFSVisitor, ColorMap, typename graph_traits<G>::vertex_descriptor) [with VertexListGraph = adjacency_list<vecS, vecS, undirectedS>; DFSVisitor = detail::components_recorder<int*>; ColorMap = shared_array_property_map<default_color_type, vec_adj_list_vertex_id_map<no_property, long unsigned int> >; typename graph_traits<G>::vertex_descriptor = long unsigned int]’
  286 |         detail::depth_first_visit_impl(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  287 |             g, start_vertex, vis, color, detail::nontruth2());
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:397:42:   required from ‘void boost::graph::detail::depth_first_search_impl<Graph>::operator()(const Graph&, const ArgPack&) const [with ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>]’
  397 |                 boost::depth_first_search(g,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
  398 |                     arg_pack[_visitor | make_dfs_visitor(null_visitor())],
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  399 |                     boost::detail::make_color_map_from_arg_pack(g, arg_pack),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400 |                     arg_pack[_root_vertex
      |                     ~~~~~~~~~~~~~~~~~~~~~ 
  401 |                         || boost::detail::get_default_starting_vertex_t<
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  402 |                             Graph >(g)]);
      |                             ~~~~~~~~~~~~  
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:406:5:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type boost::graph::depth_first_search_with_named_params(const Param0&, const ArgPack&) [with Param0 = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>; ArgPack = boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<keywords::tag::visitor, const boost::detail::components_recorder<int*> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >; typename boost::result_of<detail::depth_first_search_impl<Param0>(Param0, const ArgPack&)>::type = void]’
  680 |         return detail::BOOST_PP_CAT(                                          \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |             name, _impl)< BOOST_PP_ENUM_PARAMS(nfixed, Param) >()(            \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  682 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)     \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 arg_pack);                                                    \
      |                 ~~~~~~~~~                                         
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/depth_first_search.hpp:409:1:   required from ‘typename boost::result_of<boost::graph::detail::depth_first_search_impl<Param0>(Param0, const typename boost::detail::convert_bgl_params_to_boost_parameter<boost::bgl_named_params<T, Tag, Base> >::type&)>::type boost::depth_first_search(const Param0&, const bgl_named_params<T, Tag, Base>&) [with Param0 = adjacency_list<vecS, vecS, undirectedS>; P = detail::components_recorder<int*>; T = graph_visitor_t; R = no_property; typename result_of<graph::detail::depth_first_search_impl<Param0>(Param0, const typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type&)>::type = void; typename detail::convert_bgl_params_to_boost_parameter<bgl_named_params<T, Tag, Base> >::type = parameter::aux::arg_list<parameter::aux::tagged_argument<graph::keywords::tag::visitor, const detail::components_recorder<int*> >, parameter::aux::empty_arg_list, std::integral_constant<bool, true> >]’
  730 |         return ::boost::graph::BOOST_PP_CAT(name, _with_named_params)(         \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  731 |             BOOST_PP_ENUM_PARAMS(nfixed, param) BOOST_PP_COMMA_IF(nfixed)      \
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 arg_pack);                                                     \
      |                 ~~~~~~~~~                                             
/data/gannet/ripley/R/test-dev/BH/include/boost/graph/connected_components.hpp:106:23:   required from ‘typename boost::property_traits<IndexMap>::value_type boost::connected_components(const Graph&, ComponentMap, typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type) [with Graph = adjacency_list<vecS, vecS, undirectedS>; ComponentMap = int*; typename property_traits<IndexMap>::value_type = int; typename enable_if_c<is_base_and_derived<vertex_list_graph_tag, typename graph_traits<G>::traversal_category>::value, graph::detail::no_parameter>::type = graph::detail::no_parameter; typename graph_traits<G>::traversal_category = undir_adj_list_traversal_tag]’
  106 |     depth_first_search(g, visitor(vis));
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
graph.cpp:188:31:   required from here
  188 |   return (connected_components(testG,&component[0])==1);
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::iterators::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::iterators::random_access_traversal_tag>; Y = std::input_iterator_tag]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::WithinStrategyPolygonal<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategies::relate::cartesian<> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/within_concept.hpp:168:5:   required from ‘class boost::geometry::concepts::WithinStrategyPolygonal<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategies::relate::cartesian<> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::WithinStrategyPolygonal<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategies::relate::cartesian<> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::WithinStrategyPolygonal<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategies::relate::cartesian<> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::WithinStrategyPolygonal<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategies::relate::cartesian<> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/within_concept.hpp:376:11:   required from ‘void boost::geometry::concepts::within::check() [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>]’
  376 |         > c;
      |           ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:66:64:   required from ‘static bool boost::geometry::resolve_strategy::covered_by<Strategy, IsUmbrella>::apply(const Geometry1&, const Geometry2&, const Strategy&) [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>; bool IsUmbrella = true]’
   66 |         concepts::within::check<Geometry1, Geometry2, Strategy>();
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:113:21:   required from ‘static bool boost::geometry::resolve_strategy::covered_by<boost::geometry::default_strategy, false>::apply(const Geometry1&, const Geometry2&, boost::geometry::default_strategy) [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
  110 |         return covered_by
      |                ~~~~~~~~~~
  111 |             <
      |             ~        
  112 |                 strategy_type
      |                 ~~~~~~~~~~~~~
  113 |             >::apply(geometry1, geometry2, strategy_type());
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:138:21:   required from ‘static bool boost::geometry::resolve_dynamic::covered_by<Geometry1, Geometry2, Tag1, Tag2>::apply(const Geometry1&, const Geometry2&, const Strategy&) [with Strategy = boost::geometry::default_strategy; Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag1 = boost::geometry::point_tag; Tag2 = boost::geometry::ring_tag]’
  135 |         return resolve_strategy::covered_by
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  136 |             <
      |             ~        
  137 |                 Strategy
      |                 ~~~~~~~~
  138 |             >::apply(geometry1, geometry2, strategy);
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:230:17:   required from ‘bool boost::geometry::covered_by(const Geometry1&, const Geometry2&) [with Geometry1 = model::point<double, 2, cs::cartesian>; Geometry2 = model::ring<model::point<double, 2, cs::cartesian> >]’
  227 |     return resolve_dynamic::covered_by
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  228 |         <
      |         ~        
  229 |             Geometry1, Geometry2
      |             ~~~~~~~~~~~~~~~~~~~~
  230 |         >::apply(geometry1, geometry2, default_strategy());
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:46:38:   required from here
   46 |   return (boost::geometry::covered_by(Point(x,y),domain));
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::WithinStrategyPolygonal<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategies::relate::cartesian<> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::geometry::concepts::WithinStrategyPolygonal<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategies::relate::cartesian<> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/within_concept.hpp:340:5:   required from ‘struct boost::geometry::concepts::within::dispatch::check_within<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::point_tag, boost::geometry::ring_tag, boost::geometry::areal_tag, boost::geometry::strategies::relate::cartesian<> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/within_concept.hpp:376:11:   required from ‘void boost::geometry::concepts::within::check() [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>]’
  376 |         > c;
      |           ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:66:64:   required from ‘static bool boost::geometry::resolve_strategy::covered_by<Strategy, IsUmbrella>::apply(const Geometry1&, const Geometry2&, const Strategy&) [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>; bool IsUmbrella = true]’
   66 |         concepts::within::check<Geometry1, Geometry2, Strategy>();
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:113:21:   required from ‘static bool boost::geometry::resolve_strategy::covered_by<boost::geometry::default_strategy, false>::apply(const Geometry1&, const Geometry2&, boost::geometry::default_strategy) [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
  110 |         return covered_by
      |                ~~~~~~~~~~
  111 |             <
      |             ~        
  112 |                 strategy_type
      |                 ~~~~~~~~~~~~~
  113 |             >::apply(geometry1, geometry2, strategy_type());
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:138:21:   required from ‘static bool boost::geometry::resolve_dynamic::covered_by<Geometry1, Geometry2, Tag1, Tag2>::apply(const Geometry1&, const Geometry2&, const Strategy&) [with Strategy = boost::geometry::default_strategy; Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag1 = boost::geometry::point_tag; Tag2 = boost::geometry::ring_tag]’
  135 |         return resolve_strategy::covered_by
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  136 |             <
      |             ~        
  137 |                 Strategy
      |                 ~~~~~~~~
  138 |             >::apply(geometry1, geometry2, strategy);
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:230:17:   required from ‘bool boost::geometry::covered_by(const Geometry1&, const Geometry2&) [with Geometry1 = model::point<double, 2, cs::cartesian>; Geometry2 = model::ring<model::point<double, 2, cs::cartesian> >]’
  227 |     return resolve_dynamic::covered_by
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  228 |         <
      |         ~        
  229 |             Geometry1, Geometry2
      |             ~~~~~~~~~~~~~~~~~~~~
  230 |         >::apply(geometry1, geometry2, default_strategy());
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:46:38:   required from here
   46 |   return (boost::geometry::covered_by(Point(x,y),domain));
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::WithinStrategyPolygonal<Point, Polygonal, Strategy>::~WithinStrategyPolygonal() [with Point = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Polygonal = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/within_concept.hpp:168:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  168 |     BOOST_CONCEPT_USAGE(WithinStrategyPolygonal)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::WithinStrategyPolygonal<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategies::relate::cartesian<> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::WithinStrategyPolygonal<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategies::relate::cartesian<> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/within_concept.hpp:168:5:   required from ‘class boost::geometry::concepts::WithinStrategyPolygonal<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategies::relate::cartesian<> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::WithinStrategyPolygonal<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategies::relate::cartesian<> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::WithinStrategyPolygonal<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategies::relate::cartesian<> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::WithinStrategyPolygonal<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategies::relate::cartesian<> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/within_concept.hpp:376:11:   required from ‘void boost::geometry::concepts::within::check() [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>]’
  376 |         > c;
      |           ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:66:64:   required from ‘static bool boost::geometry::resolve_strategy::covered_by<Strategy, IsUmbrella>::apply(const Geometry1&, const Geometry2&, const Strategy&) [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>; bool IsUmbrella = true]’
   66 |         concepts::within::check<Geometry1, Geometry2, Strategy>();
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:113:21:   required from ‘static bool boost::geometry::resolve_strategy::covered_by<boost::geometry::default_strategy, false>::apply(const Geometry1&, const Geometry2&, boost::geometry::default_strategy) [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
  110 |         return covered_by
      |                ~~~~~~~~~~
  111 |             <
      |             ~        
  112 |                 strategy_type
      |                 ~~~~~~~~~~~~~
  113 |             >::apply(geometry1, geometry2, strategy_type());
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:138:21:   required from ‘static bool boost::geometry::resolve_dynamic::covered_by<Geometry1, Geometry2, Tag1, Tag2>::apply(const Geometry1&, const Geometry2&, const Strategy&) [with Strategy = boost::geometry::default_strategy; Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag1 = boost::geometry::point_tag; Tag2 = boost::geometry::ring_tag]’
  135 |         return resolve_strategy::covered_by
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  136 |             <
      |             ~        
  137 |                 Strategy
      |                 ~~~~~~~~
  138 |             >::apply(geometry1, geometry2, strategy);
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:230:17:   required from ‘bool boost::geometry::covered_by(const Geometry1&, const Geometry2&) [with Geometry1 = model::point<double, 2, cs::cartesian>; Geometry2 = model::ring<model::point<double, 2, cs::cartesian> >]’
  227 |     return resolve_dynamic::covered_by
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  228 |         <
      |         ~        
  229 |             Geometry1, Geometry2
      |             ~~~~~~~~~~~~~~~~~~~~
  230 |         >::apply(geometry1, geometry2, default_strategy());
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:46:38:   required from here
   46 |   return (boost::geometry::covered_by(Point(x,y),domain));
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::WithinStrategyPolygonal<Point, Polygonal, Strategy>::~WithinStrategyPolygonal() [with Point = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Polygonal = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/within_concept.hpp:168:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  168 |     BOOST_CONCEPT_USAGE(WithinStrategyPolygonal)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::SinglePassRangeConcept<boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:163:25:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  160 |         if (detail::num_distinct_consecutive_points
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  161 |                 <
      |                 ~        
  162 |                     decltype(view), 4u, true
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~
  163 |                 >::apply(view, strategy)
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::SinglePassRangeConcept<boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   required from ‘typename boost::range_size<const SinglePassRange>::type boost::size(const SinglePassRange&) [with SinglePassRange = geometry::detail::closed_view<const geometry::model::ring<geometry::model::point<double, 2, geometry::cs::cartesian> >, boost::geometry::closed>; typename range_size<const SinglePassRange>::type = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/num_distinct_consecutive_points.hpp:54:45:   required from ‘static std::size_t boost::geometry::detail::num_distinct_consecutive_points<Range, MaximumNumber, AllowDuplicates>::apply(const Range&, const Strategy&) [with Strategy = boost::geometry::strategies::relate::cartesian<>; Range = const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>; long unsigned int MaximumNumber = 4; bool AllowDuplicates = true; std::size_t = long unsigned int]’
   54 |         std::size_t const size = boost::size(range);
      |                                  ~~~~~~~~~~~^~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:163:25:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  160 |         if (detail::num_distinct_consecutive_points
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  161 |                 <
      |                 ~        
  162 |                     decltype(view), 4u, true
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~
  163 |                 >::apply(view, strategy)
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::SinglePassRangeConcept<T>::~SinglePassRangeConcept() [with T = boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  286 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:320:12:   required from ‘struct boost::ForwardRangeConcept<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&>’
  320 |     struct ForwardRangeConcept : SinglePassRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12:   required from ‘struct boost::BidirectionalRangeConcept<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&>’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::BidirectionalRangeConcept<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::BidirectionalRangeConcept<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:171:49:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  171 |             is_topologically_closed<Ring>::apply(ring, visitor, strategy)
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::BidirectionalRangeConcept<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/util/range.hpp:133:5:   required from ‘typename boost::range_reference<T>::type boost::geometry::range::back(BidirectionalRange&&) [with BidirectionalRange = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&; typename boost::range_reference<T>::type = const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>&]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:83:63:   required from ‘static bool boost::geometry::detail::is_valid::is_topologically_closed<Ring, boost::geometry::closed>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   83 |         if (equals_point_point(range::front(ring), range::back(ring), strategy))
      |                                                    ~~~~~~~~~~~^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:171:49:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  171 |             is_topologically_closed<Ring>::apply(ring, visitor, strategy)
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12: note: in a call to non-static member function ‘boost::BidirectionalRangeConcept<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&>::~BidirectionalRangeConcept()’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:320:12:   required from ‘struct boost::ForwardRangeConcept<const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&>’
  320 |     struct ForwardRangeConcept : SinglePassRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12:   required from ‘struct boost::BidirectionalRangeConcept<const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&>’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::BidirectionalRangeConcept<const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::BidirectionalRangeConcept<const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:173:41:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  173 |             && ! has_spikes<Ring>::apply(ring, visitor, strategy)
      |                  ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::BidirectionalRangeConcept<const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/util/range.hpp:133:5:   required from ‘typename boost::range_reference<T>::type boost::geometry::range::back(BidirectionalRange&&) [with BidirectionalRange = const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&; typename boost::range_reference<T>::type = const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>&]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/has_spikes.hpp:137:71:   required from ‘static bool boost::geometry::detail::is_valid::has_spikes<Range>::apply(const Range&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Range = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
  137 |         if (equals::equals_point_point(range::front(view), range::back(view),
      |                                                            ~~~~~~~~~~~^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:173:41:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  173 |             && ! has_spikes<Ring>::apply(ring, visitor, strategy)
      |                  ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12: note: in a call to non-static member function ‘boost::BidirectionalRangeConcept<const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&>::~BidirectionalRangeConcept()’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:163:25:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  160 |         if (detail::num_distinct_consecutive_points
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  161 |                 <
      |                 ~        
  162 |                     decltype(view), 4u, true
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~
  163 |                 >::apply(view, strategy)
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::SinglePassRangeConcept<T>::~SinglePassRangeConcept() [with T = boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  286 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:320:12:   required from ‘struct boost::ForwardRangeConcept<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&>’
  320 |     struct ForwardRangeConcept : SinglePassRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12:   required from ‘struct boost::BidirectionalRangeConcept<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&>’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::BidirectionalRangeConcept<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:171:49:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  171 |             is_topologically_closed<Ring>::apply(ring, visitor, strategy)
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::SinglePassRangeConcept<T>::~SinglePassRangeConcept() [with T = const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >&]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  286 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:320:12:   required from ‘struct boost::ForwardRangeConcept<const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&>’
  320 |     struct ForwardRangeConcept : SinglePassRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12:   required from ‘struct boost::BidirectionalRangeConcept<const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&>’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::BidirectionalRangeConcept<const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:173:41:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  173 |             && ! has_spikes<Ring>::apply(ring, visitor, strategy)
      |                  ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::SinglePassRangeConcept<T>::~SinglePassRangeConcept() [with T = const boost::geometry::detail::closed_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed>&]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  286 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:128:5:   required from ‘class boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/within_concept.hpp:122:13:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/within_concept.hpp:376:11:   required from ‘void boost::geometry::concepts::within::check() [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>]’
  376 |         > c;
      |           ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:66:64:   required from ‘static bool boost::geometry::resolve_strategy::covered_by<Strategy, IsUmbrella>::apply(const Geometry1&, const Geometry2&, const Strategy&) [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>; bool IsUmbrella = true]’
   66 |         concepts::within::check<Geometry1, Geometry2, Strategy>();
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:113:21:   required from ‘static bool boost::geometry::resolve_strategy::covered_by<boost::geometry::default_strategy, false>::apply(const Geometry1&, const Geometry2&, boost::geometry::default_strategy) [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
  110 |         return covered_by
      |                ~~~~~~~~~~
  111 |             <
      |             ~        
  112 |                 strategy_type
      |                 ~~~~~~~~~~~~~
  113 |             >::apply(geometry1, geometry2, strategy_type());
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:138:21:   required from ‘static bool boost::geometry::resolve_dynamic::covered_by<Geometry1, Geometry2, Tag1, Tag2>::apply(const Geometry1&, const Geometry2&, const Strategy&) [with Strategy = boost::geometry::default_strategy; Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag1 = boost::geometry::point_tag; Tag2 = boost::geometry::ring_tag]’
  135 |         return resolve_strategy::covered_by
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  136 |             <
      |             ~        
  137 |                 Strategy
      |                 ~~~~~~~~
  138 |             >::apply(geometry1, geometry2, strategy);
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:230:17:   required from ‘bool boost::geometry::covered_by(const Geometry1&, const Geometry2&) [with Geometry1 = model::point<double, 2, cs::cartesian>; Geometry2 = model::ring<model::point<double, 2, cs::cartesian> >]’
  227 |     return resolve_dynamic::covered_by
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  228 |         <
      |         ~        
  229 |             Geometry1, Geometry2
      |             ~~~~~~~~~~~~~~~~~~~~
  230 |         >::apply(geometry1, geometry2, default_strategy());
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:46:38:   required from here
   46 |   return (boost::geometry::covered_by(Point(x,y),domain));
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/within_concept.hpp:122:13:   required from ‘static void boost::geometry::concepts::WithinStrategyPolygonal<Point, Polygonal, Strategy>::checker::apply(ApplyMethod, ResultMethod) [with ApplyMethod = bool (*)(const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>&, const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>&, const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>&, boost::geometry::strategy::within::detail::cartesian_winding_base<boost::geometry::strategy::side::side_by_triangle<void>, void>::counter&); ResultMethod = int (*)(const boost::geometry::strategy::within::detail::cartesian_winding_base<boost::geometry::strategy::side::side_by_triangle<void>, void>::counter&); Point = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Polygonal = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/within_concept.hpp:170:23:   required from ‘boost::geometry::concepts::WithinStrategyPolygonal<Point, Polygonal, Strategy>::~WithinStrategyPolygonal() [with Point = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Polygonal = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>]’
  170 |         checker::apply(&strategy_type::template apply<Point, point_of_segment>,
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  171 |                        &strategy_type::result);
      |                        ~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::geometry::concepts::WithinStrategyPolygonal<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::strategies::relate::cartesian<> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/within_concept.hpp:340:5:   required from ‘struct boost::geometry::concepts::within::dispatch::check_within<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::point_tag, boost::geometry::ring_tag, boost::geometry::areal_tag, boost::geometry::strategies::relate::cartesian<> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/within_concept.hpp:376:11:   required from ‘void boost::geometry::concepts::within::check() [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>]’
  376 |         > c;
      |           ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:66:64:   required from ‘static bool boost::geometry::resolve_strategy::covered_by<Strategy, IsUmbrella>::apply(const Geometry1&, const Geometry2&, const Strategy&) [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>; bool IsUmbrella = true]’
   66 |         concepts::within::check<Geometry1, Geometry2, Strategy>();
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:113:21:   required from ‘static bool boost::geometry::resolve_strategy::covered_by<boost::geometry::default_strategy, false>::apply(const Geometry1&, const Geometry2&, boost::geometry::default_strategy) [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
  110 |         return covered_by
      |                ~~~~~~~~~~
  111 |             <
      |             ~        
  112 |                 strategy_type
      |                 ~~~~~~~~~~~~~
  113 |             >::apply(geometry1, geometry2, strategy_type());
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:138:21:   required from ‘static bool boost::geometry::resolve_dynamic::covered_by<Geometry1, Geometry2, Tag1, Tag2>::apply(const Geometry1&, const Geometry2&, const Strategy&) [with Strategy = boost::geometry::default_strategy; Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag1 = boost::geometry::point_tag; Tag2 = boost::geometry::ring_tag]’
  135 |         return resolve_strategy::covered_by
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  136 |             <
      |             ~        
  137 |                 Strategy
      |                 ~~~~~~~~
  138 |             >::apply(geometry1, geometry2, strategy);
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:230:17:   required from ‘bool boost::geometry::covered_by(const Geometry1&, const Geometry2&) [with Geometry1 = model::point<double, 2, cs::cartesian>; Geometry2 = model::ring<model::point<double, 2, cs::cartesian> >]’
  227 |     return resolve_dynamic::covered_by
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  228 |         <
      |         ~        
  229 |             Geometry1, Geometry2
      |             ~~~~~~~~~~~~~~~~~~~~
  230 |         >::apply(geometry1, geometry2, default_strategy());
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:46:38:   required from here
   46 |   return (boost::geometry::covered_by(Point(x,y),domain));
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::ConstPoint<Geometry>::~ConstPoint() [with Geometry = const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:128:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  128 |     BOOST_CONCEPT_USAGE(ConstPoint)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:128:5:   required from ‘class boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/concepts/within_concept.hpp:376:11:   required from ‘void boost::geometry::concepts::within::check() [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>]’
  376 |         > c;
      |           ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:66:64:   required from ‘static bool boost::geometry::resolve_strategy::covered_by<Strategy, IsUmbrella>::apply(const Geometry1&, const Geometry2&, const Strategy&) [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>; bool IsUmbrella = true]’
   66 |         concepts::within::check<Geometry1, Geometry2, Strategy>();
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:113:21:   required from ‘static bool boost::geometry::resolve_strategy::covered_by<boost::geometry::default_strategy, false>::apply(const Geometry1&, const Geometry2&, boost::geometry::default_strategy) [with Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
  110 |         return covered_by
      |                ~~~~~~~~~~
  111 |             <
      |             ~        
  112 |                 strategy_type
      |                 ~~~~~~~~~~~~~
  113 |             >::apply(geometry1, geometry2, strategy_type());
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:138:21:   required from ‘static bool boost::geometry::resolve_dynamic::covered_by<Geometry1, Geometry2, Tag1, Tag2>::apply(const Geometry1&, const Geometry2&, const Strategy&) [with Strategy = boost::geometry::default_strategy; Geometry1 = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag1 = boost::geometry::point_tag; Tag2 = boost::geometry::ring_tag]’
  135 |         return resolve_strategy::covered_by
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  136 |             <
      |             ~        
  137 |                 Strategy
      |                 ~~~~~~~~
  138 |             >::apply(geometry1, geometry2, strategy);
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/covered_by/interface.hpp:230:17:   required from ‘bool boost::geometry::covered_by(const Geometry1&, const Geometry2&) [with Geometry1 = model::point<double, 2, cs::cartesian>; Geometry2 = model::ring<model::point<double, 2, cs::cartesian> >]’
  227 |     return resolve_dynamic::covered_by
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  228 |         <
      |         ~        
  229 |             Geometry1, Geometry2
      |             ~~~~~~~~~~~~~~~~~~~~
  230 |         >::apply(geometry1, geometry2, default_strategy());
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:46:38:   required from here
   46 |   return (boost::geometry::covered_by(Point(x,y),domain));
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::ConstPoint<Geometry>::~ConstPoint() [with Geometry = const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:128:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  128 |     BOOST_CONCEPT_USAGE(ConstPoint)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::SinglePassRangeConcept<boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::SinglePassRangeConcept<boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   required from ‘typename boost::range_size<const SinglePassRange>::type boost::size(const SinglePassRange&) [with SinglePassRange = geometry::detail::closed_clockwise_view<const geometry::model::ring<geometry::model::point<double, 2, geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise>; typename range_size<const SinglePassRange>::type = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/sections/sectionalize.hpp:564:42:   required from ‘static void boost::geometry::detail::sectionalize::sectionalize_range<Closure, Reverse, DimensionVector>::apply(const Range&, Sections&, const Strategy&, boost::geometry::ring_identifier, std::size_t) [with Range = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Sections = boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; Strategy = boost::geometry::strategies::relate::cartesian<>; boost::geometry::closure_selector Closure = boost::geometry::closed; bool Reverse = false; DimensionVector = std::integer_sequence<long unsigned int, 0, 1>; std::size_t = long unsigned int]’
  564 |         std::size_t const n = boost::size(view);
      |                               ~~~~~~~~~~~^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/sections/sectionalize.hpp:879:17:   required from ‘void boost::geometry::sectionalize(const Geometry&, Sections&, const Strategy&, int, std::size_t) [with bool Reverse = false; DimensionVector = std::integer_sequence<long unsigned int, 0, 1>; Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Sections = sections<model::box<model::point<double, 2, cs::cartesian> >, 2>; Strategy = strategies::relate::cartesian<>; std::size_t = long unsigned int]’
  873 |     dispatch::sectionalize
      |     ~~~~~~~~~~~~~~~~~~~~~~
  874 |         <
      |         ~        
  875 |             tag_t<Geometry>,
      |             ~~~~~~~~~~~~~~~~
  876 |             Geometry,
      |             ~~~~~~~~~
  877 |             Reverse,
      |             ~~~~~~~~
  878 |             DimensionVector
      |             ~~~~~~~~~~~~~~~
  879 |         >::apply(geometry, sections,
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~
  880 |                  strategy,
      |                  ~~~~~~~~~
  881 |                  ring_id, max_count);
      |                  ~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp:143:52:   required from ‘static bool boost::geometry::detail::self_get_turn_points::get_turns<Reverse, TurnPolicy>::apply(const Geometry&, const Strategy&, Turns&, InterruptPolicy&, int, bool) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>; Turns = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >; InterruptPolicy = boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true>; bool Reverse = false; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>]’
  143 |         geometry::sectionalize<Reverse, dimensions>(geometry,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
  144 |                                                     sec, strategy);
      |                                                     ~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp:294:25:   required from ‘static void boost::geometry::resolve_strategy::self_get_turn_points<Reverse, AssignPolicy, Strategies, IsUmbrella>::apply(const Geometry&, const Strategies&, Turns&, InterruptPolicy&, int, bool) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Turns = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >; InterruptPolicy = boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true>; bool Reverse = false; AssignPolicy = boost::geometry::detail::overlay::assign_null_policy; Strategies = boost::geometry::strategies::relate::cartesian<>; bool IsUmbrella = true]’
  288 |         dispatch::self_get_turn_points
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  289 |                 <
      |                 ~        
  290 |                     Reverse,
      |                     ~~~~~~~~
  291 |                     tag_t<Geometry>,
      |                     ~~~~~~~~~~~~~~~~
  292 |                     Geometry,
      |                     ~~~~~~~~~
  293 |                     turn_policy
      |                     ~~~~~~~~~~~
  294 |                 >::apply(geometry, strategies, turns, interrupt_policy,
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  295 |                          source_index, skip_adjacent);
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp:362:21:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::SinglePassRangeConcept<T>::~SinglePassRangeConcept() [with T = boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  286 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = std::conditional<false, boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/segment.hpp:90:5:   required from ‘class boost::geometry::model::referring_segment<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/sections/sectionalize.hpp:423:50:   required from ‘static void boost::geometry::detail::sectionalize::sectionalize_part<DimensionVector>::apply(Sections&, Iterator, Iterator, const Strategy&, boost::geometry::ring_identifier, std::size_t) [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >; Sections = boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; Strategy = boost::geometry::strategies::relate::cartesian<>; DimensionVector = std::integer_sequence<long unsigned int, 0, 1>; std::size_t = long unsigned int]’
  423 |             model::referring_segment<point_type> segment(previous_point, current_point);
      |                                                  ^~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/sections/sectionalize.hpp:577:50:   required from ‘static void boost::geometry::detail::sectionalize::sectionalize_range<Closure, Reverse, DimensionVector>::apply(const Range&, Sections&, const Strategy&, boost::geometry::ring_identifier, std::size_t) [with Range = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Sections = boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; Strategy = boost::geometry::strategies::relate::cartesian<>; boost::geometry::closure_selector Closure = boost::geometry::closed; bool Reverse = false; DimensionVector = std::integer_sequence<long unsigned int, 0, 1>; std::size_t = long unsigned int]’
  577 |         sectionalize_part<DimensionVector>::apply(sections,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
  578 |             boost::begin(view), boost::end(view),
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  579 |             strategy,
      |             ~~~~~~~~~                             
  580 |             ring_id, max_count);
      |             ~~~~~~~~~~~~~~~~~~~                   
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/sections/sectionalize.hpp:879:17:   required from ‘void boost::geometry::sectionalize(const Geometry&, Sections&, const Strategy&, int, std::size_t) [with bool Reverse = false; DimensionVector = std::integer_sequence<long unsigned int, 0, 1>; Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Sections = sections<model::box<model::point<double, 2, cs::cartesian> >, 2>; Strategy = strategies::relate::cartesian<>; std::size_t = long unsigned int]’
  873 |     dispatch::sectionalize
      |     ~~~~~~~~~~~~~~~~~~~~~~
  874 |         <
      |         ~        
  875 |             tag_t<Geometry>,
      |             ~~~~~~~~~~~~~~~~
  876 |             Geometry,
      |             ~~~~~~~~~
  877 |             Reverse,
      |             ~~~~~~~~
  878 |             DimensionVector
      |             ~~~~~~~~~~~~~~~
  879 |         >::apply(geometry, sections,
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~
  880 |                  strategy,
      |                  ~~~~~~~~~
  881 |                  ring_id, max_count);
      |                  ~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp:143:52:   required from ‘static bool boost::geometry::detail::self_get_turn_points::get_turns<Reverse, TurnPolicy>::apply(const Geometry&, const Strategy&, Turns&, InterruptPolicy&, int, bool) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>; Turns = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >; InterruptPolicy = boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true>; bool Reverse = false; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>]’
  143 |         geometry::sectionalize<Reverse, dimensions>(geometry,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
  144 |                                                     sec, strategy);
      |                                                     ~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp:294:25:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/include/c++/15/bits/cpp_type_traits.h:42,
                 from /usr/include/c++/15/cmath:49,
                 from util.h:8:
/usr/include/c++/15/type_traits:2466:12: note: in a call to non-static member function ‘std::conditional<false, boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::concepts::ConstPoint<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::~conditional()’
 2466 |     struct conditional<false, _Iftrue, _Iffalse>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:280:9:   [ skipping 13 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:280:9:   required from ‘struct boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:283:9:   [ skipping 13 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:283:9:   required from ‘struct boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   required from ‘typename boost::range_size<const SinglePassRange>::type boost::size(const SinglePassRange&) [with SinglePassRange = geometry::sections<geometry::model::box<geometry::model::point<double, 2, geometry::cs::cartesian> >, 2>; typename range_size<const SinglePassRange>::type = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/partition.hpp:678:36:   required from ‘static bool boost::geometry::partition<Box, IncludePolicy1, IncludePolicy2>::apply(const ForwardRange&, VisitPolicy&, const ExpandPolicy&, const OverlapsPolicy&, std::size_t, VisitBoxPolicy) [with ForwardRange = boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; VisitPolicy = boost::geometry::detail::self_get_turn_points::self_section_visitor<false, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >, boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>, boost::geometry::strategies::relate::cartesian<>, boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true> >; ExpandPolicy = boost::geometry::detail::section::get_section_box<boost::geometry::strategies::relate::cartesian<> >; OverlapsPolicy = boost::geometry::detail::section::overlaps_section_box<boost::geometry::strategies::relate::cartesian<> >; VisitBoxPolicy = boost::geometry::detail::partition::visit_no_policy; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; IncludePolicy1 = boost::geometry::detail::partition::include_all_policy; IncludePolicy2 = boost::geometry::detail::partition::include_all_policy; std::size_t = long unsigned int]’
  678 |         if (std::size_t(boost::size(forward_range)) > min_elements)
      |                         ~~~~~~~~~~~^~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/partition.hpp:637:21:   required from ‘static bool boost::geometry::partition<Box, IncludePolicy1, IncludePolicy2>::apply(const ForwardRange&, VisitPolicy&, const ExpandPolicy&, const OverlapsPolicy&) [with ForwardRange = boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; VisitPolicy = boost::geometry::detail::self_get_turn_points::self_section_visitor<false, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >, boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>, boost::geometry::strategies::relate::cartesian<>, boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true> >; ExpandPolicy = boost::geometry::detail::section::get_section_box<boost::geometry::strategies::relate::cartesian<> >; OverlapsPolicy = boost::geometry::detail::section::overlaps_section_box<boost::geometry::strategies::relate::cartesian<> >; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; IncludePolicy1 = boost::geometry::detail::partition::include_all_policy; IncludePolicy2 = boost::geometry::detail::partition::include_all_policy]’
  637 |         return apply(forward_range, visitor, expand_policy, overlaps_policy,
      |                ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  638 |                      default_min_elements, detail::partition::visit_no_policy());
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp:157:21:   required from ‘static bool boost::geometry::detail::self_get_turn_points::get_turns<Reverse, TurnPolicy>::apply(const Geometry&, const Strategy&, Turns&, InterruptPolicy&, int, bool) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>; Turns = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >; InterruptPolicy = boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true>; bool Reverse = false; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>]’
  154 |         geometry::partition
      |         ~~~~~~~~~~~~~~~~~~~
  155 |             <
      |             ~        
  156 |                 box_type
      |                 ~~~~~~~~
  157 |             >::apply(sec, visitor,
      |             ~~~~~~~~^~~~~~~~~~~~~~
  158 |                      detail::section::get_section_box<Strategy>(strategy),
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  159 |                      detail::section::overlaps_section_box<Strategy>(strategy));
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp:294:25:   required from ‘static void boost::geometry::resolve_strategy::self_get_turn_points<Reverse, AssignPolicy, Strategies, IsUmbrella>::apply(const Geometry&, const Strategies&, Turns&, InterruptPolicy&, int, bool) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Turns = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >; InterruptPolicy = boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true>; bool Reverse = false; AssignPolicy = boost::geometry::detail::overlay::assign_null_policy; Strategies = boost::geometry::strategies::relate::cartesian<>; bool IsUmbrella = true]’
  288 |         dispatch::self_get_turn_points
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  289 |                 <
      |                 ~        
  290 |                     Reverse,
      |                     ~~~~~~~~
  291 |                     tag_t<Geometry>,
      |                     ~~~~~~~~~~~~~~~~
  292 |                     Geometry,
      |                     ~~~~~~~~~
  293 |                     turn_policy
      |                     ~~~~~~~~~~~
  294 |                 >::apply(geometry, strategies, turns, interrupt_policy,
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  295 |                          source_index, skip_adjacent);
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp:362:21:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::SinglePassRangeConcept<T>::~SinglePassRangeConcept() [with T = boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  286 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 9 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::SinglePassRangeConcept<T>::~SinglePassRangeConcept() [with T = boost::geometry::detail::closed_clockwise_view<const boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::closed, boost::geometry::clockwise>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  286 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::CopyConstructible<TT>::~CopyConstructible() [with TT = __gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  167 |     BOOST_CONCEPT_USAGE(CopyConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::IncrementableIteratorConcept<Iterator>::~IncrementableIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  138 |             BOOST_CONCEPT_USAGE(IncrementableIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::EqualityComparable<TT>::~EqualityComparable() [with TT = __gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::CopyConstructible<TT>::~CopyConstructible() [with TT = __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  167 |     BOOST_CONCEPT_USAGE(CopyConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::IncrementableIteratorConcept<Iterator>::~IncrementableIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  138 |             BOOST_CONCEPT_USAGE(IncrementableIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::EqualityComparable<TT>::~EqualityComparable() [with TT = __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 9 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::SinglePassRangeConcept<T>::~SinglePassRangeConcept() [with T = boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  286 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::Box<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/box_concept.hpp:62:5:   required from ‘class boost::geometry::concepts::Box<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::Box<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::Box<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::Box<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::Box<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   [ skipping 9 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::Box<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::geometry::concepts::Box<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/assign.hpp:91:30:   required from ‘void boost::geometry::assign_inverse(Geometry&) [with Geometry = model::box<model::point<double, 2, cs::cartesian> >]’
   91 |     concepts::check<Geometry>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/partition.hpp:682:27:   required from ‘static bool boost::geometry::partition<Box, IncludePolicy1, IncludePolicy2>::apply(const ForwardRange&, VisitPolicy&, const ExpandPolicy&, const OverlapsPolicy&, std::size_t, VisitBoxPolicy) [with ForwardRange = boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; VisitPolicy = boost::geometry::detail::self_get_turn_points::self_section_visitor<false, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >, boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>, boost::geometry::strategies::relate::cartesian<>, boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true> >; ExpandPolicy = boost::geometry::detail::section::get_section_box<boost::geometry::strategies::relate::cartesian<> >; OverlapsPolicy = boost::geometry::detail::section::overlaps_section_box<boost::geometry::strategies::relate::cartesian<> >; VisitBoxPolicy = boost::geometry::detail::partition::visit_no_policy; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; IncludePolicy1 = boost::geometry::detail::partition::include_all_policy; IncludePolicy2 = boost::geometry::detail::partition::include_all_policy; std::size_t = long unsigned int]’
  682 |             assign_inverse(total);
      |             ~~~~~~~~~~~~~~^~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/partition.hpp:637:21:   required from ‘static bool boost::geometry::partition<Box, IncludePolicy1, IncludePolicy2>::apply(const ForwardRange&, VisitPolicy&, const ExpandPolicy&, const OverlapsPolicy&) [with ForwardRange = boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; VisitPolicy = boost::geometry::detail::self_get_turn_points::self_section_visitor<false, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >, boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>, boost::geometry::strategies::relate::cartesian<>, boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true> >; ExpandPolicy = boost::geometry::detail::section::get_section_box<boost::geometry::strategies::relate::cartesian<> >; OverlapsPolicy = boost::geometry::detail::section::overlaps_section_box<boost::geometry::strategies::relate::cartesian<> >; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; IncludePolicy1 = boost::geometry::detail::partition::include_all_policy; IncludePolicy2 = boost::geometry::detail::partition::include_all_policy]’
  637 |         return apply(forward_range, visitor, expand_policy, overlaps_policy,
      |                ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  638 |                      default_min_elements, detail::partition::visit_no_policy());
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp:157:21:   required from ‘static bool boost::geometry::detail::self_get_turn_points::get_turns<Reverse, TurnPolicy>::apply(const Geometry&, const Strategy&, Turns&, InterruptPolicy&, int, bool) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>; Turns = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >; InterruptPolicy = boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true>; bool Reverse = false; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>]’
  154 |         geometry::partition
      |         ~~~~~~~~~~~~~~~~~~~
  155 |             <
      |             ~        
  156 |                 box_type
      |                 ~~~~~~~~
  157 |             >::apply(sec, visitor,
      |             ~~~~~~~~^~~~~~~~~~~~~~
  158 |                      detail::section::get_section_box<Strategy>(strategy),
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  159 |                      detail::section::overlaps_section_box<Strategy>(strategy));
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp:294:25:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::Box<Geometry>::~Box() [with Geometry = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/box_concept.hpp:62:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   62 |     BOOST_CONCEPT_USAGE(Box)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5:   required from ‘class boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::Point<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/arithmetic/arithmetic.hpp:46:5:   required from ‘class boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.h:53:8:   required from here
   53 |   Ring domain;
      |        ^~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::Point<Geometry>::~Point() [with Geometry = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/point_concept.hpp:74:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   74 |     BOOST_CONCEPT_USAGE(Point)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::Box<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::Box<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/box_concept.hpp:62:5:   required from ‘class boost::geometry::concepts::Box<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::Box<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::Box<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::Box<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 10 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::Box<Geometry>::~Box() [with Geometry = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/box_concept.hpp:62:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
   62 |     BOOST_CONCEPT_USAGE(Box)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:280:9:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:280:9:   required from ‘struct boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   [ skipping 10 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:283:9:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:283:9:   required from ‘struct boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   [ skipping 10 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   [ skipping 10 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   required from ‘typename boost::range_size<const SinglePassRange>::type boost::size(const SinglePassRange&) [with SinglePassRange = std::vector<geometry::detail::overlay::turn_info<geometry::model::point<double, 2, geometry::cs::cartesian>, geometry::segment_ratio<double>, geometry::detail::overlay::turn_operation<geometry::model::point<double, 2, geometry::cs::cartesian>, geometry::segment_ratio<double> >, std::array<geometry::detail::overlay::turn_operation<geometry::model::point<double, 2, geometry::cs::cartesian>, geometry::segment_ratio<double> >, 2> >, std::allocator<geometry::detail::overlay::turn_info<geometry::model::point<double, 2, geometry::cs::cartesian>, geometry::segment_ratio<double>, geometry::detail::overlay::turn_operation<geometry::model::point<double, 2, geometry::cs::cartesian>, geometry::segment_ratio<double> >, std::array<geometry::detail::overlay::turn_operation<geometry::model::point<double, 2, geometry::cs::cartesian>, geometry::segment_ratio<double> >, 2> > > >; typename range_size<const SinglePassRange>::type = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:370:64:   required from ‘static bool boost::geometry::detail::get_turns::get_turns_in_sections<Geometry1, Geometry2, Reverse1, Reverse2, Section1, Section2, TurnPolicy>::apply(int, const Geometry1&, const Section1&, int, const Geometry2&, const Section2&, bool, bool, const Strategy&, Turns&, InterruptPolicy&) [with Strategy = boost::geometry::strategies::relate::cartesian<>; Turns = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >; InterruptPolicy = boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true>; Geometry1 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool Reverse1 = false; bool Reverse2 = false; Section1 = boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; Section2 = boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>]’
  370 |                     std::size_t const size_before = boost::size(turns);
      |                                                     ~~~~~~~~~~~^~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp:109:29:   required from ‘bool boost::geometry::detail::self_get_turn_points::self_section_visitor<Reverse, Geometry, Turns, TurnPolicy, Strategy, InterruptPolicy>::apply(const Section&, const Section&) [with Section = boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; bool Reverse = false; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Turns = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>; Strategy = boost::geometry::strategies::relate::cartesian<>; InterruptPolicy = boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true>]’
  103 |             return detail::get_turns::get_turns_in_sections
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  104 |                     <
      |                     ~        
  105 |                         Geometry, Geometry,
      |                         ~~~~~~~~~~~~~~~~~~~
  106 |                         Reverse, Reverse,
      |                         ~~~~~~~~~~~~~~~~~
  107 |                         Section, Section,
      |                         ~~~~~~~~~~~~~~~~~
  108 |                         TurnPolicy
      |                         ~~~~~~~~~~
  109 |                     >::apply(m_source_index, m_geometry, sec1,
      |                     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  110 |                              m_source_index, m_geometry, sec2,
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  111 |                              false, m_skip_adjacent,
      |                              ~~~~~~~~~~~~~~~~~~~~~~~
  112 |                              m_strategy,
      |                              ~~~~~~~~~~~
  113 |                              m_turns, m_interrupt_policy);
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/partition.hpp:701:40:   required from ‘static bool boost::geometry::partition<Box, IncludePolicy1, IncludePolicy2>::apply(const ForwardRange&, VisitPolicy&, const ExpandPolicy&, const OverlapsPolicy&, std::size_t, VisitBoxPolicy) [with ForwardRange = boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; VisitPolicy = boost::geometry::detail::self_get_turn_points::self_section_visitor<false, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >, boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>, boost::geometry::strategies::relate::cartesian<>, boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true> >; ExpandPolicy = boost::geometry::detail::section::get_section_box<boost::geometry::strategies::relate::cartesian<> >; OverlapsPolicy = boost::geometry::detail::section::overlaps_section_box<boost::geometry::strategies::relate::cartesian<> >; VisitBoxPolicy = boost::geometry::detail::partition::visit_no_policy; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; IncludePolicy1 = boost::geometry::detail::partition::include_all_policy; IncludePolicy2 = boost::geometry::detail::partition::include_all_policy; std::size_t = long unsigned int]’
  701 |                     if (! visitor.apply(*it1, *it2))
      |                           ~~~~~~~~~~~~~^~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/partition.hpp:637:21:   required from ‘static bool boost::geometry::partition<Box, IncludePolicy1, IncludePolicy2>::apply(const ForwardRange&, VisitPolicy&, const ExpandPolicy&, const OverlapsPolicy&) [with ForwardRange = boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; VisitPolicy = boost::geometry::detail::self_get_turn_points::self_section_visitor<false, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >, boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>, boost::geometry::strategies::relate::cartesian<>, boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true> >; ExpandPolicy = boost::geometry::detail::section::get_section_box<boost::geometry::strategies::relate::cartesian<> >; OverlapsPolicy = boost::geometry::detail::section::overlaps_section_box<boost::geometry::strategies::relate::cartesian<> >; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; IncludePolicy1 = boost::geometry::detail::partition::include_all_policy; IncludePolicy2 = boost::geometry::detail::partition::include_all_policy]’
  637 |         return apply(forward_range, visitor, expand_policy, overlaps_policy,
      |                ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  638 |                      default_min_elements, detail::partition::visit_no_policy());
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp:157:21:   [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::SinglePassRangeConcept<T>::~SinglePassRangeConcept() [with T = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  286 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&> >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:320:12:   required from ‘struct boost::ForwardRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
  320 |     struct ForwardRangeConcept : SinglePassRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12:   required from ‘struct boost::BidirectionalRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12:   required from ‘struct boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 13 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::DefaultConstructible<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5:   required from ‘struct boost::DefaultConstructible<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:183:16:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  183 |         struct ForwardIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 18 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::DefaultConstructible<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:323:9:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:323:9:   required from ‘struct boost::ForwardRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12:   required from ‘struct boost::BidirectionalRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12:   required from ‘struct boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::ForwardIteratorConcept<Iterator>::~ForwardIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  199 |             BOOST_CONCEPT_USAGE(ForwardIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::DefaultConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5:   required from ‘struct boost::DefaultConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:183:16:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  183 |         struct ForwardIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 18 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::DefaultConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:324:9:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:324:9:   required from ‘struct boost::ForwardRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12:   required from ‘struct boost::BidirectionalRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12:   required from ‘struct boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::ForwardIteratorConcept<Iterator>::~ForwardIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  199 |             BOOST_CONCEPT_USAGE(ForwardIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14:   required from ‘struct boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:357:9:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:357:9:   required from ‘struct boost::BidirectionalRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12:   required from ‘struct boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::BidirectionalIteratorConcept<Iterator>::~BidirectionalIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  226 |              BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14:   required from ‘struct boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:358:9:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:358:9:   required from ‘struct boost::BidirectionalRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12:   required from ‘struct boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::BidirectionalIteratorConcept<Iterator>::~BidirectionalIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  226 |              BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14:   required from ‘struct boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:375:9:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:375:9:   required from ‘struct boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/util/range.hpp:95:5:   [ skipping 10 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::RandomAccessIteratorConcept<Iterator>::~RandomAccessIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  247 |              BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14:   required from ‘struct boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:376:9:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:376:9:   required from ‘struct boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&> >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&> >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/util/range.hpp:95:5:   [ skipping 10 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::RandomAccessIteratorConcept<Iterator>::~RandomAccessIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  247 |              BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/util/range.hpp:95:5:   required from ‘typename boost::range_iterator<C>::type boost::geometry::range::pos(RandomAccessRange&&, typename boost::range_size<RandomAccessRange>::type) [with RandomAccessRange = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&; typename boost::range_iterator<C>::type = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >::iterator; typename boost::range_size<RandomAccessRange>::type = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:379:58:   required from ‘static bool boost::geometry::detail::get_turns::get_turns_in_sections<Geometry1, Geometry2, Reverse1, Reverse2, Section1, Section2, TurnPolicy>::apply(int, const Geometry1&, const Section1&, int, const Geometry2&, const Section2&, bool, bool, const Strategy&, Turns&, InterruptPolicy&) [with Strategy = boost::geometry::strategies::relate::cartesian<>; Turns = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >; InterruptPolicy = boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true>; Geometry1 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Geometry2 = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool Reverse1 = false; bool Reverse2 = false; Section1 = boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; Section2 = boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>]’
  379 |                                 std::make_pair(range::pos(turns, size_before),
      |                                                ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp:109:29:   required from ‘bool boost::geometry::detail::self_get_turn_points::self_section_visitor<Reverse, Geometry, Turns, TurnPolicy, Strategy, InterruptPolicy>::apply(const Section&, const Section&) [with Section = boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; bool Reverse = false; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Turns = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>; Strategy = boost::geometry::strategies::relate::cartesian<>; InterruptPolicy = boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true>]’
  103 |             return detail::get_turns::get_turns_in_sections
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  104 |                     <
      |                     ~        
  105 |                         Geometry, Geometry,
      |                         ~~~~~~~~~~~~~~~~~~~
  106 |                         Reverse, Reverse,
      |                         ~~~~~~~~~~~~~~~~~
  107 |                         Section, Section,
      |                         ~~~~~~~~~~~~~~~~~
  108 |                         TurnPolicy
      |                         ~~~~~~~~~~
  109 |                     >::apply(m_source_index, m_geometry, sec1,
      |                     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  110 |                              m_source_index, m_geometry, sec2,
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  111 |                              false, m_skip_adjacent,
      |                              ~~~~~~~~~~~~~~~~~~~~~~~
  112 |                              m_strategy,
      |                              ~~~~~~~~~~~
  113 |                              m_turns, m_interrupt_policy);
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/partition.hpp:701:40:   required from ‘static bool boost::geometry::partition<Box, IncludePolicy1, IncludePolicy2>::apply(const ForwardRange&, VisitPolicy&, const ExpandPolicy&, const OverlapsPolicy&, std::size_t, VisitBoxPolicy) [with ForwardRange = boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; VisitPolicy = boost::geometry::detail::self_get_turn_points::self_section_visitor<false, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >, boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>, boost::geometry::strategies::relate::cartesian<>, boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true> >; ExpandPolicy = boost::geometry::detail::section::get_section_box<boost::geometry::strategies::relate::cartesian<> >; OverlapsPolicy = boost::geometry::detail::section::overlaps_section_box<boost::geometry::strategies::relate::cartesian<> >; VisitBoxPolicy = boost::geometry::detail::partition::visit_no_policy; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; IncludePolicy1 = boost::geometry::detail::partition::include_all_policy; IncludePolicy2 = boost::geometry::detail::partition::include_all_policy; std::size_t = long unsigned int]’
  701 |                     if (! visitor.apply(*it1, *it2))
      |                           ~~~~~~~~~~~~~^~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/partition.hpp:637:21:   required from ‘static bool boost::geometry::partition<Box, IncludePolicy1, IncludePolicy2>::apply(const ForwardRange&, VisitPolicy&, const ExpandPolicy&, const OverlapsPolicy&) [with ForwardRange = boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; VisitPolicy = boost::geometry::detail::self_get_turn_points::self_section_visitor<false, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >, boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>, boost::geometry::strategies::relate::cartesian<>, boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true> >; ExpandPolicy = boost::geometry::detail::section::get_section_box<boost::geometry::strategies::relate::cartesian<> >; OverlapsPolicy = boost::geometry::detail::section::overlaps_section_box<boost::geometry::strategies::relate::cartesian<> >; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; IncludePolicy1 = boost::geometry::detail::partition::include_all_policy; IncludePolicy2 = boost::geometry::detail::partition::include_all_policy]’
  637 |         return apply(forward_range, visitor, expand_policy, overlaps_policy,
      |                ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  638 |                      default_min_elements, detail::partition::visit_no_policy());
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp:157:21:   [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12: note: in a call to non-static member function ‘boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>::~RandomAccessRangeConcept()’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 18 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:280:9:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:280:9:   required from ‘struct boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 18 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:283:9:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:283:9:   required from ‘struct boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/range/size.hpp:62:9:   required from ‘typename boost::range_size<const SinglePassRange>::type boost::size(const SinglePassRange&) [with SinglePassRange = std::vector<__gnu_cxx::__normal_iterator<const geometry::section<geometry::model::box<geometry::model::point<double, 2, geometry::cs::cartesian> >, 2>*, std::vector<geometry::section<geometry::model::box<geometry::model::point<double, 2, geometry::cs::cartesian> >, 2>, std::allocator<geometry::section<geometry::model::box<geometry::model::point<double, 2, geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const geometry::section<geometry::model::box<geometry::model::point<double, 2, geometry::cs::cartesian> >, 2>*, std::vector<geometry::section<geometry::model::box<geometry::model::point<double, 2, geometry::cs::cartesian> >, 2>, std::allocator<geometry::section<geometry::model::box<geometry::model::point<double, 2, geometry::cs::cartesian> >, 2> > > > > >; typename range_size<const SinglePassRange>::type = long unsigned int]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/partition.hpp:208:23:   required from ‘bool boost::geometry::detail::partition::recurse_ok(const IteratorVector&, std::size_t, std::size_t) [with IteratorVector = std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >; std::size_t = long unsigned int]’
  208 |     return boost::size(input) >= min_elements
      |            ~~~~~~~~~~~^~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/partition.hpp:270:23:   required from ‘static bool boost::geometry::detail::partition::partition_one_range<Dimension, Box>::next_level(const Box&, const IteratorVector&, std::size_t, std::size_t, VisitPolicy&, const ExpandPolicy&, const OverlapsPolicy&, VisitBoxPolicy&) [with IteratorVector = std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >; VisitPolicy = boost::geometry::detail::self_get_turn_points::self_section_visitor<false, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >, boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>, boost::geometry::strategies::relate::cartesian<>, boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true> >; ExpandPolicy = boost::geometry::detail::section::get_section_box<boost::geometry::strategies::relate::cartesian<> >; OverlapsPolicy = boost::geometry::detail::section::overlaps_section_box<boost::geometry::strategies::relate::cartesian<> >; VisitBoxPolicy = boost::geometry::detail::partition::visit_no_policy; long unsigned int Dimension = 0; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; std::size_t = long unsigned int]’
  270 |         if (recurse_ok(input, min_elements, level))
      |             ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/partition.hpp:354:30:   required from ‘static bool boost::geometry::detail::partition::partition_one_range<Dimension, Box>::apply(const Box&, const IteratorVector&, std::size_t, std::size_t, VisitPolicy&, const ExpandPolicy&, const OverlapsPolicy&, VisitBoxPolicy&) [with IteratorVector = std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >; VisitPolicy = boost::geometry::detail::self_get_turn_points::self_section_visitor<false, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >, boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>, boost::geometry::strategies::relate::cartesian<>, boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true> >; ExpandPolicy = boost::geometry::detail::section::get_section_box<boost::geometry::strategies::relate::cartesian<> >; OverlapsPolicy = boost::geometry::detail::section::overlaps_section_box<boost::geometry::strategies::relate::cartesian<> >; VisitBoxPolicy = boost::geometry::detail::partition::visit_no_policy; long unsigned int Dimension = 0; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; std::size_t = long unsigned int]’
  354 |             if (! (next_level(exceeding_box, exceeding, level, min_elements,
      |                    ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  355 |                               visitor, expand_policy, overlaps_policy, box_policy)
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/partition.hpp:689:25:   required from ‘static bool boost::geometry::partition<Box, IncludePolicy1, IncludePolicy2>::apply(const ForwardRange&, VisitPolicy&, const ExpandPolicy&, const OverlapsPolicy&, std::size_t, VisitBoxPolicy) [with ForwardRange = boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; VisitPolicy = boost::geometry::detail::self_get_turn_points::self_section_visitor<false, boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >, boost::geometry::detail::overlay::get_turn_info<boost::geometry::detail::overlay::assign_null_policy>, boost::geometry::strategies::relate::cartesian<>, boost::geometry::detail::overlay::stateless_predicate_based_interrupt_policy<boost::geometry::detail::is_valid::is_acceptable_turn<boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::ring_tag>, true> >; ExpandPolicy = boost::geometry::detail::section::get_section_box<boost::geometry::strategies::relate::cartesian<> >; OverlapsPolicy = boost::geometry::detail::section::overlaps_section_box<boost::geometry::strategies::relate::cartesian<> >; VisitBoxPolicy = boost::geometry::detail::partition::visit_no_policy; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; IncludePolicy1 = boost::geometry::detail::partition::include_all_policy; IncludePolicy2 = boost::geometry::detail::partition::include_all_policy; std::size_t = long unsigned int]’
  686 |             return detail::partition::partition_one_range
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  687 |                 <
      |                 ~        
  688 |                     0, Box
      |                     ~~~~~~
  689 |                 >::apply(total, iterator_vector, 0, min_elements,
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 |                          visitor, expand_policy, overlaps_policy, box_visitor);
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/partition.hpp:637:21:   [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::SinglePassRangeConcept<T>::~SinglePassRangeConcept() [with T = std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  286 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 18 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::CopyConstructible<TT>::~CopyConstructible() [with TT = __gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  167 |     BOOST_CONCEPT_USAGE(CopyConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::IncrementableIteratorConcept<Iterator>::~IncrementableIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  138 |             BOOST_CONCEPT_USAGE(IncrementableIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::EqualityComparable<TT>::~EqualityComparable() [with TT = __gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 18 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::CopyConstructible<TT>::~CopyConstructible() [with TT = __gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  167 |     BOOST_CONCEPT_USAGE(CopyConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::IncrementableIteratorConcept<Iterator>::~IncrementableIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  138 |             BOOST_CONCEPT_USAGE(IncrementableIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::EqualityComparable<TT>::~EqualityComparable() [with TT = __gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::SinglePassRangeConcept<T>::~SinglePassRangeConcept() [with T = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  286 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&> >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:320:12:   required from ‘struct boost::ForwardRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
  320 |     struct ForwardRangeConcept : SinglePassRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:354:12:   required from ‘struct boost::BidirectionalRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
  354 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:372:12:   required from ‘struct boost::RandomAccessRangeConcept<std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&>’
  372 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::SinglePassRangeConcept<T>::~SinglePassRangeConcept() [with T = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > >&]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  286 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::DefaultConstructible<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::DefaultConstructible<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5:   required from ‘struct boost::DefaultConstructible<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:183:16:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  183 |         struct ForwardIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::DefaultConstructible<TT>::~DefaultConstructible() [with TT = __gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  137 |     BOOST_CONCEPT_USAGE(DefaultConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 18 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::ForwardIteratorConcept<Iterator>::~ForwardIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  199 |             BOOST_CONCEPT_USAGE(ForwardIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::DefaultConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::DefaultConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5:   required from ‘struct boost::DefaultConstructible<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:183:16:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
  183 |         struct ForwardIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::DefaultConstructible<TT>::~DefaultConstructible() [with TT = __gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:137:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  137 |     BOOST_CONCEPT_USAGE(DefaultConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13:   required from ‘struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 18 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::ForwardIteratorConcept<Iterator>::~ForwardIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:199:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  199 |             BOOST_CONCEPT_USAGE(ForwardIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14:   required from ‘struct boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::BidirectionalIteratorConcept<Iterator>::~BidirectionalIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  226 |              BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14:   required from ‘struct boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::BidirectionalIteratorConcept<Iterator>::~BidirectionalIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:226:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  226 |              BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14:   required from ‘struct boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::RandomAccessIteratorConcept<Iterator>::~RandomAccessIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  247 |              BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14:   required from ‘struct boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::RandomAccessIteratorConcept<Iterator>::~RandomAccessIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >*, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double>, boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, std::array<boost::geometry::detail::overlay::turn_operation<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >, 2> > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:247:14: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  247 |              BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::ConstBox<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/box_concept.hpp:109:5:   required from ‘class boost::geometry::concepts::ConstBox<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::ConstBox<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstBox<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstBox<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstBox<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::ConstBox<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::geometry::concepts::ConstBox<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/expand/interface.hpp:113:40:   required from ‘static void boost::geometry::resolve_dynamic::expand<Geometry, Tag>::apply(Box&, const Geometry&, const Strategy&) [with Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategies::relate::cartesian<>; Geometry = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::box_tag]’
  113 |         concepts::check<Geometry const>();
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/expand/interface.hpp:155:45:   required from ‘void boost::geometry::expand(Box&, const Geometry&, const Strategy&) [with Box = model::box<model::point<double, 2, cs::cartesian> >; Geometry = model::box<model::point<double, 2, cs::cartesian> >; Strategy = strategies::relate::cartesian<>]’
  155 |     resolve_dynamic::expand<Geometry>::apply(box, geometry, strategy);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/sections/section_box_policies.hpp:40:25:   required from ‘void boost::geometry::detail::section::get_section_box<Strategy>::apply(Box&, const Section&) const [with Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Section = boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; Strategy = boost::geometry::strategies::relate::cartesian<>]’
   40 |         geometry::expand(total, section.bounding_box, m_strategy);
      |         ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/partition.hpp:618:36:   required from ‘static void boost::geometry::partition<Box, IncludePolicy1, IncludePolicy2>::expand_to_range(const ForwardRange&, Box&, IteratorVector&, const ExpandPolicy&) [with IncludePolicy = boost::geometry::detail::partition::include_all_policy; ForwardRange = boost::geometry::sections<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>; IteratorVector = std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >; ExpandPolicy = boost::geometry::detail::section::get_section_box<boost::geometry::strategies::relate::cartesian<> >; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; IncludePolicy1 = boost::geometry::detail::partition::include_all_policy; IncludePolicy2 = boost::geometry::detail::partition::include_all_policy]’
  618 |                 expand_policy.apply(total, *it);
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/partition.hpp:683:44:   [ skipping 7 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::ConstBox<Geometry>::~ConstBox() [with Geometry = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/box_concept.hpp:109:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  109 |     BOOST_CONCEPT_USAGE(ConstBox)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::CopyConstructible<TT>::~CopyConstructible() [with TT = __gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  167 |     BOOST_CONCEPT_USAGE(CopyConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 18 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::IncrementableIteratorConcept<Iterator>::~IncrementableIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  138 |             BOOST_CONCEPT_USAGE(IncrementableIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 18 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::EqualityComparable<TT>::~EqualityComparable() [with TT = __gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::CopyConstructible<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5:   required from ‘struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:127:16:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  127 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::CopyConstructible<TT>::~CopyConstructible() [with TT = __gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:167:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  167 |     BOOST_CONCEPT_USAGE(CopyConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13:   required from ‘struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 18 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::IncrementableIteratorConcept<Iterator>::~IncrementableIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:138:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  138 |             BOOST_CONCEPT_USAGE(IncrementableIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::EqualityComparable<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5:   required from ‘struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:149:16:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
  149 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 18 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::EqualityComparable<TT>::~EqualityComparable() [with TT = __gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13:   required from ‘struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::range_detail::SinglePassIteratorConcept<Iterator>::~SinglePassIteratorConcept() [with Iterator = __gnu_cxx::__normal_iterator<const __gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >*, std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:160:13: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  160 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9:   required from ‘struct boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::SinglePassRangeConcept<std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::SinglePassRangeConcept<T>::~SinglePassRangeConcept() [with T = std::vector<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > >, std::allocator<__gnu_cxx::__normal_iterator<const boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>*, std::vector<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, std::allocator<boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2> > > > > >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/range/concepts.hpp:286:9: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  286 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::ConstBox<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::ConstBox<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/box_concept.hpp:109:5:   required from ‘class boost::geometry::concepts::ConstBox<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::ConstBox<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstBox<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstBox<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 13 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::ConstBox<Geometry>::~ConstBox() [with Geometry = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/box_concept.hpp:109:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  109 |     BOOST_CONCEPT_USAGE(ConstBox)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = std::conditional<true, boost::geometry::concepts::Point<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/segment.hpp:90:5:   required from ‘class boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/cartesian/intersection.hpp:377:59:   required from ‘static typename Policy::return_type boost::geometry::strategy::intersection::cartesian_segments<CalculationType>::unified(SegmentInfo&, const UniqueSubRange1&, const UniqueSubRange2&, const Policy&) [with RatioType = boost::geometry::segment_ratio<double>; SegmentInfo = boost::geometry::strategy::intersection::cartesian_segments<>::segment_intersection_info<double, boost::geometry::segment_ratio<double> >; UniqueSubRange1 = boost::geometry::detail::get_turns::unique_sub_range_from_section<true, boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::ever_circling_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >, boost::geometry::strategies::relate::cartesian<> >; UniqueSubRange2 = boost::geometry::detail::get_turns::unique_sub_range_from_section<true, boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::ever_circling_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >, boost::geometry::strategies::relate::cartesian<> >; Policy = boost::geometry::policies::relate::segments_intersection_policy<boost::geometry::segment_intersection_points<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> > >; CalculationType = void; typename Policy::return_type = boost::geometry::policies::relate::segments_intersection_policy<boost::geometry::segment_intersection_points<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> > >::return_type]’
  377 |         model::referring_segment<point1_type const> const p(p1, p2);
      |                                                           ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/cartesian/intersection.hpp:316:35:   required from ‘static typename Policy::return_type boost::geometry::strategy::intersection::cartesian_segments<CalculationType>::apply(const UniqueSubRange1&, const UniqueSubRange2&, const Policy&) [with UniqueSubRange1 = boost::geometry::detail::get_turns::unique_sub_range_from_section<true, boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::ever_circling_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >, boost::geometry::strategies::relate::cartesian<> >; UniqueSubRange2 = boost::geometry::detail::get_turns::unique_sub_range_from_section<true, boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::ever_circling_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >, boost::geometry::strategies::relate::cartesian<> >; Policy = boost::geometry::policies::relate::segments_intersection_policy<boost::geometry::segment_intersection_points<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> > >; CalculationType = void; typename Policy::return_type = boost::geometry::policies::relate::segments_intersection_policy<boost::geometry::segment_intersection_points<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> > >::return_type]’
  316 |         return unified<ratio_type>(sinfo, range_p, range_q, policy);
      |                ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/get_turn_info_helpers.hpp:127:31:   required from ‘boost::geometry::detail::overlay::intersection_info_base<UniqueSubRange1, UniqueSubRange2, TurnPoint, UmbrellaStrategy>::intersection_info_base(const UniqueSubRange1&, const UniqueSubRange2&, const UmbrellaStrategy&) [with UniqueSubRange1 = boost::geometry::detail::get_turns::unique_sub_range_from_section<true, boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::ever_circling_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >, boost::geometry::strategies::relate::cartesian<> >; UniqueSubRange2 = boost::geometry::detail::get_turns::unique_sub_range_from_section<true, boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::ever_circling_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >, boost::geometry::strategies::relate::cartesian<> >; TurnPoint = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; UmbrellaStrategy = boost::geometry::strategies::relate::cartesian<>]’
  126 |         , m_result(umbrella_strategy.relate()
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~
  127 |                         .apply(range_p, range_q, intersection_policy_type()))
      |                         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/get_turn_info_helpers.hpp:188:48:   required from ‘boost::geometry::detail::overlay::intersection_info<UniqueSubRange1, UniqueSubRange2, TurnPoint, UmbrellaStrategy>::intersection_info(const UniqueSubRange1&, const UniqueSubRange2&, const UmbrellaStrategy&) [with UniqueSubRange1 = boost::geometry::detail::get_turns::unique_sub_range_from_section<true, boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::ever_circling_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >, boost::geometry::strategies::relate::cartesian<> >; UniqueSubRange2 = boost::geometry::detail::get_turns::unique_sub_range_from_section<true, boost::geometry::section<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, 2>, boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::ever_circling_iterator<__gnu_cxx::__normal_iterator<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>*, std::vector<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, std::allocator<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > > >, boost::geometry::strategies::relate::cartesian<> >; TurnPoint = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; UmbrellaStrategy = boost::geometry::strategies::relate::cartesian<>]’
  188 |         , m_umbrella_strategy(umbrella_strategy)
      |                                                ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/overlay/get_turn_info.hpp:1440:21:   [ skipping 10 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/usr/include/c++/15/type_traits:2461:12: note: in a call to non-static member function ‘std::conditional<true, boost::geometry::concepts::Point<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::concepts::ConstPoint<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >::~conditional()’
 2461 |     struct conditional
      |            ^~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::ConstSegment<boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/segment_concept.hpp:109:5:   required from ‘class boost::geometry::concepts::ConstSegment<boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::ConstSegment<boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstSegment<boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstSegment<boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   required from ‘struct boost::concepts::requirement_<void (*)(boost::geometry::concepts::ConstSegment<boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >)>’
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:5: note: in a call to non-static member function ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::ConstSegment<boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::geometry::concepts::ConstSegment<boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/check.hpp:55:5:   required from ‘constexpr void boost::geometry::concepts::check() [with Geometry = const boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/assign_indexed_point.hpp:85:36:   required from ‘void boost::geometry::detail::assign_point_from_index(const Geometry&, Point&) [with long unsigned int Index = 0; Point = boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>; Geometry = boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   85 |     concepts::check<Geometry const>();
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/policies/relate/intersection_points.hpp:103:47:   required from ‘static boost::geometry::policies::relate::segments_intersection_points<ReturnType>::return_type boost::geometry::policies::relate::segments_intersection_points<ReturnType>::segments_collinear(const Segment1&, const Segment2&, bool, int, int, int, int, const Ratio&, const Ratio&, const Ratio&, const Ratio&) [with Segment1 = boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Segment2 = boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Ratio = boost::geometry::segment_ratio<double>; ReturnType = boost::geometry::segment_intersection_points<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >; return_type = boost::geometry::segment_intersection_points<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >]’
  103 |             detail::assign_point_from_index<0>(a, result.intersections[index]);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/policies/relate/intersection_policy.hpp:94:47:   required from ‘static boost::geometry::policies::relate::segments_intersection_policy<IntersectionPointsReturnType>::return_type boost::geometry::policies::relate::segments_intersection_policy<IntersectionPointsReturnType>::segments_collinear(const Segment1&, const Segment2&, bool, int, int, int, int, const Ratio&, const Ratio&, const Ratio&, const Ratio&) [with Segment1 = boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Segment2 = boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Ratio = boost::geometry::segment_ratio<double>; IntersectionPointsReturnType = boost::geometry::segment_intersection_points<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> >]’
   94 |                 pts_policy::segments_collinear(segment1, segment2,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
   95 |                                                opposite,
      |                                                ~~~~~~~~~
   96 |                                                pa1, pa2, pb1, pb2,
      |                                                ~~~~~~~~~~~~~~~~~~~
   97 |                                                ra1, ra2, rb1, rb2),
      |                                                ~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/cartesian/intersection.hpp:675:42:   required from ‘static typename Policy::return_type boost::geometry::strategy::intersection::cartesian_segments<CalculationType>::relate_collinear(const Segment1&, const Segment2&, Type1, Type1, Type2, Type2) [with Policy = boost::geometry::policies::relate::segments_intersection_policy<boost::geometry::segment_intersection_points<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> > >; RatioType = boost::geometry::segment_ratio<double>; Segment1 = boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Segment2 = boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Type1 = double; Type2 = double; CalculationType = void; typename Policy::return_type = boost::geometry::policies::relate::segments_intersection_policy<boost::geometry::segment_intersection_points<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, boost::geometry::segment_ratio<double> > >::return_type]’
  675 |         return Policy::segments_collinear(a, b, opposite,
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
  676 |                                           a1_wrt_b, a2_wrt_b, b1_wrt_a, b2_wrt_a,
      |                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                                           ra_from, ra_to, rb_from, rb_to);
      |                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/strategies/cartesian/intersection.hpp:571:51:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47: warning: ‘this’ pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::ConstSegment<Geometry>::~ConstSegment() [with Geometry = boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/segment_concept.hpp:109:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  109 |     BOOST_CONCEPT_USAGE(ConstSegment)
      |     ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp: In instantiation of ‘boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::geometry::concepts::ConstSegment<boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’:
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:50:47:   required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::usage_requirements<boost::geometry::concepts::ConstSegment<boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >]’
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/segment_concept.hpp:109:5:   required from ‘class boost::geometry::concepts::ConstSegment<boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >’
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, wrap_constraints<Model, (& Model::constraints)>*) [with Model = boost::geometry::concepts::ConstSegment<boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > >]’
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from ‘const bool boost::concepts::not_satisfied<boost::geometry::concepts::ConstSegment<boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >::value’
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from ‘struct boost::concepts::not_satisfied<boost::geometry::concepts::ConstSegment<boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> > > >’
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 21 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/ring.hpp:175:80:   required from ‘static bool boost::geometry::detail::is_valid::is_valid_ring<Ring, CheckSelfIntersections, IsInteriorRing>::apply(const Ring&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::strategies::relate::cartesian<>; Ring = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; bool CheckSelfIntersections = true; bool IsInteriorRing = false]’
  175 |                 || has_valid_self_turns<Ring, typename Strategy::cs_tag>::apply(ring, visitor, strategy))
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:89:51:   required from ‘static bool boost::geometry::resolve_strategy::is_valid<boost::geometry::default_strategy, false>::apply(const Geometry&, VisitPolicy&, boost::geometry::default_strategy) [with Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; VisitPolicy = boost::geometry::is_valid_default_policy<>]’
   89 |         return dispatch::is_valid<Geometry>::apply(geometry, visitor, strategy_type());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:111:25:   required from ‘static bool boost::geometry::resolve_dynamic::is_valid<Geometry, Tag>::apply(const Geometry&, VisitPolicy&, const Strategy&) [with VisitPolicy = boost::geometry::is_valid_default_policy<>; Strategy = boost::geometry::default_strategy; Geometry = boost::geometry::model::ring<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Tag = boost::geometry::ring_tag]’
  108 |         return resolve_strategy::is_valid
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  109 |                 <
      |                 ~        
  110 |                     Strategy
      |                     ~~~~~~~~
  111 |                 >::apply(geometry, visitor, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:183:54:   required from ‘bool boost::geometry::is_valid(const Geometry&, const Strategy&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >; Strategy = default_strategy]’
  183 |     return resolve_dynamic::is_valid<Geometry>::apply(geometry, visitor, strategy);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/algorithms/detail/is_valid/interface.hpp:202:20:   required from ‘bool boost::geometry::is_valid(const Geometry&) [with Geometry = model::ring<model::point<double, 2, cs::cartesian> >]’
  202 |     return is_valid(geometry, default_strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
habitat.cpp:33:44:   required from here
   33 |   check_condition(boost::geometry::is_valid(domain) && boost::geometry::area(domain) > 0,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:20:48: warning: ‘this’ pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
/data/gannet/ripley/R/test-dev/BH/include/boost/concept/usage.hpp:37:7: note: in a call to non-static member function ‘boost::geometry::concepts::ConstSegment<Geometry>::~ConstSegment() [with Geometry = boost::geometry::model::referring_segment<const boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >]’
   37 |       ~model()
      |       ^
/data/gannet/ripley/R/test-dev/BH/include/boost/geometry/geometries/concepts/segment_concept.hpp:109:5: note: in expansion of macro ‘BOOST_CONCEPT_USAGE’
  109 |     BOOST_CONCEPT_USAGE(ConstSegment)
      |     ^~~~~~~~~~~~~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/Core:337,
                 from /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/Dense:1,
                 from /data/gannet/ripley/R/test-dev/RcppEigen/include/RcppEigenForward.h:28,
                 from /data/gannet/ripley/R/test-dev/RcppEigen/include/RcppEigen.h:25,
                 from util.h:16:
/data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/products/SelfadjointMatrixVector.h: In function ‘static void Eigen::internal::selfadjoint_product_impl<Lhs, LhsMode, false, Rhs, 0, true>::run(Dest&, const Lhs&, const Rhs&, const Scalar&) [with Dest = Eigen::Block<Eigen::Matrix<double, -1, 1>, -1, 1, false>; Lhs = Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>; int LhsMode = 17; Rhs = Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, const Eigen::Matrix<double, -1, 1> >, const Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, 1, true>, -1, 1, false> >]’:
/data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/products/SelfadjointMatrixVector.h:229:7: warning: ‘result’ may be used uninitialized [-Wmaybe-uninitialized]
  227 |     internal::selfadjoint_matrix_vector_product<Scalar, Index, (internal::traits<ActualLhsTypeCleaned>::Flags&RowMajorBit) ? RowMajor : ColMajor,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  228 |                                                 int(LhsUpLo), bool(LhsBlasTraits::NeedToConjugate), bool(RhsBlasTraits::NeedToConjugate)>::run
      |                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  229 |       (
      |       ^
  230 |         lhs.rows(),                             // size
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  231 |         &lhs.coeffRef(0,0),  lhs.outerStride(), // lhs info
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  232 |         actualRhsPtr,                           // rhs info
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |         actualDestPtr,                          // result info
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |         actualAlpha                             // scale factor
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |       );
      |       ~
/data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/products/SelfadjointMatrixVector.h:41:6: note: by argument 4 of type ‘const double*’ to ‘static void Eigen::internal::selfadjoint_matrix_vector_product<Scalar, Index, StorageOrder, UpLo, ConjugateLhs, ConjugateRhs, Version>::run(Index, const Scalar*, Index, const Scalar*, Scalar*, Scalar) [with Scalar = double; Index = long int; int StorageOrder = 0; int UpLo = 1; bool ConjugateLhs = false; bool ConjugateRhs = false; int Version = 0]’ declared here
   41 | void selfadjoint_matrix_vector_product<Scalar,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs,Version>::run(
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/Core:341:
/data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/products/TriangularMatrixVector.h: In function ‘static void Eigen::internal::trmv_selector<Mode, 1>::run(const Lhs&, const Rhs&, Dest&, const typename Dest::Scalar&) [with Lhs = Eigen::Transpose<const Eigen::Block<const Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false> >; Rhs = Eigen::Transpose<const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, const Eigen::Matrix<double, 1, -1> >, const Eigen::Transpose<const Eigen::Block<const Eigen::Block<const Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, 1, true>, -1, 1, false> > > >; Dest = Eigen::Transpose<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1, 1, -1, -1>, 1, -1, true>, 1, -1, false> >; int Mode = 6]’:
/data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/products/TriangularMatrixVector.h:332:12: warning: ‘result’ may be used uninitialized [-Wmaybe-uninitialized]
  327 |     internal::triangular_matrix_vector_product
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  328 |       <Index,Mode,
      |       ~~~~~~~~~~~~
  329 |        LhsScalar, LhsBlasTraits::NeedToConjugate,
      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  330 |        RhsScalar, RhsBlasTraits::NeedToConjugate,
      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  331 |        RowMajor>
      |        ~~~~~~~~~
  332 |       ::run(actualLhs.rows(),actualLhs.cols(),
      |       ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  333 |             actualLhs.data(),actualLhs.outerStride(),
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  334 |             actualRhsPtr,1,
      |             ~~~~~~~~~~~~~~~
  335 |             dest.data(),dest.innerStride(),
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  336 |             actualAlpha);
      |             ~~~~~~~~~~~~
/data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/products/TriangularMatrixVector.h:105:24: note: by argument 5 of type ‘const double*’ to ‘static void Eigen::internal::triangular_matrix_vector_product<Index, Mode, LhsScalar, ConjLhs, RhsScalar, ConjRhs, 1, Version>::run(Index, Index, const LhsScalar*, Index, const RhsScalar*, Index, ResScalar*, Index, const ResScalar&) [with Index = long int; int Mode = 6; LhsScalar = double; bool ConjLhs = false; RhsScalar = double; bool ConjRhs = false; int Version = 0]’ declared here
  105 | EIGEN_DONT_INLINE void triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,RowMajor,Version>
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++ -std=gnu++17 -shared -L/usr/local/lib64 -o reems.so RcppExports.o draw.o eems.o graph.o habitat.o mcmc.o reems.o runeems_snps.o util.o voronoi2raster.o
make[1]: Leaving directory '/data/gannet/ripley/R/packages/tests-devel/reems/src'
make[1]: Entering directory '/data/gannet/ripley/R/packages/tests-devel/reems/src'
make[1]: Leaving directory '/data/gannet/ripley/R/packages/tests-devel/reems/src'
installing to /data/gannet/ripley/R/packages/tests-devel/reems.Rcheck/00LOCK-reems/00new/reems/libs
** R
** data
*** moving datasets to lazyload DB
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (reems)