From: Willem Jan Withagen Date: Fri, 8 Mar 2019 13:59:09 +0000 (+0100) Subject: librbd: avoid aggregate-initializing IsWriteOpVisitor X-Git-Tag: v13.2.6~93^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=41f83de9bdcad8e7c3468e20f29ae62e68d97364;p=ceph.git librbd: avoid aggregate-initializing IsWriteOpVisitor Clang 8 complains about missing dtor, and this circumvents this problem. ``` /home/jenkins/workspace/ceph-master/src/librbd/io/ImageDispatchSpec.cc:136:48: error: temporary of type 'boost::static_visitor' 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::is_write_op' requested here template class librbd::io::ImageDispatchSpec; ^ /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 ``` The details of the problem are explained in more detail in: https://github.com/ceph/ceph/pull/26301/commits/09870d7a083913b5a3830ba8b0be04d0b0996aca Signed-off-by: Willem Jan Withagen (cherry picked from commit 1d7b291874b65770c0f0a56f2df59326687e7083) --- diff --git a/src/librbd/io/ImageDispatchSpec.cc b/src/librbd/io/ImageDispatchSpec.cc index d6794c65ee56..ca69a48ac493 100644 --- a/src/librbd/io/ImageDispatchSpec.cc +++ b/src/librbd/io/ImageDispatchSpec.cc @@ -84,7 +84,7 @@ void ImageDispatchSpec::fail(int r) { template bool ImageDispatchSpec::is_write_op() const { - return boost::apply_visitor(IsWriteOpVisitor{}, m_request); + return boost::apply_visitor(IsWriteOpVisitor(), m_request); } template