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

c++模板里展开变长参数在项目里的应用

put是重载函数,有多个只接收一个参数的。

class DataExternalizer
{

};

///@code{.unparsed} ///此函数的功能: /// /// 写入数据。这些参数的类型要符合Bentley::DataExternalizer::put的各个重载函数 /// ///@endcode ///@return true:成功 false:失败 ///@author Simon.Zou @date 2026/04/09 template<typename ...Args> static bool SetData( DgnPlatform::EditElementHandle& eeh, UInt16 majorId,// = HchxElemSideDrawing_XAMajorId, UInt16 minorId,// = HchxElemSideDrawing_XAMinorId, UInt32 xaId,// = HchxElemSideDrawing_XaId_General Args&&... param ) { Bentley::DataExternalizer sink; int dummy[] = { (sink.put(std::forward<Args>(param)),0)... }; std::ignore = dummy; XAttributeHandlerId xAttributeHandlerId(majorId, minorId); UInt32 xAttrId = xaId; return BentleyStatus::SUCCESS == eeh.ScheduleWriteXAttribute(xAttributeHandlerId, xAttrId, sink.getBytesWritten(), sink.getBuf()); } 引用: bool MiscUtil::SetComponentType( EditElementHandleR eeh, ///<IN const ObjectType& oType, ///<OUT const std::wstring& linkDataStr,// = StringUtil::s2ws(LinkData::CreateFakeJsonstr()) const std::wstring& uuid//= L"123", ) { int version = 1; WString str0 = (const_cast<ObjectType&>(oType)).GetStr().c_str(); WString str1 = uuid.c_str(); WString str2 = linkDataStr.c_str(); XAttributeHandlerId xAttributeHandlerId = HCHXKERNEL::GetLinkDataXAId();//(HchxElem106XAMajorId, HchxElem106XAMinorId); UInt16 majorId = xAttributeHandlerId.GetMajorId(); UInt16 minorId = xAttributeHandlerId.GetMinorId(); UInt32 xaId = 0; //在这里调用 return MiscUtil::SetData( eeh, majorId, minorId, xaId, version, str0, str1, str2 ); }
下面的代码,C++14还不支持: template<typename ...Ts> void printNumber(Ts... nums) { ((std::cout<<nums<<""),...); std::cout << std::endl; } void main1124ff() { printNumber(1, 2, 3, 4, 5); } error C3520: “nums”: 必须在此上下文中扩展参数包 参见对正在编译的函数 模板 实例化“void printNumber<int,int,int,int,int>(int,int,int,int,int)”的引用 error C2059: 语法错误:“...”
http://www.jsqmd.com/news/640304/

相关文章:

  • 次元画室实战分享:如何用详细描述生成高质量动漫角色方案
  • 2026奇点大会多模态翻译系统压力测试全记录:单节点并发12,800路视频流翻译,GPU显存占用下降41%的关键编译策略
  • 电路图解放者:5分钟实现Altium文件跨平台自由查看
  • 逆向淘宝App:手把手教你分析x-mini-wua的生成流程与本地加密文件
  • 基于GEE与MODIS/006/MCD64A1的长时间序列林火动态监测与空间格局分析
  • 第12篇:大模型原理浅析——Transformer是如何让AI“理解”世界的?(原理解析)
  • LMS自适应滤波器算法:从原理到实践
  • deepflow部署
  • Time-Interleaved ADCs: Overcoming Mismatch Challenges for High-Speed Applications
  • 【LTspice】003 光耦隔离与过零检测的实战仿真
  • 从单片机延时到FPGA状态机:按键消抖的‘思维升级’全记录(含仿真波形分析)
  • Token经济学七问——一份关于AI新经济的入门地图
  • deepin25.10安装claude
  • CPU内部单总线 vs 专用数据通路:手把手教你理解计算机组成原理中的关键设计差异
  • 前端错误处理实战
  • 基于Matlab的CS DAC建模与电路设计实战指南
  • Android Binder机制
  • Obsidian PDF导出终极指南:5分钟掌握Better Export PDF插件完整用法
  • Spring Boot项目里,如何用Redis给LangChain4j+通义千问的聊天机器人加上“记忆”功能?
  • LFM2.5-1.2B-Thinking-GGUF快速部署:CentOS 7服务器环境配置全攻略
  • Harepacker-resurrected深度解析:MapleStory WZ文件编辑器的架构与实现
  • Gromacs伞形采样实战:从蛋白质结合自由能计算到结果分析
  • Markdown Viewer:5分钟让你的浏览器变身专业Markdown编辑器!
  • OBS多平台同时直播插件:一键实现多路RTMP推流终极指南
  • 高效百度网盘直链解析架构解析:从协议逆向到企业级部署方案
  • Flutter中使用url_launcher实现多应用市场评分跳转的完整指南
  • 制度性四元组:AI元人文的治理哲学
  • Windows环境下MinIO与Spring Boot的深度整合:打造高效云点播系统
  • Linear Probing:大模型微调中的“特征质量探测器”
  • 2026再谈选型:AI、可访问性与实时流重塑企业可视化格局|Highcharts vs. Apache ECharts 深度技术对比