我正在尝试比较两个Blitz++数组,但是我得到了一个编译器错误,说明表达式不能转换为布尔值。
根据文档,应该支持此操作。
我做错了什么?
代码:
#include <blitz/array.h>
int main() {
blitz::Array<double, 2> a(1, 1);
blitz::Array<double, 2> b(1, 1);
bool c = (a == b);
return 0;
}错误:
error: cannot convert ‘blitz::BzBinaryExprResult<blitz::Equal, blitz::Array<double, 2>, blitz::Array<double, 2> >::T_result’ {aka ‘blitz::_bz_ArrayExpr<blitz::_bz_ArrayExprBinaryOp<blitz::_bz_ArrayExpr<blitz::FastArrayIterator<double, 2> >, blitz::_bz_ArrayExpr<blitz::FastArrayIterator<double, 2> >, blitz::Equal<double, double> > >’} to ‘bool’ in initialization发布于 2022-07-20 20:43:17
blitz::Array<bool, 2> result(a == b);或
bool c = blitz::all(blitz::Array<bool, 2>(a == b));从表达式到数组的转换是显式的。
https://stackoverflow.com/questions/73057484
复制相似问题