Re:思考·重建·记录 现代C++ C++11篇 (三) 深度解构:可变参数模板、类功能演进与 STL 的新版图
摘要: 本文是C++11可变参数模板的深度解析,重点探讨了可变参数模板的概念、用法及其在简化代码中的优势。文章从C语言的printf函数引入可变参数概念,详细介绍了模板参数包和函数参数包的定义方式,并通过sizeof...操作符演示参数包大小的获取。核心部分通过递归函数展开参数包的实例,解析了编译时递归实例化的原理,强调了终止函数设计的重要性。此外,还分析了参数包在函数调用中的扩展场景,展示了可变参数模板的灵活性。最后总结指出,可变参数模板本质上是"模板中的模板",能大幅减少重复代码,提
Re:思考·重建·记录 现代C++ C++11篇 (四)C++ Lambda 全解析:编译器是如何为你生成仿函数的?
摘要 本文主要介绍了现代C++中的Lambda表达式及其应用。文章首先回顾了仿函数和函数对象的概念,然后详细讲解了Lambda表达式的语法结构,包括捕捉列表、参数列表、返回值类型和函数体等组成部分。重点分析了捕捉列表的三种捕捉方式:显式传值/传引用捕捉、隐式捕捉以及混合捕捉,并指出了使用时的注意事项。 文章通过实际代码示例展示了Lambda表达式在排序场景中的优势,相比传统仿函数更简洁直观。作者还探讨了Lambda表达式的本质——编译器生成的匿名仿函数类,以及其在多线程编程和智能指针等场景中的应用价值。最后
【AI】Java 调用大模型 API 实战:从 OpenAI 协议到 SiliconFlow 流式响应解析
摘要 本文介绍了如何通过Java代码调用大模型API,重点演示了非流式和流式两种调用方式。文章以构建“企业知识库问答助手”为例,详细解析了OpenAI接口协议的核心字段,包括model、messages、temperature等,并强调了system、user、assistant三种消息角色的作用。 关键点: OpenAI协议已成为大模型API的事实标准,国内许多平台(如SiliconFlow)也兼容该协议。 多轮对话需手动维护历史消息,模型无自动记忆功能。 system消息可定义模型行为规则,显著影响回答
C# ASP.NET 分层架构实战:MVC 扩展规范 + 可维护最佳实践(Controller/ViewModel/BLL)
fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;调用调用操作UI层 - MVC业务逻辑层 BLL数据访问层 DAL数据库✅ UI 层只能调用 BLL 层,绝对不能直接调用 DAL / 数据库只做请求转发、参数接收、视图返回,不写业务逻辑只做页面数据承载,不包含任何逻辑✅ BLL 层封装所有业务规则,UI 层无脑调用即可。





