AddOverflow【免费下载链接】metadefAscend Metadata Definition项目地址: https://gitcode.com/cann/metadef函数功能该模板函数用于判断两个数值相加是否会发生溢出并在不溢出的情况下返回正确的计算结果。函数原型templatetypename TLhs, typename TRhs, typename TRet bool AddOverflow(TLhs lhs, TRhs rhs, TRet ret)参数说明表 1模板参数说明参数说明TLhs加法左操作数的数据类型。TRhs加法右操作数的数据类型。TRet加法计算结果的数据类型。表 2参数说明参数输入/输出说明lhs输入加法左操作数。rhs输入加法右操作数。ret输出左右操作数相加的结果只有函数返回值为true时该结果才有效。返回值true表示计算失败ret返回值无效false表示计算成功ret返回值有效。约束说明无。调用示例// ... ge::DataType out_data_type ge::DT_FLOAT; GE_ASSERT_GRAPH_SUCCESS(GetOutputDataType(context, out_data_type), get data type failed); GE_ASSERT_TRUE(out_data_type ge::DataType::DT_INT32 || out_data_type ge::DataType::DT_INT64, only support DT_INT32 and DT_INT64, but out_data_type is %s, ge::TypeUtils::DataTypeToSerialString(out_data_type).c_str()); const auto is_malloc (out_data_type ge::DataType::DT_INT32); const auto data_type_size ge::GetSizeByDataType(out_data_type); if (data_type_size 0) { // 报错 } size_t malloc_buffer_size 0U; if (ge::MulOverflow(static_castsize_t(data_type_size), Shape::kMaxDimNum, malloc_buffer_size)) { // 报错 } if (ge::AddOverflow(malloc_buffer_size, sizeof(GertTensorData), malloc_buffer_size)) { // 报错 }【免费下载链接】metadefAscend Metadata Definition项目地址: https://gitcode.com/cann/metadef创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考