您将如何限制缓冲区大小以及 return c++ 中的缓冲区限制?

How would you limit a buffer size and also return the buffer limit in c++?

我知道在 Java 中您使用 Bytebuffer .limit() 但我不确定如何在 C++ 中执行此操作。谢谢! ☺

部分代码如下:

float _proj[16];
float _projb[1];

//this->_proj.flip().limit(16);
swap(_proj, _projb);
this->_proj.get(this->proj);

我使用 std::swap 方法而不是翻转,因为 c++ 中没有 ByteBuffer。

一些接近的备选方案是 std::vectorstd::array

如果要使用字节数组,通常uint8_t,需要将数组传递给函数,以及数组的容量和元素数量

问题是,当数组传递给函数时,数组衰减为指向第一个元素的指针,没有任何容量信息。

没有任何工具可以防止索引超出数组的限制(容量)。这就是为什么 std::vector 是一个更安全的选择。