c++ variant用法 variant是联合体相当于c语言的union 测试下void testVariant(void) { // 测试下variant // 声明一个可以存储 int、double 或 std::string 的 variant std::variantint, double, std::string v; // variant 默认会初始化为第一个类型int的默认值0 std::cout 默认值: std::getint(v) std::endl; // 赋值类型切换 v 1314520; // 当前存储 int v 3.14; // 当前存储 double v 心乱则音噪心静则音纯。心慌则音误心泰则音清。听诸葛亮弹琴如观其肺腑也我能为诸葛亮知音不胜荣幸。; // 当前存储 std::string // 检查当前持有的类型 if (std::holds_alternativestd::string(v)) { std::cout 当前类型是字符串: std::getstd::string(v) std::endl; } // 异常处理如果类型不匹配std::get 会抛出异常 try { std::cout std::getint(v) std::endl; // 当前是 string强转 int 会报错 } catch (const std::bad_variant_access e) { std::cout 捕获异常: 当前 variant 中不存储 int 类型error: e.what() std::endl; } // 最推荐的访问方式std::visit (访问者模式) // 无论当前是什么类型都能安全处理 std::visit([](auto arg) { std::cout 当前类型是: typeid(arg).name() std::endl; std::cout 当前值: arg std::endl; }, v); // 或者这样 std::visit([](auto arg) { using T std::decay_tdecltype(arg); // 获取 arg 的实际类型 if constexpr (std::is_same_vT, int) { std::cout 收到整数: arg std::endl; } else if constexpr (std::is_same_vT, double) { std::cout 收到浮点数: arg std::endl; } else if constexpr (std::is_same_vT, std::string) { std::cout 收到字符串: arg std::endl; } }, v); }运行ok.

相关新闻

最新新闻

K8S taint(污点)和tolerations(污点容忍)

K8S taint(污点)和tolerations(污点容忍)

文章目录 一、Taint(污点) `1.1概念` `1.2设置污点` 取消污点 二、tolerations(污点容忍) `2.1概念` `2.2示例` 三、Node 和 Pod 对于污点与容忍基本概念 参考资料 一、Taint(污点) 1.1概念 节点亲和性是 Pod 的一种属性,它使 Pod 被吸引到一类特定的节点 。 这可能出…

2026/9/5 15:00:04
技术博客如何选题?从JWT鉴权到SQL批量更新提炼实战方向

技术博客如何选题?从JWT鉴权到SQL批量更新提炼实战方向

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/5 14:44:56
PanDownload解析度盘没速度?2026网络环境优化与提速教程

PanDownload解析度盘没速度?2026网络环境优化与提速教程

网络存储已经成为现代人存放照片、办公文档以及各类影音资料的核心工具,但许多人在使用主流网盘下载文件时,常常会遇到原本百兆宽带却只能跑出几十KB每秒的尴尬状况。这种速率上的巨大落差不仅耽误时间,也让日常的资料传输变得异常煎熬。为了…

2026/9/5 14:24:55
AI大模型与数学|第68天 课程主题:逆矩阵、可逆判定、求逆公式

AI大模型与数学|第68天 课程主题:逆矩阵、可逆判定、求逆公式

一、学习目标1. 搞懂逆矩阵到底是什么物理/计算含义,联系大模型矩阵运算场景2. 记住矩阵可逆的全部判定条件3. 掌握2阶矩阵求逆公式、伴随矩阵法求逆4. 分清:什么时候逆矩阵存在,什么时候不存在(奇异矩阵)1. 什么是逆矩…

2026/9/5 13:44:53
MATLAB实现InSAR时序分析:从SBAS/PS算法原理到工程实践全解析

MATLAB实现InSAR时序分析:从SBAS/PS算法原理到工程实践全解析

简介:本资源是一套面向遥感科学、地质工程与GIS分析人员的InSAR时序形变分析实战教程,聚焦MATLAB平台实现合成孔径雷达干涉测量的全流程处理,解决地质灾害监测、城市沉降评估等场景中地表微小形变的高精度反演难题。压缩包共8个文件&#xff…

2026/9/5 11:49:46
AI编程工作流实操指南:从工具选型到自动化开发流水线

AI编程工作流实操指南:从工具选型到自动化开发流水线

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/5 11:49:46