[Boost-bugs] [Boost C++ Libraries] #6720: intrusive::unordered_set::clear_and_dispose does not compile on VC11 Beta when passed a stateless lambda

Subject: [Boost-bugs] [Boost C++ Libraries] #6720: intrusive::unordered_set::clear_and_dispose does not compile on VC11 Beta when passed a stateless lambda
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-03-21 08:15:19


#6720: intrusive::unordered_set::clear_and_dispose does not compile on VC11 Beta
when passed a stateless lambda
----------------------------------------------------------+-----------------
 Reporter: Alexander Bessonov <alexbav@…> | Owner: igaztanaga
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: intrusive
  Version: Boost Development Trunk | Severity: Problem
 Keywords: |
----------------------------------------------------------+-----------------
 Attached is a small example code, which, being compiled on VC11 Beta
 produces a compilation error. The same code compiles successfully on
 VC2010.

 The following error is generated:


 {{{
 ...\boost\intrusive\slist.hpp(366): error C2247:
 'boost::intrusive::hashtable_impl<Config>::node_cast_adaptor<F>::operator
 ()' not accessible because
 'boost::intrusive::detail::node_disposer<F,Container>' uses 'private' to
 inherit from 'boost::intrusive::detail::ebo_functor_holder<T>'
           with
           [
 Config=boost::intrusive::detail::usetopt<boost::intrusive::detail::base_hook_traits<Item,boost::intrusive::slist_node_traits<void
 *>,safe_link,boost::intrusive::default_tag,4>,Item::hash,std::equal_to<Item>,unsigned
 int,boost::intrusive::detail::bucket_traits_impl<boost::intrusive::detail::get_slist_impl<boost::intrusive::slist_node_traits<void
 *>>::type>,1>,
 F=boost::intrusive::detail::node_disposer<main::<lambda_4ec9a6cb8e4a7175a276948992bf9089>,boost::intrusive::hashtable_impl<boost::intrusive::detail::usetopt<boost::intrusive::detail::base_hook_traits<Item,boost::intrusive::slist_node_traits<void
 *>,safe_link,boost::intrusive::default_tag,4>,Item::hash,std::equal_to<Item>,unsigned
 int,boost::intrusive::detail::bucket_traits_impl<boost::intrusive::detail::get_slist_impl<boost::intrusive::slist_node_traits<void
 *>>::type>,1>>>
           ]
           and
           [
               F=main::<lambda_4ec9a6cb8e4a7175a276948992bf9089>,
 Container=boost::intrusive::hashtable_impl<boost::intrusive::detail::usetopt<boost::intrusive::detail::base_hook_traits<Item,boost::intrusive::slist_node_traits<void
 *>,safe_link,boost::intrusive::default_tag,4>,Item::hash,std::equal_to<Item>,unsigned
 int,boost::intrusive::detail::bucket_traits_impl<boost::intrusive::detail::get_slist_impl<boost::intrusive::slist_node_traits<void
 *>>::type>,1>>
           ]
           and
           [
               T=main::<lambda_4ec9a6cb8e4a7175a276948992bf9089>
           ]
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/6720>
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:09 UTC