On Thu, Mar 7, 2019 at 7:33 PM Willem Jan Withagen <wjw@xxxxxxxxxxx> wrote: > > Hi, > > In its steps forward FreeBSD has moved to Clang 8.0 on the HEAD release, > soon to be followed on other releases. Also Boost on FreeBSD will soon > migrate to 1.70, but not clear how much fallout that'll generate. > > And this Clang version complains about a protected destructor in Boost > code, which seems to be intentionally protected. > So getting Boost to fix this is probably not going to happen. > > I now crudely fixed temporarily it by unprotecting the dtor in the boost > include, but can't ask other to do that. > > So I need a dtor in this Temple class. > I tried all in cantations I could think of but apparently is my C++ foo > not enough. > > Can somebody suggest a dtor? where I can't seem to get the class type > correct. > Or another way around this? Willem, probably you could use the same approach explained by https://github.com/ceph/ceph/pull/26301/commits/09870d7a083913b5a3830ba8b0be04d0b0996aca ? > > Thanx, > --WjW > > > /home/jenkins/workspace/ceph-master/src/librbd/io/ImageDispatchSpec.cc:136:48: > error: temporary of type 'boost::static_visitor<bool>' has protected > destructor > return boost::apply_visitor(IsWriteOpVisitor{}, m_request); > ^ > /home/jenkins/workspace/ceph-master/src/librbd/io/ImageDispatchSpec.cc:152:28: > note: in instantiation of member function > 'librbd::io::ImageDispatchSpec<librbd::ImageCtx>::is_write_op' requested > here > template class librbd::io::ImageDispatchSpec<librbd::ImageCtx>; > ^ > /usr/local/include/boost/variant/static_visitor.hpp:53:5: note: declared > protected here > ~static_visitor() = default; > ^ > 1 error generated. > gmake[2]: *** [src/librbd/CMakeFiles/rbd_internal.dir/build.make:895: > src/librbd/CMakeFiles/rbd_internal.dir/io/ImageDispatchSpec.cc.o] Error 1 -- Regards Kefu Chai