[Boost-bugs] [Boost C++ Libraries] #10732: clang-3.5 splay_set compiling error

Subject: [Boost-bugs] [Boost C++ Libraries] #10732: clang-3.5 splay_set compiling error
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-11-01 10:10:05


#10732: clang-3.5 splay_set compiling error
-------------------------------------------+------------------------
 Reporter: khizmax@… | Owner: igaztanaga
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: intrusive
  Version: Boost 1.57.0 | Severity: Problem
 Keywords: splay_set default_bstree_hook |
-------------------------------------------+------------------------
 When compiling libcds project, the following error is encountered for
 clang-3.4, clang-3.5 64bit:

 {{{
 In file included from
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/splay_set.hpp:21:
 In file included from
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/splaytree.hpp:26:
 In file included from
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/bstree.hpp:25:
 In file included from
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/bs_set_hook.hpp:25:
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/options.hpp:54:48:
 error: no type named 'default_bstree_hook' in
 'set::IntrusiveStripedSetHdrTest::base_item<boost::intrusive::bs_set_member_hook<void,
 void, void> >'
 BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER_DEFINITION(default_bstree_hook);

 }}}

 The same error is observed or boost 1.55, 1.56, 1.57 beta1.
 Clang-3.3 and gcc-4.8, gcc-4.9 64bit is ok.
 Environment: ubuntu-14.04 amd64

 Compiler output:


 {{{
 clang-3.5 -std=c++11 -c -pedantic -Wall -mcx16 -march=native -DNDEBUG -O3
 -fno-strict-aliasing -m64 -fPIC -march=native
 -I/home/khizmax/works/lib/boost_1_57_0_b1 -D_REENTRANT
 -D_POSIX_PTHREAD_SEMANTICS -D_FILE_OFFSET_BITS=64 -I.. -I../tests/test-hdr
 -I../tests ../tests/test-
 hdr/set/hdr_intrusive_refinable_hashset_splayset.cpp -o ../tests/test-
 hdr/set/hdr_intrusive_refinable_hashset_splayset.o
 In file included from ../tests/test-
 hdr/set/hdr_intrusive_refinable_hashset_splayset.cpp:4:
 In file included from ../cds/intrusive/striped_set/boost_splay_set.h:6:
 In file included from
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/splay_set.hpp:21:
 In file included from
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/splaytree.hpp:26:
 In file included from
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/bstree.hpp:25:
 In file included from
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/bs_set_hook.hpp:25:
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/options.hpp:54:48:
 error: no type named 'default_bstree_hook' in
 'set::IntrusiveStripedSetHdrTest::base_item<boost::intrusive::bs_set_member_hook<void,
 void, void> >'
 BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER_DEFINITION(default_bstree_hook);
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/options.hpp:46:27:
 note: expanded from macro 'BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER_DEFINITION'
    { typedef typename T::BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER type; };\
                           ^
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/detail/mpl.hpp:139:24:
 note: in instantiation of template class
 'boost::intrusive::detail::default_bstree_hook::apply<set::IntrusiveStripedSetHdrTest::base_item<boost::intrusive::bs_set_member_hook<void,
 void, void> > >' requested here
    typedef typename F::template apply<Param>::type type;
                        ^
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/detail/mpl.hpp:203:7:
 note: in instantiation of template class
 'boost::intrusive::detail::apply<boost::intrusive::detail::default_bstree_hook,
 set::IntrusiveStripedSetHdrTest::base_item<boost::intrusive::bs_set_member_hook<void,
 void, void> > >' requested here
     : if_c<C,F1,F2>::type
       ^
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/options.hpp:145:21:
 note: in instantiation of template class
 'boost::intrusive::detail::eval_if_c<true,
 boost::intrusive::detail::apply<boost::intrusive::detail::default_bstree_hook,
 set::IntrusiveStripedSetHdrTest::base_item<boost::intrusive::bs_set_member_hook<void,
 void, void> > >,
 boost::intrusive::detail::identity<boost::intrusive::detail::default_bstree_hook>
>' requested here
    typedef typename eval_if_c
                     ^
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/splay_set.hpp:440:29:
 note: in instantiation of template class
 'boost::intrusive::detail::get_value_traits<set::IntrusiveStripedSetHdrTest::base_item<boost::intrusive::bs_set_member_hook<void,
 void, void> >, boost::intrusive::detail::default_bstree_hook>' requested
 here
    typedef typename detail::get_value_traits
                             ^
 /home/khizmax/works/lib/boost_1_57_0_b1/boost/intrusive/splay_set.hpp:463:14:
 note: in instantiation of template class
 'boost::intrusive::make_splay_set<set::IntrusiveStripedSetHdrTest::base_item<boost::intrusive::bs_set_member_hook<void,
 void, void> >,
 boost::intrusive::compare<set::IntrusiveStripedSetHdrTest::less<set::IntrusiveStripedSetHdrTest::base_item<boost::intrusive::bs_set_member_hook<void,
 void, void> > > >, void, void, void, void>' requested here
    : public make_splay_set<T,
              ^
 ../cds/intrusive/striped_set/adapter.h:202:34: note: in instantiation of
 template class
 'boost::intrusive::splay_set<set::IntrusiveStripedSetHdrTest::base_item<boost::intrusive::bs_set_member_hook<void,
 void, void> >,
 boost::intrusive::compare<set::IntrusiveStripedSetHdrTest::less<set::IntrusiveStripedSetHdrTest::base_item<boost::intrusive::bs_set_member_hook<void,
 void, void> > > >, void, void, void, void>' requested here
                 typedef typename container_type::value_type value_type
 ; ///< value type stored in the container
                                  ^
 ../cds/intrusive/striped_set.h:279:26: note: in instantiation of template
 class
 'cds::intrusive::striped_set::details::boost_intrusive_set_adapter<boost::intrusive::splay_set<set::IntrusiveStripedSetHdrTest::base_item<boost::intrusive::bs_set_member_hook<void,
 void, void> >,
 boost::intrusive::compare<set::IntrusiveStripedSetHdrTest::less<set::IntrusiveStripedSetHdrTest::base_item<boost::intrusive::bs_set_member_hook<void,
 void, void> > > >, void, void, void, void> >' requested here
         typedef typename bucket_type::value_type value_type ; ///<
 value type stored in the set
                          ^
 ../tests/test-hdr/set/hdr_intrusive_refinable_hashset_splayset.cpp:56:18:
 note: in instantiation of template class
 'cds::intrusive::StripedSet<boost::intrusive::splay_set<set::IntrusiveStripedSetHdrTest::base_item<boost::intrusive::bs_set_member_hook<void,
 void, void> >,
 boost::intrusive::compare<set::IntrusiveStripedSetHdrTest::less<set::IntrusiveStripedSetHdrTest::base_item<boost::intrusive::bs_set_member_hook<void,
 void, void> > > >, void, void, void, void>,
 cds::opt::mutex_policy<cds::intrusive::striped_set::refinable<std::recursive_mutex,
 cds::backoff::yield, std::allocator<int> > >,
 cds::opt::hash<set::IntrusiveStripedSetHdrTest::hash_int>,
 cds::opt::resizing_policy<cds::intrusive::striped_set::single_bucket_size_threshold<0>
> >' requested here
         set_type s( 64,
 ci::striped_set::single_bucket_size_threshold<0>(256) );
                  ^
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/10732>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:17 UTC