当前位置: 首页 > news >正文

C++ std::is_pointer 完整用法

1. 头文件

必须引入:

cpp

运行

#include <type_traits> #include <iostream>

2. 核心语法

老式写法(C++11)

cpp

运行

std::is_pointer<T>::value

简化写法(C++17 推荐)

cpp

运行

std::is_pointer_v<T>

返回booltrue是指针类型,false不是。


3. 判断类型是不是指针

cpp

运行

#include <type_traits> #include <iostream> int main() { std::cout << std::boolalpha; // 普通类型 std::cout << std::is_pointer_v<int> << '\n'; // false std::cout << std::is_pointer_v<double> << '\n'; // false // 一级指针 std::cout << std::is_pointer_v<int*> << '\n'; // true std::cout << std::is_pointer_v<double*> << '\n'; // true // 二级指针 也是指针 std::cout << std::is_pointer_v<int**> << '\n'; // true // 引用不是指针 std::cout << std::is_pointer_v<int&> << '\n'; // false // 数组不是指针 std::cout << std::is_pointer_v<int[5]> << '\n'; // false return 0; }

4. 判断变量是不是指针

decltype(变量)取变量类型,再给is_pointer

cpp

运行

int main() { int a = 10; int* p = &a; int& r = a; std::cout << std::boolalpha; std::cout << std::is_pointer_v<decltype(a)> << '\n'; // false std::cout << std::is_pointer_v<decltype(p)> << '\n'; // true std::cout << std::is_pointer_v<decltype(r)> << '\n'; // false }

5. 模板中做类型分支(编译期判断)

cpp

运行

template <typename T> void checkType() { if constexpr (std::is_pointer_v<T>) { std::cout << "这是指针类型\n"; } else { std::cout << "不是指针类型\n"; } } // 调用 checkType<int>(); checkType<int*>(); checkType<int**>();

6. 关键注意点

  1. std::is_pointer只识别原生指针T*
    • 智能指针std::shared_ptr/std::unique_ptr判断为 false
  2. 引用T&不是指针,判 false
  3. 数组T[N]不是指针,判 false
  4. 编译期判断,无运行时开销

7. 一句话记忆

  • 类型直接填:std::is_pointer_v<int*>
  • 变量用decltype包一层:std::is_pointer_v<decltype(var)>
  • C++17 用_v后缀更简洁。
http://www.jsqmd.com/news/812680/

相关文章:

  • 2026年5月行业聚焦:奕丞防爆如何定义防爆恒温烘箱新标准 - 2026年企业推荐榜
  • 北京AGG聚砂吸音板哪家售后服务好
  • 滨州四门冰箱技术解析:核心参数与合规选型参考 - 优质品牌商家
  • 2026年Q2全国起重机厂家综合实力实测排行 - 优质品牌商家
  • 每日算法快闪赛:30分钟提升编程实力的秘密
  • 深蓝词库转换:终极输入法词库迁移完整解决方案
  • 孩子叛逆不听话、跟家长对着干怎么管?
  • Mac效率神器Bob:OCR与AI翻译集成,打造无缝跨语言工作流
  • 为什么传统 Workflow 很难替代 OpenClaw?
  • 为AI智能体集成零知识支付:基于MCP与Visa令牌的安全实践
  • 2026年四川区域叉车供应服务商综合排行盘点 - 优质品牌商家
  • 宽带信号分析技术:从原理到工程实践
  • 儿童工程思维启蒙:从玩中学到系统化思考的早期培养
  • 嵌入式视觉开发:从异构计算挑战到边缘AI实战进阶指南
  • 成都国标H型钢,成都H型钢价格,成都H型厂家,成都H型钢批发 - 四川盛世钢联国际贸易有限公司 - 四川盛世钢联营销中心
  • Project Eye视力保护软件终极指南:20-20-20规则智能提醒守护数字健康
  • zsh is the default shell on kali linux
  • 期刊论文屡投屡退?虎贲等考 AI:真文献 + 实证图表 + 期刊规范,让投稿一次就中
  • 羽毛球网前封网、正反手搓球一定要学会,你就能制霸前场!
  • 别再死记PCA步骤了!用Python手推一遍协方差矩阵与特征值,真正搞懂降维本质
  • 零碳园区的能源供给成本主要包括哪些方面?
  • Ozon卖家工具怎么选?一张决策表帮你理清思路
  • 5分钟快速掌握:Sonar CNES Report代码质量报告生成终极指南
  • 2026年5月更新:舟山熏蒸托盘优质厂家盘点,鸿易源包装深度解析 - 2026年企业推荐榜
  • Arm Cortex-R82 SystemC周期模型开发实践指南
  • 极简静态个人网站构建指南:从HTML/CSS到GitHub Pages部署
  • Google Meet实时字幕为何不触发Gemini摘要?端到端WebRTC信令链路解析(含Chrome DevTools调试速查表)
  • 纳米抗体表达纯化一站式服务,高纯度抗体交付,加速您的科研进程
  • 车间转运车技术选型全解析:电动四轮运输平板车、电动四轮送餐车、电动平板搬运车、电动平板车搬运车、电动拉货平板车选择指南 - 优质品牌商家
  • Python操控Photoshop的终极指南:如何用代码实现高效图像处理自动化