gpt4 book ai didi

c++ - "void value not ignored as it ought to be"非空函数

转载 作者:太空狗 更新时间:2023-10-29 23:48:51 26 4
gpt4 key购买 nike

这是我的代码

  void execute() {
for (u32 f = 0; f < numForces; f++)
{
u32 length = end - start;
PhysicalObject* arr = objects + start;
std::vector<bool> tmp(length);
bool* tmpArr = tmp.data();
forces[f].affected(arr, length, tmpArr);
for(u32 index = 0; index < length; index++)
if (tmp[index])
forces[f].apply(arr[index]);
}
}

这条线

      bool* tmpArr = tmp.data();

抛出错误:“void value not ignored as it should be”我查看了文档,确定 vector 的数据方法是非 void 的,应该返回一个指针:> http://www.cplusplus.com/reference/vector/vector/data/

有什么可能出错的想法吗?

重要的事情:

  • 我包括 vector
  • 我在 gcc 上的编译标志:-Wall -Wextra -Wcast-qual -pedantic -pedantic-errors -Wfatal-errors -Wno-missing-braces -Werror
  • 该函数是一个类,但我没有添加其余部分,因为它只是转移了问题的焦点,而且它是一个使用复杂架构并行运行的类。

最佳答案

不幸的是vector<bool>很特别。

https://en.cppreference.com/w/cpp/container/vector_bool

切换到 vector<uint8_t> 可能会更好

关于c++ - "void value not ignored as it ought to be"非空函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51352045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com