MCPcopy Create free account
hub / github.com/BehaviorTree/BehaviorTree.CPP / mutable_buffer

Class mutable_buffer

3rdparty/cppzmq/zmq.hpp:1085–1110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1083// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4771.pdf
1084
1085class mutable_buffer
1086{
1087 public:
1088 constexpr mutable_buffer() noexcept : _data(nullptr), _size(0) {}
1089 constexpr mutable_buffer(void *p, size_t n) noexcept : _data(p), _size(n)
1090 {
1091#ifdef ZMQ_EXTENDED_CONSTEXPR
1092 assert(p != nullptr || n == 0);
1093#endif
1094 }
1095
1096 constexpr void *data() const noexcept { return _data; }
1097 constexpr size_t size() const noexcept { return _size; }
1098 mutable_buffer &operator+=(size_t n) noexcept
1099 {
1100 // (std::min) is a workaround for when a min macro is defined
1101 const auto shift = (std::min)(n, _size);
1102 _data = static_cast<char *>(_data) + shift;
1103 _size -= shift;
1104 return *this;
1105 }
1106
1107 private:
1108 void *_data;
1109 size_t _size;
1110};
1111
1112inline mutable_buffer operator+(const mutable_buffer &mb, size_t n) noexcept
1113{

Callers 2

operator+Function · 0.85
bufferFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected