Boost.Asio如何创建一个大小等于数组大小的缓冲区对象
How can Boost.Asio create a buffer object of size equal to the size of the array?
考虑以下行(Boost/C++):
char d1[128];
size_t bytes_transferred = sock.receive(boost::asio::buffer(d1));
Boost.Asio 文档指出创建了一个大小为 128 的缓冲区。
但是 Boost 如何确定阵列的大小呢?我已经读过几个问题,答案是数组的大小不能在C++中确定。
对于
编译时已知大小的数组,有模板专用化 http://www.boost.org/doc/libs/1_60_0/doc/html/boost_asio/reference/buffer/overload7.html
template<
typename PodType,
std::size_t N>
mutable_buffers_1 buffer(
PodType (&data)[N]);
在C++中,'char[5]'、'char[128]'和'char*'是不同的类型,因此编译器可以利用这个 http://www.cplusplus.com/faq/sequences/arrays/sizeof-array/#cpp
相关文章:
- 使用递归的数组的最小值.这是怎么回事
- 在二维数组中查找最小值和最大值?
- 有没有办法使用递归函数找到数组中最小值的 INDEX?C++
- 如何在数组中找到最小编号的索引号?
- 如何在数组中交换最小和最大的位置?
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 在数组中输入 n 个整数的列表,并以类似于钟摆来回移动的方式排列它们. 输入-1 3 2 5 4,输出5 3 1 2 4
- 需要使用模板查找数组的第二个最小和最小值
- C++未知长度字符串的数组,其行为类似于 Python 字符串列表
- 如何有效地找到数组中三元组和的最小差异?
- 查找数组中指示性较大但数组中值较小的元素
- 将二进制操作员应用于数组中的每个元素
- 最小的正乘数,当应用于数组时,使数组成为积分
- 将函数应用于数组向量的元素
- 指向成员的指针的语法糖适用于数组,但不适用于 std::vector
- 将功能应用于数组中的每个元素
- 如何将函数应用于数组中的所有元素(在C++模板类中)
- 应用于数组的高阶函数
- 警告:数组下标高于数组边界 [-Warray-bounds]
- STL容器相对于数组的速度