如何解决将内存分配给 std::array 时出错
我的目的是将队列中的图像缓冲区传递给其他函数(在另一个线程中)进行处理,使用 http://www.cplusplus.com/reference/array/array/data/ 中的示例。但是我收到了以下错误:
error: request for member ‘data’ in ‘frame’,which is of non-class type ‘std::array<unsigned char,345600>()’
和
error: no matching function for call to ‘std::deque<std::array<unsigned char,345600> >::push_back(std::array<unsigned char,345600> (&)())’
这是我的代码,我想知道错误在哪里
// Declaration of array
std::deque<std::array<unsigned char,FRAME_WIDTH * FRAME_HEIGHT>> frameQueue;
// some processing
// some processing take place and the output is some buffer buf,type unsigned char
// declare an array object
std::array<unsigned char,FRAME_HEIGHT * FRAME_WIDTH> frame();
// set the array with memory from buf
std::memcpy (frame.data(),buf,FRAME_HEIGHT * FRAME_WIDTH);
// push it into queue
frameQueue.push_back(frame);
谢谢
解决方法
我认为你不应该在这一行的框架前使用括号:
std::array
正确的命令是:
std::array
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。