CANN/asc-devkit is_integral类型特性

📅 2026/7/18 9:02:06
CANN/asc-devkit is_integral类型特性
is_integral【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况Ascend 950PR/Ascend 950DT支持Atlas A3 训练系列产品/Atlas A3 推理系列产品支持Atlas A2 训练系列产品/Atlas A2 推理系列产品支持Atlas 200I/500 A2 推理产品不支持Atlas 推理系列产品AI Core不支持Atlas 推理系列产品Vector Core不支持Atlas 训练系列产品不支持功能说明在程序编译时检测一个类型是否为整数类型可以用于在编译时进行类型检查和条件处理。函数原型template typename T struct is_integral;参数说明表1模板参数说明参数名含义T需要检测的类型包括基本数据类型、修饰类型等。约束说明无返回值说明is_integral的静态常量成员value用于获取返回的布尔值is_integralT::value取值如下trueTp是数组类型。falseTp不是数组类型。调用示例// 自定义测试类型 struct MyStruct{}; using FuncType int(int); // legal integer type AscendC::printf(AscendC::Std::is_integral::value:%d\n, AscendC::Std::is_integralbool::value); AscendC::printf(AscendC::Std::is_integral::value:%d\n, AscendC::Std::is_integralchar::value); AscendC::printf(AscendC::Std::is_integral::value:%d\n, AscendC::Std::is_integralint::value); AscendC::printf(AscendC::Std::is_integral::value:%d\n, AscendC::Std::is_integrallong long::value); AscendC::printf(AscendC::Std::is_integral::value:%d\n, AscendC::Std::is_integralunsigned int::value); // Integer type limited by CV AscendC::printf(AscendC::Std::is_integral::value:%d\n, AscendC::Std::is_integralconst int::value); AscendC::printf(AscendC::Std::is_integral::value:%d\n, AscendC::Std::is_integralvolatile long::value); // non-integer type AscendC::printf(AscendC::Std::is_integral::value:%d\n, AscendC::Std::is_integralfloat::value); AscendC::printf(AscendC::Std::is_integral::value:%d\n, AscendC::Std::is_integraldouble::value); AscendC::printf(AscendC::Std::is_integral::value:%d\n, AscendC::Std::is_integralint*::value); AscendC::printf(AscendC::Std::is_integral::value:%d\n, AscendC::Std::is_integralint::value); AscendC::printf(AscendC::Std::is_integral::value:%d\n, AscendC::Std::is_integralint[5]::value); AscendC::printf(AscendC::Std::is_integral::value:%d\n, AscendC::Std::is_integralFuncType::value); AscendC::printf(AscendC::Std::is_integral::value:%d\n, AscendC::Std::is_integralMyStruct::value); AscendC::printf(AscendC::Std::is_integral::value:%d\n, AscendC::Std::is_integralvoid::value);// 执行结果 AscendC::Std::is_integral::value:1 AscendC::Std::is_integral::value:1 AscendC::Std::is_integral::value:1 AscendC::Std::is_integral::value:1 AscendC::Std::is_integral::value:1 AscendC::Std::is_integral::value:1 AscendC::Std::is_integral::value:1 AscendC::Std::is_integral::value:0 AscendC::Std::is_integral::value:0 AscendC::Std::is_integral::value:0 AscendC::Std::is_integral::value:0 AscendC::Std::is_integral::value:0 AscendC::Std::is_integral::value:0 AscendC::Std::is_integral::value:0 AscendC::Std::is_integral::value:0【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考