upgrade util::Buffer
This commit is contained in:
parent
cbbc04edcf
commit
d41ec3a019
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
#include <initializer_list>
|
||||||
|
|
||||||
namespace util {
|
namespace util {
|
||||||
/// @brief Template similar to std::unique_ptr stores a buffer with its size
|
/// @brief Template similar to std::unique_ptr stores a buffer with its size
|
||||||
@ -26,6 +27,19 @@ namespace util {
|
|||||||
std::memcpy(ptr.get(), src, length);
|
std::memcpy(ptr.get(), src, length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Buffer(std::initializer_list<T> values)
|
||||||
|
: ptr(std::make_unique<T>(values)), length(values.size()) {}
|
||||||
|
|
||||||
|
Buffer(std::nullptr_t) noexcept : ptr(nullptr), length(0) {}
|
||||||
|
|
||||||
|
inline bool operator==(std::nullptr_t) const noexcept {
|
||||||
|
return ptr == nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool operator!=(std::nullptr_t) const noexcept {
|
||||||
|
return ptr != nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
T& operator[](long long index) {
|
T& operator[](long long index) {
|
||||||
return ptr[index];
|
return ptr[index];
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user