66#include " common/dout.h"
77#include " librbd/io/AioCompletion.h"
88#include " librbd/io/Utils.h"
9- #include < boost/variant/apply_visitor.hpp>
10- #include < boost/variant/static_visitor.hpp>
119
1210#define dout_subsys ceph_subsys_rbd
1311#undef dout_prefix
1715namespace librbd {
1816namespace io {
1917
20- struct ReadResult ::SetImageExtentsVisitor : public boost::static_visitor< void > {
18+ struct ReadResult ::SetImageExtentsVisitor {
2119 Extents image_extents;
2220
2321 explicit SetImageExtentsVisitor (const Extents& image_extents)
@@ -40,15 +38,15 @@ struct ReadResult::SetImageExtentsVisitor : public boost::static_visitor<void> {
4038 }
4139};
4240
43- struct ReadResult ::AssembleResultVisitor : public boost::static_visitor< void > {
41+ struct ReadResult ::AssembleResultVisitor {
4442 CephContext *cct;
4543 Striper::StripedReadResult &destriper;
4644
4745 AssembleResultVisitor (CephContext *cct, Striper::StripedReadResult &destriper)
4846 : cct(cct), destriper(destriper) {
4947 }
5048
51- void operator ()(Empty &empty) const {
49+ void operator ()(std::monostate &empty) const {
5250 ldout (cct, 20 ) << " dropping read result" << dendl;
5351 }
5452
@@ -230,9 +228,6 @@ void ReadResult::C_ObjectReadMergedExtents::finish(int r) {
230228 on_finish->complete (r);
231229}
232230
233- ReadResult::ReadResult () : m_buffer(Empty()) {
234- }
235-
236231ReadResult::ReadResult (char *buf, size_t buf_len)
237232 : m_buffer(Linear(buf, buf_len)) {
238233}
@@ -250,11 +245,11 @@ ReadResult::ReadResult(Extents* extent_map, ceph::bufferlist* bl)
250245}
251246
252247void ReadResult::set_image_extents (const Extents& image_extents) {
253- boost::apply_visitor (SetImageExtentsVisitor (image_extents), m_buffer);
248+ std::visit (SetImageExtentsVisitor (image_extents), m_buffer);
254249}
255250
256251void ReadResult::assemble_result (CephContext *cct) {
257- boost::apply_visitor (AssembleResultVisitor (cct, m_destriper), m_buffer);
252+ std::visit (AssembleResultVisitor (cct, m_destriper), m_buffer);
258253}
259254
260255} // namespace io
0 commit comments