Skip to content

Instantly share code, notes, and snippets.

@ffrankies
Created October 5, 2019 18:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ffrankies/80114b648e9d88c2fd26e361c8b34111 to your computer and use it in GitHub Desktop.
Save ffrankies/80114b648e9d88c2fd26e361c8b34111 to your computer and use it in GitHub Desktop.
Full compiler output
clang -std=c++11 -o shmem_sparse_matrix shmem_sparse_matrix.cpp -lpthread -lrt -lstdc++ -lm
In file included from shmem_sparse_matrix.cpp:5:
In file included from /usr/local/include/boost/interprocess/containers/map.hpp:23:
In file included from /usr/local/include/boost/container/map.hpp:30:
/usr/local/include/boost/container/detail/tree.hpp:464:14: error: type 'const key_compare' (aka 'const boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >') does not provide a call operator
{ return this->key_comp()(key1, this->key_from(nonkey2)); }
^~~~~~~~~~~~~~~~
/usr/local/include/boost/intrusive/detail/tree_value_compare.hpp:180:14: note: in instantiation of function template specialization
'boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,
boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >::operator()<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true> >' requested here
{ return this->key_comp()(nonkey1, key2); }
^
/usr/local/include/boost/intrusive/detail/key_nodeptr_comp.hpp:110:14: note: in instantiation of function template specialization 'boost::intrusive::tree_value_compare<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true> *, boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >, boost::move_detail::identity<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true> >,
bool, true>::operator()<int>' requested here
{ return base()(t1, *traits_->to_value_ptr(t2)); }
^
/usr/local/include/boost/intrusive/bstree_algorithms.hpp:1017:28: note: in instantiation of function template specialization
'boost::intrusive::detail::key_nodeptr_comp<boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >,
boost::intrusive::bhtraits<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true>,
boost::intrusive::rbtree_node_traits<void *, true>, boost::intrusive::link_mode_type::normal_link, boost::intrusive::dft_tag, 3>, boost::move_detail::identity<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int,
int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true> > >::operator()<int, boost::intrusive::compact_rbtree_node<void *> *>' requested here
x = (left_child = comp(key, x)) ?
^
/usr/local/include/boost/intrusive/bstree.hpp:499:28: note: in instantiation of function template specialization 'boost::intrusive::bstree_algorithms<boost::intrusive::rbtree_node_traits<void *, true> >::insert_unique_check<int,
boost::intrusive::detail::key_nodeptr_comp<boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >,
boost::intrusive::bhtraits<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true>,
boost::intrusive::rbtree_node_traits<void *, true>, boost::intrusive::link_mode_type::normal_link, boost::intrusive::dft_tag, 3>, boost::move_detail::identity<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int,
int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true> > > >' requested here
(node_algorithms::insert_unique_check
^
/usr/local/include/boost/container/detail/tree.hpp:1099:51: note: in instantiation of function template specialization 'boost::intrusive::bstbase2<boost::intrusive::bhtraits<boost::container::dtl::tree_node<std::pair<const int,
boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,
boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::rbtree_node_traits<void *, true>,
boost::intrusive::link_mode_type::normal_link, boost::intrusive::dft_tag, 3>, void, boost::container::value_to_node_compare<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::tree_value_compare<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> > *, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int>, bool, false>, bool>,
boost::intrusive::algo_types::RbTreeAlgorithms, void>::insert_unique_check<int, boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> > >' requested here
hint == const_iterator() ? this->icont().insert_unique_check( k, KeyNodeCompare(key_comp()), data)
^
/usr/local/include/boost/container/map.hpp:886:28: note: in instantiation of function template specialization 'boost::container::dtl::tree<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> >, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::try_emplace<const int &>' requested here
{ return this->base_t::try_emplace(const_iterator(), k, boost::forward<Args>(args)...); }
^
/usr/local/include/boost/container/map.hpp:1293:20: note: in instantiation of function template specialization 'boost::container::map<int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void>, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::try_emplace<>' requested here
return this->try_emplace(boost::forward<KeyConvertible>(k)).first->second;
^
/usr/local/include/boost/container/map.hpp:581:85: note: in instantiation of function template specialization 'boost::container::map<int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void>::priv_subscript<const int &>' requested here
BOOST_MOVE_CONVERSION_AWARE_CATCH( operator[] , key_type, mapped_type&, this->priv_subscript)
^
shmem_sparse_matrix.cpp:47:37: note: in instantiation of member function 'boost::container::map<int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void>::operator[]' requested here
Shared::Row &row = (*matrix)[i];
^
In file included from shmem_sparse_matrix.cpp:5:
In file included from /usr/local/include/boost/interprocess/containers/map.hpp:23:
In file included from /usr/local/include/boost/container/map.hpp:30:
/usr/local/include/boost/container/detail/tree.hpp:468:14: error: type 'const key_compare' (aka 'const boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >') does not provide a call operator
{ return this->key_comp()(this->key_from(nonkey1), key2); }
^~~~~~~~~~~~~~~~
/usr/local/include/boost/intrusive/detail/tree_value_compare.hpp:175:14: note: in instantiation of function template specialization
'boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,
boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >::operator()<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true> >' requested here
{ return this->key_comp()(key1, nonkey2); }
^
/usr/local/include/boost/intrusive/detail/key_nodeptr_comp.hpp:104:14: note: in instantiation of function template specialization 'boost::intrusive::tree_value_compare<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true> *, boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >, boost::move_detail::identity<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true> >,
bool, true>::operator()<int>' requested here
{ return base()(*traits_->to_value_ptr(t1), t2); }
^
/usr/local/include/boost/intrusive/bstree_algorithms.hpp:1026:41: note: in instantiation of function template specialization
'boost::intrusive::detail::key_nodeptr_comp<boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >,
boost::intrusive::bhtraits<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true>,
boost::intrusive::rbtree_node_traits<void *, true>, boost::intrusive::link_mode_type::normal_link, boost::intrusive::dft_tag, 3>, boost::move_detail::identity<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int,
int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true> > >::operator()<boost::intrusive::compact_rbtree_node<void *> *, int>' requested here
const bool not_present = !prev || comp(prev, key);
^
/usr/local/include/boost/intrusive/bstree.hpp:499:28: note: in instantiation of function template specialization 'boost::intrusive::bstree_algorithms<boost::intrusive::rbtree_node_traits<void *, true> >::insert_unique_check<int,
boost::intrusive::detail::key_nodeptr_comp<boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >,
boost::intrusive::bhtraits<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true>,
boost::intrusive::rbtree_node_traits<void *, true>, boost::intrusive::link_mode_type::normal_link, boost::intrusive::dft_tag, 3>, boost::move_detail::identity<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int,
int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true> > > >' requested here
(node_algorithms::insert_unique_check
^
/usr/local/include/boost/container/detail/tree.hpp:1099:51: note: in instantiation of function template specialization 'boost::intrusive::bstbase2<boost::intrusive::bhtraits<boost::container::dtl::tree_node<std::pair<const int,
boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,
boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::rbtree_node_traits<void *, true>,
boost::intrusive::link_mode_type::normal_link, boost::intrusive::dft_tag, 3>, void, boost::container::value_to_node_compare<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::tree_value_compare<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> > *, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int>, bool, false>, bool>,
boost::intrusive::algo_types::RbTreeAlgorithms, void>::insert_unique_check<int, boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> > >' requested here
hint == const_iterator() ? this->icont().insert_unique_check( k, KeyNodeCompare(key_comp()), data)
^
/usr/local/include/boost/container/map.hpp:886:28: note: in instantiation of function template specialization 'boost::container::dtl::tree<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> >, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::try_emplace<const int &>' requested here
{ return this->base_t::try_emplace(const_iterator(), k, boost::forward<Args>(args)...); }
^
/usr/local/include/boost/container/map.hpp:1293:20: note: in instantiation of function template specialization 'boost::container::map<int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void>, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::try_emplace<>' requested here
return this->try_emplace(boost::forward<KeyConvertible>(k)).first->second;
^
/usr/local/include/boost/container/map.hpp:581:85: note: in instantiation of function template specialization 'boost::container::map<int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void>::priv_subscript<const int &>' requested here
BOOST_MOVE_CONVERSION_AWARE_CATCH( operator[] , key_type, mapped_type&, this->priv_subscript)
^
shmem_sparse_matrix.cpp:47:37: note: in instantiation of member function 'boost::container::map<int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void>::operator[]' requested here
Shared::Row &row = (*matrix)[i];
^
In file included from shmem_sparse_matrix.cpp:5:
In file included from /usr/local/include/boost/interprocess/containers/map.hpp:23:
In file included from /usr/local/include/boost/container/map.hpp:30:
In file included from /usr/local/include/boost/container/detail/tree.hpp:36:
In file included from /usr/local/include/boost/container/detail/node_alloc_holder.hpp:30:
In file included from /usr/local/include/boost/container/detail/allocator_version_traits.hpp:27:
In file included from /usr/local/include/boost/container/detail/multiallocation_chain.hpp:31:
In file included from /usr/local/include/boost/intrusive/slist.hpp:36:
In file included from /usr/local/include/boost/intrusive/detail/key_nodeptr_comp.hpp:26:
/usr/local/include/boost/intrusive/detail/tree_value_compare.hpp:98:14: error: type 'const key_compare' (aka 'const boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >') does not provide a call operator
{ return this->key_comp()(KeyOfValue()(value1), KeyOfValue()(value2)); }
^~~~~~~~~~~~~~~~
/usr/local/include/boost/container/detail/compare_functors.hpp:58:14: note: in instantiation of member function 'boost::intrusive::tree_value_compare<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> > *, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int>, bool, false>::operator()' requested here
{ return static_cast<const Pred&>(*this)(a.get_data(), b.get_data()); }
^
/usr/local/include/boost/intrusive/detail/tree_value_compare.hpp:170:14: note: in instantiation of member function 'boost::container::value_to_node_compare<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::tree_value_compare<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> > *, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int>, bool, false>, bool>::operator()'
requested here
{ return this->key_comp()(key1, key2); }
^
/usr/local/include/boost/intrusive/bstree.hpp:1331:45: note: in instantiation of member function 'boost::intrusive::tree_value_compare<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true> *, boost::container::value_to_node_compare<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::tree_value_compare<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> > *, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int>, bool, false>, bool>,
boost::move_detail::identity<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true> >,
bool, true>::operator()' requested here
BOOST_ASSERT(( p == this->end() || !this->comp()(*p, value) ));
^
/usr/local/include/boost/container/detail/tree.hpp:1102:36: note: in instantiation of member function 'boost::intrusive::bstree_impl<boost::intrusive::bhtraits<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::rbtree_node_traits<void *, true>, boost::intrusive::link_mode_type::normal_link,
boost::intrusive::dft_tag, 3>, void, boost::container::value_to_node_compare<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *,
boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::tree_value_compare<std::pair<const int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> > *,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int>, bool, false>, bool>, unsigned long, true, boost::intrusive::algo_types::RbTreeAlgorithms, void>::insert_unique_commit' requested here
ret.first = this->icont().insert_unique_commit
^
/usr/local/include/boost/container/map.hpp:886:28: note: in instantiation of function template specialization 'boost::container::dtl::tree<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> >, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::try_emplace<const int &>' requested here
{ return this->base_t::try_emplace(const_iterator(), k, boost::forward<Args>(args)...); }
^
/usr/local/include/boost/container/map.hpp:1293:20: note: in instantiation of function template specialization 'boost::container::map<int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void>, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::try_emplace<>' requested here
return this->try_emplace(boost::forward<KeyConvertible>(k)).first->second;
^
/usr/local/include/boost/container/map.hpp:581:85: note: in instantiation of function template specialization 'boost::container::map<int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void>::priv_subscript<const int &>' requested here
BOOST_MOVE_CONVERSION_AWARE_CATCH( operator[] , key_type, mapped_type&, this->priv_subscript)
^
shmem_sparse_matrix.cpp:47:37: note: in instantiation of member function 'boost::container::map<int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void>::operator[]' requested here
Shared::Row &row = (*matrix)[i];
^
In file included from shmem_sparse_matrix.cpp:6:
/usr/local/include/boost/container/scoped_allocator.hpp:443:4: error: constructor for 'boost::container::dtl::scoped_allocator_adaptor_base<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> >>' must explicitly initialize the base class 'boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> >' which does not have a default constructor
scoped_allocator_adaptor_base()
^
/usr/local/include/boost/container/scoped_allocator.hpp:644:4: note: in instantiation of member function 'boost::container::dtl::scoped_allocator_adaptor_base<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> >>::scoped_allocator_adaptor_base' requested here
scoped_allocator_adaptor()
^
/usr/local/include/boost/intrusive/detail/ebo_functor_holder.hpp:235:9: note: in instantiation of member function 'boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >::scoped_allocator_adaptor' requested here
: T()
^
/usr/local/include/boost/intrusive/detail/tree_value_compare.hpp:63:10: note: in instantiation of member function 'boost::intrusive::detail::ebo_functor_holder<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, false>::ebo_functor_holder' requested here
: base_t()
^
/usr/local/include/boost/container/detail/compare_functors.hpp:50:9: note: in instantiation of member function 'boost::intrusive::tree_value_compare<std::pair<const int, int> *,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int>, bool, false>::tree_value_compare' requested here
: Pred()
^
/usr/local/include/boost/intrusive/bstree.hpp:689:20: note: in instantiation of member function 'boost::container::value_to_node_compare<boost::container::dtl::tree_node<std::pair<const int, int>, void *,
boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::tree_value_compare<std::pair<const int, int> *, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const
int>, bool, false>, bool>::value_to_node_compare' requested here
: data_type(key_compare(), value_traits())
^
/usr/local/include/boost/intrusive/rbtree.hpp:126:10: note: (skipping 8 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
: tree_type()
^
/usr/local/include/boost/container/detail/tree.hpp:1103:28: note: in instantiation of function template specialization 'boost::container::dtl::node_alloc_holder<boost::container::new_allocator<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> > >, boost::intrusive::rbtree_impl<boost::intrusive::bhtraits<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *, boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::rbtree_node_traits<void *, true>, boost::intrusive::link_mode_type::normal_link,
boost::intrusive::dft_tag, 3>, void, boost::container::value_to_node_compare<boost::container::dtl::tree_node<std::pair<const int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> >, void *,
boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::tree_value_compare<std::pair<const int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void> > *,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int>, bool, false>, bool>, unsigned long, true, void> >::create_node<boost::container::try_emplace_t, const int &>' requested here
(*AllocHolder::create_node(try_emplace_t(), boost::forward<KeyType>(key), boost::forward<Args>(args)...), data);
^
/usr/local/include/boost/container/map.hpp:886:28: note: in instantiation of function template specialization 'boost::container::dtl::tree<std::pair<const int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void> >, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::try_emplace<const int &>' requested here
{ return this->base_t::try_emplace(const_iterator(), k, boost::forward<Args>(args)...); }
^
/usr/local/include/boost/container/map.hpp:1293:20: note: in instantiation of function template specialization 'boost::container::map<int, boost::container::map<int, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void>, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::try_emplace<>' requested here
return this->try_emplace(boost::forward<KeyConvertible>(k)).first->second;
^
/usr/local/include/boost/container/map.hpp:581:85: note: in instantiation of function template specialization 'boost::container::map<int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void>::priv_subscript<const int &>' requested here
BOOST_MOVE_CONVERSION_AWARE_CATCH( operator[] , key_type, mapped_type&, this->priv_subscript)
^
shmem_sparse_matrix.cpp:47:37: note: in instantiation of member function 'boost::container::map<int, boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void>::operator[]' requested here
Shared::Row &row = (*matrix)[i];
^
/usr/local/include/boost/interprocess/allocators/allocator.hpp:55:7: note: 'boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,
boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> >' declared here
class allocator
^
In file included from shmem_sparse_matrix.cpp:5:
In file included from /usr/local/include/boost/interprocess/containers/map.hpp:23:
In file included from /usr/local/include/boost/container/map.hpp:30:
/usr/local/include/boost/container/detail/tree.hpp:464:14: error: type 'const key_compare' (aka 'const boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >') does not provide a call operator
{ return this->key_comp()(key1, this->key_from(nonkey2)); }
^~~~~~~~~~~~~~~~
/usr/local/include/boost/intrusive/detail/tree_value_compare.hpp:180:14: note: in instantiation of function template specialization
'boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,
boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >::operator()<boost::container::dtl::tree_node<std::pair<const int, int>, void *,
boost::container::tree_type_enum::red_black_tree, true> >' requested here
{ return this->key_comp()(nonkey1, key2); }
^
/usr/local/include/boost/intrusive/detail/key_nodeptr_comp.hpp:110:14: note: in instantiation of function template specialization 'boost::intrusive::tree_value_compare<boost::container::dtl::tree_node<std::pair<const int, int>, void *,
boost::container::tree_type_enum::red_black_tree, true> *, boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >,
boost::move_detail::identity<boost::container::dtl::tree_node<std::pair<const int, int>, void *, boost::container::tree_type_enum::red_black_tree, true> >, bool, true>::operator()<int>' requested here
{ return base()(t1, *traits_->to_value_ptr(t2)); }
^
/usr/local/include/boost/intrusive/bstree_algorithms.hpp:1017:28: note: in instantiation of function template specialization
'boost::intrusive::detail::key_nodeptr_comp<boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >,
boost::intrusive::bhtraits<boost::container::dtl::tree_node<std::pair<const int, int>, void *, boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::rbtree_node_traits<void *, true>,
boost::intrusive::link_mode_type::normal_link, boost::intrusive::dft_tag, 3>, boost::move_detail::identity<boost::container::dtl::tree_node<std::pair<const int, int>, void *, boost::container::tree_type_enum::red_black_tree, true> >
>::operator()<int, boost::intrusive::compact_rbtree_node<void *> *>' requested here
x = (left_child = comp(key, x)) ?
^
/usr/local/include/boost/intrusive/bstree.hpp:499:28: note: in instantiation of function template specialization 'boost::intrusive::bstree_algorithms<boost::intrusive::rbtree_node_traits<void *, true> >::insert_unique_check<int,
boost::intrusive::detail::key_nodeptr_comp<boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >,
boost::intrusive::bhtraits<boost::container::dtl::tree_node<std::pair<const int, int>, void *, boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::rbtree_node_traits<void *, true>,
boost::intrusive::link_mode_type::normal_link, boost::intrusive::dft_tag, 3>, boost::move_detail::identity<boost::container::dtl::tree_node<std::pair<const int, int>, void *, boost::container::tree_type_enum::red_black_tree, true> > > >'
requested here
(node_algorithms::insert_unique_check
^
/usr/local/include/boost/container/detail/tree.hpp:1099:51: note: in instantiation of function template specialization 'boost::intrusive::bstbase2<boost::intrusive::bhtraits<boost::container::dtl::tree_node<std::pair<const int, int>, void *,
boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::rbtree_node_traits<void *, true>, boost::intrusive::link_mode_type::normal_link, boost::intrusive::dft_tag, 3>, void,
boost::container::value_to_node_compare<boost::container::dtl::tree_node<std::pair<const int, int>, void *, boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::tree_value_compare<std::pair<const int, int> *,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int>, bool, false>, bool>, boost::intrusive::algo_types::RbTreeAlgorithms, void>::insert_unique_check<int,
boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,
boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> > >' requested here
hint == const_iterator() ? this->icont().insert_unique_check( k, KeyNodeCompare(key_comp()), data)
^
/usr/local/include/boost/container/map.hpp:886:28: note: in instantiation of function template specialization 'boost::container::dtl::tree<std::pair<const int, int>, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void>::try_emplace<const int &>' requested here
{ return this->base_t::try_emplace(const_iterator(), k, boost::forward<Args>(args)...); }
^
/usr/local/include/boost/container/map.hpp:1293:20: note: in instantiation of function template specialization 'boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::try_emplace<>' requested here
return this->try_emplace(boost::forward<KeyConvertible>(k)).first->second;
^
/usr/local/include/boost/container/map.hpp:581:85: note: in instantiation of function template specialization 'boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::priv_subscript<const int &>'
requested here
BOOST_MOVE_CONVERSION_AWARE_CATCH( operator[] , key_type, mapped_type&, this->priv_subscript)
^
shmem_sparse_matrix.cpp:48:12: note: in instantiation of member function 'boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::operator[]' requested here
row[j] = k;
^
In file included from shmem_sparse_matrix.cpp:5:
In file included from /usr/local/include/boost/interprocess/containers/map.hpp:23:
In file included from /usr/local/include/boost/container/map.hpp:30:
/usr/local/include/boost/container/detail/tree.hpp:468:14: error: type 'const key_compare' (aka 'const boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >') does not provide a call operator
{ return this->key_comp()(this->key_from(nonkey1), key2); }
^~~~~~~~~~~~~~~~
/usr/local/include/boost/intrusive/detail/tree_value_compare.hpp:175:14: note: in instantiation of function template specialization
'boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,
boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >::operator()<boost::container::dtl::tree_node<std::pair<const int, int>, void *,
boost::container::tree_type_enum::red_black_tree, true> >' requested here
{ return this->key_comp()(key1, nonkey2); }
^
/usr/local/include/boost/intrusive/detail/key_nodeptr_comp.hpp:104:14: note: in instantiation of function template specialization 'boost::intrusive::tree_value_compare<boost::container::dtl::tree_node<std::pair<const int, int>, void *,
boost::container::tree_type_enum::red_black_tree, true> *, boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >,
boost::move_detail::identity<boost::container::dtl::tree_node<std::pair<const int, int>, void *, boost::container::tree_type_enum::red_black_tree, true> >, bool, true>::operator()<int>' requested here
{ return base()(*traits_->to_value_ptr(t1), t2); }
^
/usr/local/include/boost/intrusive/bstree_algorithms.hpp:1026:41: note: in instantiation of function template specialization
'boost::intrusive::detail::key_nodeptr_comp<boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >,
boost::intrusive::bhtraits<boost::container::dtl::tree_node<std::pair<const int, int>, void *, boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::rbtree_node_traits<void *, true>,
boost::intrusive::link_mode_type::normal_link, boost::intrusive::dft_tag, 3>, boost::move_detail::identity<boost::container::dtl::tree_node<std::pair<const int, int>, void *, boost::container::tree_type_enum::red_black_tree, true> >
>::operator()<boost::intrusive::compact_rbtree_node<void *> *, int>' requested here
const bool not_present = !prev || comp(prev, key);
^
/usr/local/include/boost/intrusive/bstree.hpp:499:28: note: in instantiation of function template specialization 'boost::intrusive::bstree_algorithms<boost::intrusive::rbtree_node_traits<void *, true> >::insert_unique_check<int,
boost::intrusive::detail::key_nodeptr_comp<boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> >,
boost::intrusive::bhtraits<boost::container::dtl::tree_node<std::pair<const int, int>, void *, boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::rbtree_node_traits<void *, true>,
boost::intrusive::link_mode_type::normal_link, boost::intrusive::dft_tag, 3>, boost::move_detail::identity<boost::container::dtl::tree_node<std::pair<const int, int>, void *, boost::container::tree_type_enum::red_black_tree, true> > > >'
requested here
(node_algorithms::insert_unique_check
^
/usr/local/include/boost/container/detail/tree.hpp:1099:51: note: in instantiation of function template specialization 'boost::intrusive::bstbase2<boost::intrusive::bhtraits<boost::container::dtl::tree_node<std::pair<const int, int>, void *,
boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::rbtree_node_traits<void *, true>, boost::intrusive::link_mode_type::normal_link, boost::intrusive::dft_tag, 3>, void,
boost::container::value_to_node_compare<boost::container::dtl::tree_node<std::pair<const int, int>, void *, boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::tree_value_compare<std::pair<const int, int> *,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int>, bool, false>, bool>, boost::intrusive::algo_types::RbTreeAlgorithms, void>::insert_unique_check<int,
boost::container::dtl::key_node_compare<boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,
boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int> > >' requested here
hint == const_iterator() ? this->icont().insert_unique_check( k, KeyNodeCompare(key_comp()), data)
^
/usr/local/include/boost/container/map.hpp:886:28: note: in instantiation of function template specialization 'boost::container::dtl::tree<std::pair<const int, int>, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void>::try_emplace<const int &>' requested here
{ return this->base_t::try_emplace(const_iterator(), k, boost::forward<Args>(args)...); }
^
/usr/local/include/boost/container/map.hpp:1293:20: note: in instantiation of function template specialization 'boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::try_emplace<>' requested here
return this->try_emplace(boost::forward<KeyConvertible>(k)).first->second;
^
/usr/local/include/boost/container/map.hpp:581:85: note: in instantiation of function template specialization 'boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::priv_subscript<const int &>'
requested here
BOOST_MOVE_CONVERSION_AWARE_CATCH( operator[] , key_type, mapped_type&, this->priv_subscript)
^
shmem_sparse_matrix.cpp:48:12: note: in instantiation of member function 'boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::operator[]' requested here
row[j] = k;
^
In file included from shmem_sparse_matrix.cpp:5:
In file included from /usr/local/include/boost/interprocess/containers/map.hpp:23:
In file included from /usr/local/include/boost/container/map.hpp:30:
In file included from /usr/local/include/boost/container/detail/tree.hpp:36:
In file included from /usr/local/include/boost/container/detail/node_alloc_holder.hpp:30:
In file included from /usr/local/include/boost/container/detail/allocator_version_traits.hpp:27:
In file included from /usr/local/include/boost/container/detail/multiallocation_chain.hpp:31:
In file included from /usr/local/include/boost/intrusive/slist.hpp:36:
In file included from /usr/local/include/boost/intrusive/detail/key_nodeptr_comp.hpp:26:
/usr/local/include/boost/intrusive/detail/tree_value_compare.hpp:98:14: error: type 'const key_compare' (aka 'const boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >') does not provide a call operator
{ return this->key_comp()(KeyOfValue()(value1), KeyOfValue()(value2)); }
^~~~~~~~~~~~~~~~
/usr/local/include/boost/container/detail/compare_functors.hpp:58:14: note: in instantiation of member function 'boost::intrusive::tree_value_compare<std::pair<const int, int> *,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int>, bool, false>::operator()' requested here
{ return static_cast<const Pred&>(*this)(a.get_data(), b.get_data()); }
^
/usr/local/include/boost/intrusive/detail/tree_value_compare.hpp:170:14: note: in instantiation of member function 'boost::container::value_to_node_compare<boost::container::dtl::tree_node<std::pair<const int, int>, void *,
boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::tree_value_compare<std::pair<const int, int> *, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const
int>, bool, false>, bool>::operator()' requested here
{ return this->key_comp()(key1, key2); }
^
/usr/local/include/boost/intrusive/bstree.hpp:1331:45: note: in instantiation of member function 'boost::intrusive::tree_value_compare<boost::container::dtl::tree_node<std::pair<const int, int>, void *,
boost::container::tree_type_enum::red_black_tree, true> *, boost::container::value_to_node_compare<boost::container::dtl::tree_node<std::pair<const int, int>, void *, boost::container::tree_type_enum::red_black_tree, true>,
boost::intrusive::tree_value_compare<std::pair<const int, int> *, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int>, bool, false>, bool>,
boost::move_detail::identity<boost::container::dtl::tree_node<std::pair<const int, int>, void *, boost::container::tree_type_enum::red_black_tree, true> >, bool, true>::operator()' requested here
BOOST_ASSERT(( p == this->end() || !this->comp()(*p, value) ));
^
/usr/local/include/boost/container/detail/tree.hpp:1102:36: note: in instantiation of member function 'boost::intrusive::bstree_impl<boost::intrusive::bhtraits<boost::container::dtl::tree_node<std::pair<const int, int>, void *,
boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::rbtree_node_traits<void *, true>, boost::intrusive::link_mode_type::normal_link, boost::intrusive::dft_tag, 3>, void,
boost::container::value_to_node_compare<boost::container::dtl::tree_node<std::pair<const int, int>, void *, boost::container::tree_type_enum::red_black_tree, true>, boost::intrusive::tree_value_compare<std::pair<const int, int> *,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, boost::container::dtl::select1st<const int>, bool, false>, bool>, unsigned long, true, boost::intrusive::algo_types::RbTreeAlgorithms, void>::insert_unique_commit' requested here
ret.first = this->icont().insert_unique_commit
^
/usr/local/include/boost/container/map.hpp:886:28: note: in instantiation of function template specialization 'boost::container::dtl::tree<std::pair<const int, int>, int,
boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long,
unsigned long, 0>, 0>, iset_index> > >, void, void>::try_emplace<const int &>' requested here
{ return this->base_t::try_emplace(const_iterator(), k, boost::forward<Args>(args)...); }
^
/usr/local/include/boost/container/map.hpp:1293:20: note: in instantiation of function template specialization 'boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::try_emplace<>' requested here
return this->try_emplace(boost::forward<KeyConvertible>(k)).first->second;
^
/usr/local/include/boost/container/map.hpp:581:85: note: in instantiation of function template specialization 'boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int,
boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::priv_subscript<const int &>'
requested here
BOOST_MOVE_CONVERSION_AWARE_CATCH( operator[] , key_type, mapped_type&, this->priv_subscript)
^
shmem_sparse_matrix.cpp:48:12: note: in instantiation of member function 'boost::container::map<int, int, boost::container::scoped_allocator_adaptor<boost::interprocess::allocator<int, boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0>, 0>, iset_index> > >, void, void>::operator[]' requested here
row[j] = k;
^
7 errors generated.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment