mdbx++: использование slice::invalid() для предотвращения незаметного неверного использования API.

This commit is contained in:
Леонид Юрьев (Leonid Yuriev) 2023-11-21 19:14:26 +03:00
parent 869cfb3fae
commit 304cf25149

View File

@ -4510,10 +4510,12 @@ public:
struct move_result : public pair_result {
inline move_result(const cursor &cursor, bool throw_notfound);
move_result(cursor &cursor, move_operation operation, bool throw_notfound)
: move_result(cursor, operation, slice(), slice(), throw_notfound) {}
: move_result(cursor, operation, slice::invalid(), slice::invalid(),
throw_notfound) {}
move_result(cursor &cursor, move_operation operation, const slice &key,
bool throw_notfound)
: move_result(cursor, operation, key, slice(), throw_notfound) {}
: move_result(cursor, operation, key, slice::invalid(),
throw_notfound) {}
inline move_result(cursor &cursor, move_operation operation,
const slice &key, const slice &value,
bool throw_notfound);
@ -4524,10 +4526,11 @@ public:
struct estimate_result : public pair {
ptrdiff_t approximate_quantity;
estimate_result(const cursor &cursor, move_operation operation)
: estimate_result(cursor, operation, slice(), slice()) {}
: estimate_result(cursor, operation, slice::invalid(),
slice::invalid()) {}
estimate_result(const cursor &cursor, move_operation operation,
const slice &key)
: estimate_result(cursor, operation, key, slice()) {}
: estimate_result(cursor, operation, key, slice::invalid()) {}
inline estimate_result(const cursor &cursor, move_operation operation,
const slice &key, const slice &value);
estimate_result(const estimate_result &) noexcept = default;
@ -4631,7 +4634,7 @@ public:
}
move_result move(move_operation operation, const slice &key,
bool throw_notfound) {
return move_result(*this, operation, key, throw_notfound);
return move_result(*this, operation, key, slice::invalid(), throw_notfound);
}
move_result move(move_operation operation, const slice &key,
const slice &value, bool throw_notfound) {