* installing *source* package 'phutil' ...
** this is package 'phutil' version '0.0.1'
** package 'phutil' successfully unpacked and MD5 sums checked
** using staged installation
** libs
using C++ compiler: 'g++.exe (GCC) 14.2.0'
make[1]: Entering directory '/d/temp/2025_06_25_01_50_00_12125/Rtmpmq23EU/R.INSTALL1036c7bcb1f/phutil/src'
g++ -std=gnu++17  -I"D:/RCompile/recent/R-4.5.0/include" -DNDEBUG -I../inst/include -I'D:/RCompile/CRANpkg/lib/4.5/BH/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"   -fopenmp   -pedantic -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c bottleneck.cpp -o bottleneck.o
In file included from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/foreach.hpp:76,
                 from hera/bottleneck/../dnn/local/../utils.h:5,
                 from hera/bottleneck/../dnn/local/kd-tree.h:4,
                 from hera/bottleneck/neighb_oracle.h:38,
                 from hera/bottleneck/bound_match.h:36,
                 from hera/bottleneck/bottleneck_detail.h:41,
                 from hera/bottleneck.h:40,
                 from bottleneck.cpp:1:
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/mpl/assert.hpp:194:21: warning: unnecessary parentheses in declaration of 'assert_arg' [-Wparentheses]
  194 | failed ************ (Pred::************
      |                     ^~~~~~~~~~~~~~~~~~~
  195 |       assert_arg( void (*)(Pred), typename assert_arg_pred<Pred>::type )
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  196 |     );
      |     ~                
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/mpl/assert.hpp:194:21: note: remove parentheses
  194 | failed ************ (Pred::************
      |                     ^~~~~~~~~~~~~~~~~~~
      |                     -
  195 |       assert_arg( void (*)(Pred), typename assert_arg_pred<Pred>::type )
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  196 |     );
      |     ~                
      |     -
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/mpl/assert.hpp:199:21: warning: unnecessary parentheses in declaration of 'assert_not_arg' [-Wparentheses]
  199 | failed ************ (boost::mpl::not_<Pred>::************
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  200 |       assert_not_arg( void (*)(Pred), typename assert_arg_pred_not<Pred>::type )
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  201 |     );
      |     ~                
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/mpl/assert.hpp:199:21: note: remove parentheses
  199 | failed ************ (boost::mpl::not_<Pred>::************
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                     -
  200 |       assert_not_arg( void (*)(Pred), typename assert_arg_pred_not<Pred>::type )
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  201 |     );
      |     ~                
      |     -
In file included from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/smart_ptr/shared_ptr.hpp:17,
                 from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/shared_ptr.hpp:17,
                 from hera/bottleneck/../dnn/local/kd-tree.h:11:
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/smart_ptr/detail/shared_count.hpp:326:33: warning: 'template<class> class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  326 |     explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) )
      |                                 ^~~~~~~~
In file included from D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/memory:78,
                 from hera/bottleneck/bound_match.h:33:
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/unique_ptr.h:59:28: note: declared here
   59 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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()
      |                               ^~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/unique_ptr.h:59:28: note: declared here
   59 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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()
      |                      ^~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/unique_ptr.h:59:28: note: declared here
   59 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 )
      |                                  ^~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/unique_ptr.h:59:28: note: declared here
   59 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 )
      |                                  ^~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/unique_ptr.h:59:28: note: declared here
   59 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/smart_ptr/shared_ptr.hpp: In member function 'boost::shared_ptr<T>& boost::shared_ptr<T>::operator=(std::auto_ptr<_Up>&&)':
D:/RCompile/CRANpkg/lib/4.5/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 );
      |                                      ^~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/unique_ptr.h:59:28: note: declared here
   59 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/bind/mem_fn.hpp:23,
                 from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/bind/bind.hpp:23,
                 from hera/bottleneck/../dnn/local/../parallel/tbb.h:7,
                 from hera/bottleneck/../dnn/local/kd-tree.hpp:8,
                 from hera/bottleneck/../dnn/local/kd-tree.h:182:
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/get_pointer.hpp: At global scope:
D:/RCompile/CRANpkg/lib/4.5/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)
      |                                        ^~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/unique_ptr.h:59:28: note: declared here
   59 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
bottleneck.cpp: In function 'cpp11::doubles bottleneckPairwiseDistances(const cpp11::list&, double, unsigned int)':
bottleneck.cpp:54:20: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
   54 |   for (int n = 0;n < N;++n)
      |                  ~~^~~
bottleneck.cpp:63:20: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
   63 |   for (int k = 0;k < K;++k)
      |                  ~~^~~
g++ -std=gnu++17  -I"D:/RCompile/recent/R-4.5.0/include" -DNDEBUG -I../inst/include -I'D:/RCompile/CRANpkg/lib/4.5/BH/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"   -fopenmp   -pedantic -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c cpp11.cpp -o cpp11.o
g++ -std=gnu++17  -I"D:/RCompile/recent/R-4.5.0/include" -DNDEBUG -I../inst/include -I'D:/RCompile/CRANpkg/lib/4.5/BH/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"   -fopenmp   -pedantic -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c diagram_parser.cpp -o diagram_parser.o
g++ -std=gnu++17  -I"D:/RCompile/recent/R-4.5.0/include" -DNDEBUG -I../inst/include -I'D:/RCompile/CRANpkg/lib/4.5/BH/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"   -fopenmp   -pedantic -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c wasserstein.cpp -o wasserstein.o
In file included from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/mpl/aux_/na_assert.hpp:23,
                 from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/mpl/arg.hpp:25,
                 from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/mpl/placeholders.hpp:24,
                 from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/iterator/iterator_categories.hpp:16,
                 from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/iterator/iterator_facade.hpp:13,
                 from hera/wasserstein/../dnn/geometry/euclidean-dynamic.h:6,
                 from hera/wasserstein/basic_defs_ws.h:49,
                 from hera/wasserstein.h:37,
                 from wasserstein.cpp:1:
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/mpl/assert.hpp:194:21: warning: unnecessary parentheses in declaration of 'assert_arg' [-Wparentheses]
  194 | failed ************ (Pred::************
      |                     ^~~~~~~~~~~~~~~~~~~
  195 |       assert_arg( void (*)(Pred), typename assert_arg_pred<Pred>::type )
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  196 |     );
      |     ~                
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/mpl/assert.hpp:194:21: note: remove parentheses
  194 | failed ************ (Pred::************
      |                     ^~~~~~~~~~~~~~~~~~~
      |                     -
  195 |       assert_arg( void (*)(Pred), typename assert_arg_pred<Pred>::type )
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  196 |     );
      |     ~                
      |     -
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/mpl/assert.hpp:199:21: warning: unnecessary parentheses in declaration of 'assert_not_arg' [-Wparentheses]
  199 | failed ************ (boost::mpl::not_<Pred>::************
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  200 |       assert_not_arg( void (*)(Pred), typename assert_arg_pred_not<Pred>::type )
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  201 |     );
      |     ~                
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/mpl/assert.hpp:199:21: note: remove parentheses
  199 | failed ************ (boost::mpl::not_<Pred>::************
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                     -
  200 |       assert_not_arg( void (*)(Pred), typename assert_arg_pred_not<Pred>::type )
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  201 |     );
      |     ~                
      |     -
In file included from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/smart_ptr/shared_ptr.hpp:17,
                 from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/shared_ptr.hpp:17,
                 from hera/wasserstein/../dnn/local/kd-tree.h:11,
                 from hera/wasserstein/auction_oracle_kdtree_restricted.h:44,
                 from hera/wasserstein/auction_oracle.h:36,
                 from hera/wasserstein/auction_runner_gs.h:37,
                 from hera/wasserstein.h:41:
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/smart_ptr/detail/shared_count.hpp:326:33: warning: 'template<class> class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  326 |     explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) )
      |                                 ^~~~~~~~
In file included from D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/memory:78,
                 from hera/wasserstein/auction_runner_gs.h:32:
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/unique_ptr.h:59:28: note: declared here
   59 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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()
      |                               ^~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/unique_ptr.h:59:28: note: declared here
   59 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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()
      |                      ^~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/unique_ptr.h:59:28: note: declared here
   59 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 )
      |                                  ^~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/unique_ptr.h:59:28: note: declared here
   59 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 )
      |                                  ^~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/unique_ptr.h:59:28: note: declared here
   59 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/smart_ptr/shared_ptr.hpp: In member function 'boost::shared_ptr<T>& boost::shared_ptr<T>::operator=(std::auto_ptr<_Up>&&)':
D:/RCompile/CRANpkg/lib/4.5/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 );
      |                                      ^~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/unique_ptr.h:59:28: note: declared here
   59 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/bind/mem_fn.hpp:23,
                 from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/bind/bind.hpp:23,
                 from hera/wasserstein/../dnn/local/../parallel/tbb.h:7,
                 from hera/wasserstein/../dnn/local/kd-tree.hpp:8,
                 from hera/wasserstein/../dnn/local/kd-tree.h:182:
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/get_pointer.hpp: At global scope:
D:/RCompile/CRANpkg/lib/4.5/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)
      |                                        ^~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/unique_ptr.h:59:28: note: declared here
   59 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
wasserstein.cpp: In function 'cpp11::doubles wassersteinPairwiseDistances(const cpp11::list&, double, double, unsigned int)':
wasserstein.cpp:85:20: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
   85 |   for (int n = 0;n < N;++n)
      |                  ~~^~~
wasserstein.cpp:94:20: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
   94 |   for (int k = 0;k < K;++k)
      |                  ~~^~~
In file included from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/assert.hpp:35,
                 from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:20,
                 from D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/algorithm/heap_algorithm.hpp:12,
                 from hera/wasserstein/../dnn/local/search-functors.h:4,
                 from hera/wasserstein/../dnn/local/kd-tree.h:5:
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:167:5:   required from 'struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:125:16:   required from 'struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  125 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:147:16:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  147 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:31:
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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> >]':
D:/RCompile/CRANpkg/lib/4.5/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>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/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)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/iterator/iterator_concepts.hpp:114:7:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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>]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/iterator/iterator_concepts.hpp:114:7:   required from 'struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:147:16:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  147 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:136:13:   required from 'struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:147:16:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  147 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:233:5:   required from 'struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:147:16:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  147 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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> >]':
D:/RCompile/CRANpkg/lib/4.5/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>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/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)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:152:13:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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>]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:152:13:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   required from 'struct boost::concepts::requirement_<void (*)(boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >)>'
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:278:9:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:158:13:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   required from 'struct boost::concepts::requirement_<void (*)(boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >)>'
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:278:9:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:278:9:   required from 'struct boost::SinglePassRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:318:12:   required from 'struct boost::ForwardRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  318 |     struct ForwardRangeConcept : SinglePassRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:352:12:   required from 'struct boost::BidirectionalRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  352 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:370:12:   required from 'struct boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  370 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 9 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:158:13: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  158 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:167:5:   required from 'struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:125:16:   required from 'struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  125 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:147:16:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  147 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:136:13:   required from 'struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:147:16:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  147 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:233:5:   required from 'struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:147:16:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  147 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:158:13:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >)>'
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:281:9:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:281:9:   required from 'struct boost::SinglePassRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:318:12:   required from 'struct boost::ForwardRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  318 |     struct ForwardRangeConcept : SinglePassRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:352:12:   required from 'struct boost::BidirectionalRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  352 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:370:12:   required from 'struct boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  370 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 9 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:158:13: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  158 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:284:9:   required from 'struct boost::SinglePassRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:318:12:   required from 'struct boost::ForwardRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  318 |     struct ForwardRangeConcept : SinglePassRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:352:12:   required from 'struct boost::BidirectionalRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  352 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:370:12:   required from 'struct boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  370 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 9 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:137:5:   required from 'struct boost::DefaultConstructible<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:181:16:   required from 'struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  181 |         struct ForwardIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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> >]':
D:/RCompile/CRANpkg/lib/4.5/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>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/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)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:191:13:   [ skipping 18 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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>]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:191:13:   required from 'struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   required from 'struct boost::concepts::requirement_<void (*)(boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >)>'
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:321:9:   [ skipping 13 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:197:13:   required from 'struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   required from 'struct boost::concepts::requirement_<void (*)(boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >)>'
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:321:9:   [ skipping 13 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:321:9:   required from 'struct boost::ForwardRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:352:12:   required from 'struct boost::BidirectionalRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  352 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:370:12:   required from 'struct boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  370 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from 'const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:197:13: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  197 |             BOOST_CONCEPT_USAGE(ForwardIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:137:5:   required from 'struct boost::DefaultConstructible<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:181:16:   required from 'struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  181 |         struct ForwardIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:197:13:   required from 'struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >)>'
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:322:9:   [ skipping 13 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:322:9:   required from 'struct boost::ForwardRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:352:12:   required from 'struct boost::BidirectionalRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  352 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:370:12:   required from 'struct boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  370 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from 'const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:197:13: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  197 |             BOOST_CONCEPT_USAGE(ForwardIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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> >]':
D:/RCompile/CRANpkg/lib/4.5/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>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/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)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:218:14:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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>]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:218:14:   required from 'struct boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   required from 'struct boost::concepts::requirement_<void (*)(boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >)>'
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:355:9:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:224:14:   required from 'struct boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   required from 'struct boost::concepts::requirement_<void (*)(boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >)>'
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:355:9:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:355:9:   required from 'struct boost::BidirectionalRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:370:12:   required from 'struct boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  370 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from 'const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from 'struct boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 7 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:224:14: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  224 |              BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:224:14:   required from 'struct boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >)>'
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:356:9:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:356:9:   required from 'struct boost::BidirectionalRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:370:12:   required from 'struct boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  370 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from 'const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from 'struct boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 7 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:224:14: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  224 |              BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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> >]':
D:/RCompile/CRANpkg/lib/4.5/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>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/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)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:239:14:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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>]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:239:14:   required from 'struct boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   required from 'struct boost::concepts::requirement_<void (*)(boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >)>'
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:373:9:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:245:14:   required from 'struct boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   required from 'struct boost::concepts::requirement_<void (*)(boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >)>'
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:373:9:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:373:9:   required from 'struct boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from 'const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from 'struct boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   required from 'struct boost::concepts::requirement_<void (*)(boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >)>'
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/algorithm/heap_algorithm.hpp:32:5:   [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:245:14: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  245 |              BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:245:14:   required from 'struct boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >)>'
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:374:9:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |     ^
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:374:9:   required from 'struct boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   required from 'const bool boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   required from 'struct boost::concepts::not_satisfied<boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   required from 'struct boost::concepts::requirement_<void (*)(boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >)>'
   72 | struct requirement_<void(*)(Model)>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/algorithm/heap_algorithm.hpp:32:5:   [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:50:47: warning: 'this' pointer is null [-Wnonnull]
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:245:14: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  245 |              BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/algorithm/heap_algorithm.hpp:32:5:   required from 'RandomAccessRange& boost::range::push_heap(RandomAccessRange&) [with RandomAccessRange = std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > >]'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hera/wasserstein/../dnn/local/search-functors.h:94:29:   required from 'hera::dnn::kNNRecord<HandleDistance>::DistanceType hera::dnn::kNNRecord<HandleDistance>::operator()(PointHandle, DistanceType) [with HandleDistance = hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >; DistanceType = double; PointHandle = const hera::ws::dnn::Point<2, double>*]'
   94 |             boost::push_heap(result);
      |             ~~~~~~~~~~~~~~~~^~~~~~~~
hera/wasserstein/../dnn/local/kd-tree.hpp:146:15:   required from 'void hera::ws::dnn::KDTree<Traits_>::search(PointHandle, ResultsFunctor&) const [with ResultsFunctor = hera::dnn::kNNRecord<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > >; Traits_ = hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> >; PointHandle = const hera::ws::dnn::Point<2, double>*]'
  146 |         D = rf(*m, dist);
      |             ~~^~~~~~~~~~
hera/wasserstein/../dnn/local/kd-tree.hpp:289:11:   required from 'hera::ws::dnn::KDTree<Traits_>::Result hera::ws::dnn::KDTree<Traits_>::findK(PointHandle, size_t) const [with Traits_ = hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> >; Result = std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > >; PointHandle = const hera::ws::dnn::Point<2, double>*; size_t = long long unsigned int]'
  289 |     search(q, knn);
      |     ~~~~~~^~~~~~~~
hera/wasserstein/../dnn/local/kd-tree.h:66:91:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/algorithm/heap_algorithm.hpp:15:
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:370:12: note: in a call to non-static member function 'boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >::~RandomAccessRangeConcept()'
  370 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp: In instantiation of 'boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::CopyConstructible<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:167:5:   required from 'struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:125:16:   required from 'struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  125 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:147:16:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  147 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:167:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  167 |     BOOST_CONCEPT_USAGE(CopyConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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>]':
D:/RCompile/CRANpkg/lib/4.5/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(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 21 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:136:13:   required from 'struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:147:16:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  147 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:136:13: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  136 |             BOOST_CONCEPT_USAGE(IncrementableIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp: In instantiation of 'boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::EqualityComparable<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:233:5:   required from 'struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:147:16:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  147 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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>]':
D:/RCompile/CRANpkg/lib/4.5/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(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:158:13:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:158:13: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  158 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:167:5:   required from 'struct boost::CopyConstructible<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:125:16:   required from 'struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  125 |         struct IncrementableIteratorConcept : CopyConstructible<Iterator>
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:147:16:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  147 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:42:5:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:167:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  167 |     BOOST_CONCEPT_USAGE(CopyConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:136:13:   required from 'struct boost::range_detail::IncrementableIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:147:16:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  147 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:136:13: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  136 |             BOOST_CONCEPT_USAGE(IncrementableIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:233:5:   required from 'struct boost::EqualityComparable<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:147:16:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  147 |         struct SinglePassIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:233:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  233 |     BOOST_CONCEPT_USAGE(EqualityComparable) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:158:13:   required from 'struct boost::range_detail::SinglePassIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:158:13: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  158 |             BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp: In instantiation of 'boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::SinglePassRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:284:9:   required from 'struct boost::SinglePassRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:318:12:   required from 'struct boost::ForwardRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  318 |     struct ForwardRangeConcept : SinglePassRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:352:12:   required from 'struct boost::BidirectionalRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  352 |     struct BidirectionalRangeConcept : ForwardRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:370:12:   required from 'struct boost::RandomAccessRangeConcept<std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >'
  370 |     struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:32:62:   [ skipping 10 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:284:9: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  284 |         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
      |         ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp: In instantiation of 'boost::concepts::usage_requirements<Model>::~usage_requirements() [with Model = boost::DefaultConstructible<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:137:5:   required from 'struct boost::DefaultConstructible<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:181:16:   required from 'struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  181 |         struct ForwardIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:137:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  137 |     BOOST_CONCEPT_USAGE(DefaultConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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>]':
D:/RCompile/CRANpkg/lib/4.5/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(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:197:13:   required from 'struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:197:13: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  197 |             BOOST_CONCEPT_USAGE(ForwardIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:137:5:   required from 'struct boost::DefaultConstructible<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:181:16:   required from 'struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
  181 |         struct ForwardIteratorConcept
      |                ^~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/has_constraints.hpp:45:51:   [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:137:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  137 |     BOOST_CONCEPT_USAGE(DefaultConstructible) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:197:13:   required from 'struct boost::range_detail::ForwardIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:197:13: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  197 |             BOOST_CONCEPT_USAGE(ForwardIteratorConcept)
      |             ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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>]':
D:/RCompile/CRANpkg/lib/4.5/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(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 18 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:224:14:   required from 'struct boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 13 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:224:14: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  224 |              BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:224:14:   required from 'struct boost::range_detail::BidirectionalIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 13 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:224:14: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  224 |              BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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>]':
D:/RCompile/CRANpkg/lib/4.5/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(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept_check.hpp:208:5: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  208 |     BOOST_CONCEPT_USAGE(Convertible) {
      |     ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:245:14:   required from 'struct boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:245:14: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  245 |              BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]':
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >]'
   50 |     static void failed() { ((Model*)0)->~Model(); }
      |                            ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:245:14:   required from 'struct boost::range_detail::RandomAccessIteratorConcept<__gnu_cxx::__normal_iterator<const hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >'
   92 |     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > >]'
   32 |   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >::value'
   44 |       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > > > >'
   45 |     typedef boost::integral_constant<bool, value> type;
      |                                                   ^~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/detail/general.hpp:72:8:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
hera/wasserstein/auction_runner_gs.hpp:199:50:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phase() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  199 |         auto optimal_bid = oracle.get_optimal_bid(bidder_idx);
      |                            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:138:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction_phases() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  138 |         run_auction_phase();
      |         ^~~~~~~~~~~~~~~~~
hera/wasserstein/auction_runner_gs.hpp:167:9:   required from 'void hera::ws::AuctionRunnerGS<RealType_, AuctionOracle_, PointContainer_>::run_auction() [with RealType_ = double; AuctionOracle_ = hera::ws::AuctionOracleKDTreeRestricted<double, std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > > >; PointContainer_ = std::vector<hera::DiagramPoint<double>, std::allocator<hera::DiagramPoint<double> > >]'
  167 |         run_auction_phases();
      |         ^~~~~~~~~~~~~~~~~~
hera/wasserstein.h:222:28:   required from 'hera::AuctionResult<Real> hera::ws::wasserstein_cost_vec_detailed(const std::vector<hera::DiagramPoint<Real> >&, const std::vector<hera::DiagramPoint<Real> >&, hera::AuctionParams<Real>) [with RealType = double]'
  222 |         auction.run_auction();
      |         ~~~~~~~~~~~~~~~~~~~^~
hera/wasserstein.h:394:84:   required from 'hera::AuctionResult<typename hera::DiagramTraits<PairContainer>::RealType> hera::wasserstein_cost_detailed(const PairContainer&, const PairContainer&, const AuctionParams<typename DiagramTraits<PairContainer>::RealType>&) [with PairContainer = std::vector<std::pair<double, double> >; typename DiagramTraits<PairContainer>::RealType = double; typename std::remove_const<typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type>::type = std::pair<double, double>; typename std::remove_reference<decltype (* declval<PairContainer_>().begin())>::type = std::pair<double, double>; decltype (* declval<PairContainer_>().begin()) = std::pair<double, double>&]'
  394 |         return add_results(infinity_result, hera::ws::wasserstein_cost_vec_detailed(dgm_A, dgm_B, params), params.wasserstein_power);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
wasserstein.cpp:57:45:   required from here
   57 |   auto res = hera::wasserstein_cost_detailed(diagramA, diagramB, params);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/concept/usage.hpp:20:48: warning: 'this' pointer is null [-Wnonnull]
   20 |     ~usage_requirements() { ((Model*)0)->~Model(); }
      |                             ~~~~~~~~~~~~~~~~~~~^~
D:/RCompile/CRANpkg/lib/4.5/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 hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >*, std::vector<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > >, std::allocator<hera::dnn::HandleDistance<hera::ws::dnn::KDTree<hera::ws::dnn::PointTraits<hera::ws::dnn::Point<2, double> > > > > > >]'
   37 |       ~model()
      |       ^
D:/RCompile/CRANpkg/lib/4.5/BH/include/boost/range/concepts.hpp:245:14: note: in expansion of macro 'BOOST_CONCEPT_USAGE'
  245 |              BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
      |              ^~~~~~~~~~~~~~~~~~~
g++ -std=gnu++17 -shared -s -static-libgcc -o phutil.dll tmp.def bottleneck.o cpp11.o diagram_parser.o wasserstein.o -fopenmp -Ld:/rtools45/x86_64-w64-mingw32.static.posix/lib/x64 -Ld:/rtools45/x86_64-w64-mingw32.static.posix/lib -LD:/RCompile/recent/R-4.5.0/bin/x64 -lR
make[1]: Leaving directory '/d/temp/2025_06_25_01_50_00_12125/Rtmpmq23EU/R.INSTALL1036c7bcb1f/phutil/src'
make[1]: Entering directory '/d/temp/2025_06_25_01_50_00_12125/Rtmpmq23EU/R.INSTALL1036c7bcb1f/phutil/src'
make[1]: Leaving directory '/d/temp/2025_06_25_01_50_00_12125/Rtmpmq23EU/R.INSTALL1036c7bcb1f/phutil/src'
installing to d:/Rcompile/CRANpkg/lib/4.5/00LOCK-phutil/00new/phutil/libs/x64
** 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
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* MD5 sums
packaged installation of 'phutil' as phutil_0.0.1.zip
* DONE (phutil)