*equivalent = false;
return comparator;
}
+
+std::ostream& operator<<(std::ostream& out, const inode_backpointer_t& ib) {
+ return out << "<" << ib.dirino << "/" << ib.dname << " v" << ib.version << ">";
+}
+
+std::ostream& operator<<(std::ostream& out, const inode_backtrace_t& it) {
+ return out << "(" << it.pool << ")" << it.ino << ":" << it.ancestors << "//" << it.old_pools;
+}
#define CEPH_INODE_BACKTRACE_H
#include <list>
-#include <ostream>
+#include <iosfwd>
#include <string>
#include <string_view>
#include <vector>
return l.dirino == r.dirino && l.version == r.version && l.dname == r.dname;
}
-inline std::ostream& operator<<(std::ostream& out, const inode_backpointer_t& ib) {
- return out << "<" << ib.dirino << "/" << ib.dname << " v" << ib.version << ">";
-}
+std::ostream& operator<<(std::ostream& out, const inode_backpointer_t& ib);
/*
* inode_backtrace_t is a complete ancestor backtraces for a given inode.
};
WRITE_CLASS_ENCODER(inode_backtrace_t)
-inline std::ostream& operator<<(std::ostream& out, const inode_backtrace_t& it) {
- return out << "(" << it.pool << ")" << it.ino << ":" << it.ancestors << "//" << it.old_pools;
-}
+std::ostream& operator<<(std::ostream& out, const inode_backtrace_t& it);
inline bool operator==(const inode_backtrace_t& l,
const inode_backtrace_t& r) {