boostorg / multi_index

Boost.org multi_index module
http://boost.org/libs/multi_index
45 stars 59 forks source link

error: cannot call member function impl() of impl_pointer in boost #52

Closed gp1322719830 closed 2 years ago

gp1322719830 commented 2 years ago

I am trying to build a version of Caffe for GPU on Ubuntu 18.04 with boost 1.67 an CUDA 10.1

I checked out the code and I am getting the error cannot call member function ‘boost::multi_index::detail::sequenced_index_node::impl_pointer boost::multi_index::detail::sequenced_index_node::impl() which seems to be related to boost library and I have installed boost as a dependency:

NVCC src/caffe/layers/cudnn_conv_layer.cu /usr/include/boost/multi_index/detail/seq_index_node.hpp: In instantiation of ‘static void boost::multi_index::detail::sequenced_index_node::increment(boost::multi_index::detail::sequenced_index_node&) [with Super = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::pair<const std::cxx11::basic_string, boost::property_tree::basic_ptree<std::__cxx11::basic_string, std::cxx11::basic_string > >, std::allocator<std::pair<const std::cxx11::basic_string, boost::property_tree::basic_ptree<std::__cxx11::basic_string, std::cxx11::basic_string > > > > >]’: /usr/include/boost/multi_index/detail/bidir_node_iterator.hpp:55:16: required from ‘boost::multi_index::detail::bidir_node_iterator& boost::multi_index::detail::bidir_node_iterator::operator++() [with Node = boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::pair<const std::cxx11::basic_string, boost::property_tree::basic_ptree<std::__cxx11::basic_string, std::cxx11::basic_string > >, std::allocator<std::pair<const std::cxx11::basic_string, boost::property_tree::basic_ptree<std::__cxx11::basic_string, std::cxx11::basic_string > > > > > >]’ /usr/include/boost/multi_index_container.hpp:269:73: required from ‘boost::multi_index::multi_index_container<Value, IndexSpecifierList, Allocator>::multi_index_container(const boost::multi_index::multi_index_container<Value, IndexSpecifierList, Allocator>&) [with Value = std::pair<const std::cxx11::basic_string, boost::property_tree::basic_ptree<std::__cxx11::basic_string, std::cxx11::basic_string > >; IndexSpecifierList = boost::multi_index::indexed_by<boost::multi_index::sequenced<boost::multi_index::tag<> >, boost::multi_index::ordered_non_unique<boost::multi_index::tag<boost::property_tree::basic_ptree<std::cxx11::basic_string, std::cxx11::basic_string >::subs::byname, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na>, boost::multi_index::member<std::pair<const std::cxx11::basic_string, boost::property_tree::basic_ptree<std::cxx11::basic_string, std::cxx11::basic_string > >, const std::__cxx11::basic_string, &std::pair<const std::cxx11::basic_string, boost::property_tree::basic_ptree<std::cxx11::basic_string, std::__cxx11::basic_string > >::first>, std::less<std::cxx11::basicstring > >, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl_::na>; Allocator = std::allocator<std::pair<const std::cxx11::basic_string, boost::property_tree::basic_ptree<std::__cxx11::basic_string, std::cxx11::basic_string > > >]’ /usr/include/boost/property_tree/detail/ptree_implementation.hpp:191:94: required from ‘boost::property_tree::basic_ptree<Key, Data, KeyCompare>::basic_ptree(const boost::property_tree::basic_ptree<Key, Data, KeyCompare>&) [with Key = std::cxx11::basic_string; Data = std::__cxx11::basic_string; KeyCompare = std::less<std::cxx11::basic_string >]’ src/caffe/layers/detection_output_layer.cu:220:29: required from ‘void caffe::DetectionOutputLayer::Forward_gpu(const std::vector<caffe::Blob>&, const std::vector<caffe::Blob>&) [with Dtype = float]’ src/caffe/layers/detection_output_layer.cu:302:147: required from here /usr/include/boost/multi_index/detail/seq_index_node.hpp:198:23: error: cannot call member function ‘boost::multi_index::detail::sequenced_index_node::impl_pointer boost::multi_index::detail::sequenced_index_node::impl() [with Super = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::pair<const std::cxx11::basic_string, boost::property_tree::basic_ptree<std::__cxx11::basic_string, std::cxx11::basic_string > >, std::allocator<std::pair<const std::cxx11::basic_string, boost::property_tree::basic_ptree<std::__cxx11::basic_string, std::cxx11::basic_string > > > > >; boost::multi_index::detail::sequenced_index_node::impl_pointer = boost::multi_index::detail::sequenced_index_node_impl<std::allocator >]’ without object impl_pointer xi=x->impl();

joaquintides commented 2 years ago

Hi,

Without a MCVE I'm afraid I can't provide much help. This certainly looks like a compiler bug. Things you could try:

Best,

joaquintides commented 2 years ago

Closing due to lack of further feedback from OP.