Boost C++ Libraries: Ticket #10732: clang-3.5 splay_set compiling error https://svn.boost.org/trac10/ticket/10732 <p> When compiling libcds project, the following error is encountered for clang-3.4, clang-3.5 64bit: </p> <pre class="wiki">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&lt;boost::intrusive::bs_set_member_hook&lt;void, void, void&gt; &gt;' BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER_DEFINITION(default_bstree_hook); </pre><p> 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 </p> <p> Compiler output: </p> <pre class="wiki">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&lt;boost::intrusive::bs_set_member_hook&lt;void, void, void&gt; &gt;' 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&lt;set::IntrusiveStripedSetHdrTest::base_item&lt;boost::intrusive::bs_set_member_hook&lt;void, void, void&gt; &gt; &gt;' requested here typedef typename F::template apply&lt;Param&gt;::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&lt;boost::intrusive::detail::default_bstree_hook, set::IntrusiveStripedSetHdrTest::base_item&lt;boost::intrusive::bs_set_member_hook&lt;void, void, void&gt; &gt; &gt;' requested here : if_c&lt;C,F1,F2&gt;::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&lt;true, boost::intrusive::detail::apply&lt;boost::intrusive::detail::default_bstree_hook, set::IntrusiveStripedSetHdrTest::base_item&lt;boost::intrusive::bs_set_member_hook&lt;void, void, void&gt; &gt; &gt;, boost::intrusive::detail::identity&lt;boost::intrusive::detail::default_bstree_hook&gt; &gt;' 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&lt;set::IntrusiveStripedSetHdrTest::base_item&lt;boost::intrusive::bs_set_member_hook&lt;void, void, void&gt; &gt;, boost::intrusive::detail::default_bstree_hook&gt;' 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&lt;set::IntrusiveStripedSetHdrTest::base_item&lt;boost::intrusive::bs_set_member_hook&lt;void, void, void&gt; &gt;, boost::intrusive::compare&lt;set::IntrusiveStripedSetHdrTest::less&lt;set::IntrusiveStripedSetHdrTest::base_item&lt;boost::intrusive::bs_set_member_hook&lt;void, void, void&gt; &gt; &gt; &gt;, void, void, void, void&gt;' requested here : public make_splay_set&lt;T, ^ ../cds/intrusive/striped_set/adapter.h:202:34: note: in instantiation of template class 'boost::intrusive::splay_set&lt;set::IntrusiveStripedSetHdrTest::base_item&lt;boost::intrusive::bs_set_member_hook&lt;void, void, void&gt; &gt;, boost::intrusive::compare&lt;set::IntrusiveStripedSetHdrTest::less&lt;set::IntrusiveStripedSetHdrTest::base_item&lt;boost::intrusive::bs_set_member_hook&lt;void, void, void&gt; &gt; &gt; &gt;, void, void, void, void&gt;' requested here typedef typename container_type::value_type value_type ; ///&lt; 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&lt;boost::intrusive::splay_set&lt;set::IntrusiveStripedSetHdrTest::base_item&lt;boost::intrusive::bs_set_member_hook&lt;void, void, void&gt; &gt;, boost::intrusive::compare&lt;set::IntrusiveStripedSetHdrTest::less&lt;set::IntrusiveStripedSetHdrTest::base_item&lt;boost::intrusive::bs_set_member_hook&lt;void, void, void&gt; &gt; &gt; &gt;, void, void, void, void&gt; &gt;' requested here typedef typename bucket_type::value_type value_type ; ///&lt; 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&lt;boost::intrusive::splay_set&lt;set::IntrusiveStripedSetHdrTest::base_item&lt;boost::intrusive::bs_set_member_hook&lt;void, void, void&gt; &gt;, boost::intrusive::compare&lt;set::IntrusiveStripedSetHdrTest::less&lt;set::IntrusiveStripedSetHdrTest::base_item&lt;boost::intrusive::bs_set_member_hook&lt;void, void, void&gt; &gt; &gt; &gt;, void, void, void, void&gt;, cds::opt::mutex_policy&lt;cds::intrusive::striped_set::refinable&lt;std::recursive_mutex, cds::backoff::yield, std::allocator&lt;int&gt; &gt; &gt;, cds::opt::hash&lt;set::IntrusiveStripedSetHdrTest::hash_int&gt;, cds::opt::resizing_policy&lt;cds::intrusive::striped_set::single_bucket_size_threshold&lt;0&gt; &gt; &gt;' requested here set_type s( 64, ci::striped_set::single_bucket_size_threshold&lt;0&gt;(256) ); ^ </pre> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/10732 Trac 1.4.3 khizmax@… Sat, 01 Nov 2014 12:08:03 GMT <link>https://svn.boost.org/trac10/ticket/10732#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10732#comment:1</guid> <description> <p> Similar error for Intel C++ 15 compiler for Linux (icc): </p> <pre class="wiki">icc -std=c++11 -c -pedantic -Wall -march=native -DNDEBUG -O3 -fno-strict-aliasing -fPIC -march=native -I/home/khizmax/works/lib/boost_1_56_0 -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_list.cpp -o ../tests/test-hdr/set/hdr_intrusive_refinable_hashset_list.o /home/khizmax/works/lib/boost_1_56_0/boost/intrusive/options.hpp(49): error: class "set::IntrusiveStripedSetHdrTest::member_item&lt;boost::intrusive::avl_set_member_hook&lt;void, void, void, void&gt;&gt;" has no member "default_avltree_hook" BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER_DEFINITION(default_avltree_hook); ^ detected during: instantiation of class "boost::intrusive::detail::default_avltree_hook::apply&lt;T&gt; [with T=set::&lt;unnamed&gt;::member_item_type]" at line 118 of "/home/khizmax/works/lib/boost_1_56_0/boost/intrusive/detail/mpl.hpp" instantiation of class "boost::intrusive::detail::apply&lt;F, Param&gt; [with F=boost::intrusive::avltree_defaults::proto_value_traits, Param=set::&lt;unnamed&gt;::member_item_type]" at line 182 of "/home/khizmax/works/lib/boost_1_56_0/boost/intrusive/detail/mpl.hpp" instantiation of class "boost::intrusive::detail::eval_if_c&lt;C, F1, F2&gt; [with C=true, F1=boost::intrusive::detail::apply&lt;boost::intrusive::avltree_defaults::proto_value_traits, set::&lt;unnamed&gt;::member_item_type&gt;, F2=boost::intrusive::detail::identity&lt;boost::intrusive::avltree_defaults::proto_value_traits&gt;]" at line 132 instantiation of class "boost::intrusive::detail::get_value_traits&lt;T, SupposedValueTraits&gt; [with T=set::&lt;unnamed&gt;::member_item_type, SupposedValueTraits=boost::intrusive::avltree_defaults::proto_value_traits]" at line 416 of "/home/khizmax/works/lib/boost_1_56_0/boost/intrusive/avl_set.hpp" instantiation of class "boost::intrusive::make_avl_set&lt;T, O1, O2, O3, O4, O5&gt; [with T=set::&lt;unnamed&gt;::member_item_type, O1=void, O2=void, O3=void, O4=void, O5=void]" at line 444 of "/home/khizmax/works/lib/boost_1_56_0/boost/intrusive/avl_set.hpp" instantiation of class "boost::intrusive::avl_set&lt;T, O1, O2, O3, O4, O5&gt; [with T=set::&lt;unnamed&gt;::member_item_type, O1=void, O2=void, O3=void, O4=void, O5=void]" at line 202 of "../cds/intrusive/striped_set/adapter.h" instantiation of class "cds::intrusive::striped_set::details::boost_intrusive_set_adapter&lt;Set&gt; [with Set=boost::intrusive::avl_set&lt;set::&lt;unnamed&gt;::member_item_type, void, void, void, void, void&gt;]" at line 279 of "../cds/intrusive/striped_set.h" instantiation of class "cds::intrusive::StripedSet&lt;Container, Options...&gt; [with Container=boost::intrusive::avl_set&lt;set::&lt;unnamed&gt;::member_item_type, boost::intrusive::member_hook&lt;set::&lt;unnamed&gt;::member_item_type, boost::intrusive::avl_set_member_hook&lt;void, void, void, void&gt;, &amp;set::IntrusiveStripedSetHdrTest::member_item&lt;boost::intrusive::avl_set_member_hook&lt;void, void, void, void&gt;&gt;::hMember&gt;, boost::intrusive::compare&lt;set::IntrusiveStripedSetHdrTest::less&lt;set::&lt;unnamed&gt;::member_item_type&gt;&gt;, void, void, void&gt;, Options=&lt;cds::opt::hash&lt;set::IntrusiveStripedSetHdrTest::hash_int&gt;, cds::opt::mutex_policy&lt;cds::intrusive::striped_set::refinable&lt;std::recursive_mutex, cds::backoff::yield, std::allocator&lt;int&gt;&gt;&gt;, cds::opt::resizing_policy&lt;cds::intrusive::striped_set::single_bucket_size_threshold&lt;0UL&gt;&gt;&gt;]" at line 96 of "../tests/test-hdr/set/hdr_intrusive_refinable_hashset_avlset.cpp" </pre> </description> <category>Ticket</category> </item> <item> <author>khizmax@…</author> <pubDate>Sat, 01 Nov 2014 12:46:31 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10732#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10732#comment:2</guid> <description> <p> MSVC 2013 Update 4 RC: similar error: </p> <pre class="wiki">1&gt;d:\Developer\libs\boost_1_56_0\boost/intrusive/options.hpp(50): error C2039: 'default_bstree_hook' : is not a member of 'set::IntrusiveStripedSetHdrTest::base_item&lt;set::`anonymous-namespace'::splay_set_base_hook&gt;' 1&gt; d:\Developer\libs\boost_1_56_0\boost/intrusive/detail/mpl.hpp(118) : see reference to class template instantiation 'boost::intrusive::detail::default_bstree_hook::apply&lt;Param&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; Param=set::`anonymous-namespace'::base_item_type 1&gt; ] 1&gt; d:\Developer\libs\boost_1_56_0\boost/intrusive/detail/mpl.hpp(183) : see reference to class template instantiation 'boost::intrusive::detail::apply&lt;SupposedValueTraits,T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; SupposedValueTraits=boost::intrusive::splaytree_defaults::proto_value_traits 1&gt; , T=set::`anonymous-namespace'::base_item_type 1&gt; ] 1&gt; d:\Developer\libs\boost_1_56_0\boost/intrusive/options.hpp(132) : see reference to class template instantiation 'boost::intrusive::detail::eval_if_c&lt;true,boost::intrusive::detail::apply&lt;SupposedValueTraits,T&gt;,boost::intrusive::detail::identity&lt;SupposedValueTraits&gt;&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; SupposedValueTraits=boost::intrusive::splaytree_defaults::proto_value_traits 1&gt; , T=set::`anonymous-namespace'::base_item_type 1&gt; ] 1&gt; d:\Developer\libs\boost_1_56_0\boost/intrusive/splay_set.hpp(437) : see reference to class template instantiation 'boost::intrusive::detail::get_value_traits&lt;T,boost::intrusive::splaytree_defaults::proto_value_traits&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=set::`anonymous-namespace'::base_item_type 1&gt; ] 1&gt; d:\Developer\libs\boost_1_56_0\boost/intrusive/splay_set.hpp(465) : see reference to class template instantiation 'boost::intrusive::make_splay_set&lt;T,O1,O2,O3,O4,O5&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=set::`anonymous-namespace'::base_item_type 1&gt; , O1=boost::intrusive::compare&lt;set::IntrusiveStripedSetHdrTest::less&lt;set::`anonymous-namespace'::base_item_type&gt;&gt; 1&gt; , O2=void 1&gt; , O3=void 1&gt; , O4=void 1&gt; , O5=void 1&gt; ] </pre> </description> <category>Ticket</category> </item> <item> <dc:creator>Ion Gaztañaga</dc:creator> <pubDate>Sat, 01 Nov 2014 15:12:23 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10732#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10732#comment:3</guid> <description> <p> I can't deduce much from the error log. Could you please send a little compilable example? </p> </description> <category>Ticket</category> </item> <item> <author>khizmax@…</author> <pubDate>Sat, 01 Nov 2014 16:06:23 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10732#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10732#comment:4</guid> <description> <p> Oops, it is my mistake, sorry. Looks like I jumbled base and member hook for boost 1.56+. </p> <p> I apologise, please, close the ticket. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Ion Gaztañaga</dc:creator> <pubDate>Thu, 04 Aug 2016 21:58:00 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/10732#comment:5 https://svn.boost.org/trac10/ticket/10732#comment:5 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">invalid</span> </li> </ul> <p> Reviewing old bugs. Closing as requested by reporter. </p> Ticket