标准 vector.data return 无效
std vector.data return void
我需要你的帮助来解决我无法理解的非常奇怪的行为。
我写了一个vector.data的简单用法:
void* ptr = NULL; // really initialized somewhere else
bool* boolPtr = NULL;
boolPtr = ((std::vector<bool>*)ptr)->data();
当我编译时(使用 -std=c++17)我得到了错误
void value not ignored as it ought to be
我尝试了很多东西,但似乎每次我从一个转换向量(来自 void*)调用 data() 方法 return 一个 void 而不是 bool*。
我错过了什么?
vector<bool>
不是正确的向量。听起来很奇怪,但事实就是如此。它不能为您提供指向其内部 bool 数组的指针,因为它没有一个,因为它存储打包成单个位的值。
我需要你的帮助来解决我无法理解的非常奇怪的行为。
我写了一个vector.data的简单用法:
void* ptr = NULL; // really initialized somewhere else
bool* boolPtr = NULL;
boolPtr = ((std::vector<bool>*)ptr)->data();
当我编译时(使用 -std=c++17)我得到了错误
void value not ignored as it ought to be
我尝试了很多东西,但似乎每次我从一个转换向量(来自 void*)调用 data() 方法 return 一个 void 而不是 bool*。
我错过了什么?
vector<bool>
不是正确的向量。听起来很奇怪,但事实就是如此。它不能为您提供指向其内部 bool 数组的指针,因为它没有一个,因为它存储打包成单个位的值。