首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
C++现代教程六
📅 2026/11/2 1:13:38
✍️ 爱科研究院
👁 阅读 3,247
# Variable templates templateclass T constexpr T pi T(3.1415926535897932385); # decltype(U)() std::declvalconst U() std::decay_tU # class decoration #include cassert namespace jc { template typename struct get_class; template typename ClassType, typename MemberType struct get_classMemberType ClassType::* { using type ClassType; }; template typename T using get_class_t typename get_classT::type; template auto ClassMember class Wrapper { public: Wrapper(get_class_tdecltype(ClassMember) obj) : obj_(obj) {} void increase() { (obj_.*ClassMember); } private: get_class_tdecltype(ClassMember) obj_; }; struct A { int i 0; }; } // namespace jc int main() { jc::A a; jc::Wrapperjc::A::i{a}.increase(); assert(a.i 1); } # 打印源代码位置 #include source_location const std::source_location l std::source_location::current(); std::string location_to_str(const std::source_location l) { return std::string(l.file_name()) : std::to_string(l.line()) : l.function_name() (); } # C版本判断 c11 199711L c17 201703L c20 202002L cout __cplusplus endl; #if __cpluscplus 199711L #else #endif # 打印线程ID std::this_thread::get_id() # 代运算符号 and not or #include iso646.h int main(int argc, char* argv[]) { int i 1; if (i 2 and i 0) // if(i2 i0) std::cout test i \n; return 0; } # 返回数组长度 templatetypename T, std::size_t N constexpr std::size_t arraySize(T ()[N]) noexcept { return N; } int keyVals[] {1, 3, 5, 7, 9}; // length 5 int mappedVals[arraySize(keyVals)]; // the same as keyVals # Visual Studio _MSC_VER 版本号 | Visual Studio 版本 | _MSC_VER | | :----------------------------------- | :--------- | | Visual Studio 6.0 | 1200 | | Visual Studio .NET 2002 (7.0) | 1300 | | Visual Studio .NET 2003 (7.1) | 1310 | | Visual Studio 2005 (8.0) | 1400 | | Visual Studio 2008 (9.0) | 1500 | | Visual Studio 2010 (10.0) | 1600 | | Visual Studio 2012 (11.0) | 1700 | | Visual Studio 2013 (12.0) | 1800 | | Visual Studio 2015 (14.0) | 1900 | | Visual Studio 2017 RTW (15.0) | 1910 | | Visual Studio 2017 版本 15.3 | 1911 | | Visual Studio 2017 版本 15.5 | 1912 | | Visual Studio 2017 版本 15.6 | 1913 | | Visual Studio 2017 15.7 版 | 1914 | | Visual Studio 2017 版本 15.8 | 1915 | | Visual Studio 2017 版本 15.9 | 1916 | | Visual Studio 2019 RTW (16.0) | 1920 | | Visual Studio 2019 版本 16.1 | 1921 | | Visual Studio 2019 版本 16.2 | 1922 | | Visual Studio 2019 版本 16.3 | 1923 | | Visual Studio 2019 版本 16.4 | 1924 | | Visual Studio 2019 版本 16.5 | 1925 | | Visual Studio 2019 版本 16.6 | 1926 | | Visual Studio 2019 版本 16.7 | 1927 | | Visual Studio 2019 v16.8、v16.9 | 1928 | | Visual Studio 2019 版本 16.10、16.11 | 1929 | | Visual Studio 2022 RTW (17.0) | 1930 | __DATE__ 当前源文件编译日期 # PIMPL设计,隐藏细节 //widget.h class Widget { //跟之前一样在“widget.h”中 public: Widget(); ~Widget(); //只有声明语句 … private: //跟之前一样 struct Impl; std::unique_ptrImpl pImpl; }; //widget.cpp #include widget.h #include gadget.h #include string #include vector struct Widget::Impl { std::string name; std::vectordouble data; Gadget g1,g2,g3; }; Widget::Widget() //根据条款21通过std::make_unique : pImpl(std::make_uniqueImpl()) //来创建std::unique_ptr {}参考C现代教程五-CSDN博客创作不易小小的支持一下吧
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/11/2 1:08:38
PLFM_RADAR:相位分段建模提升FMCW雷达仿真精度
2026/11/2 1:08:38
PLFM_RADAR:嵌入式毫米波雷达感知平台搭建全攻略
2026/11/2 1:08:38
PLFM_RADAR相控阵雷达信号处理:FPGA+STM32异构架构实战
2026/11/2 15:27:49
本科开题报告的技术路线图最多画两张,科迅捷AI(官方网站:www.kexunjie.com)说明了每张的职责
2026/11/2 15:27:49
博客系统全链路测试方案:功能、性能、安全与自动化测试详解
2026/11/2 15:27:49
基础设施成本优化(三):公网网络成本怎么砍?带宽 + 证书双维度优化
2026/11/2 15:27:49
超级具身智能(SEI):提升VLA零样本泛化能力的关键策略
2026/11/2 15:27:49
智能座舱射频感知技术路线对比
2026/11/2 15:22:48
有效的管理:三定、三抓、三放、一复盘
2026/11/2 1:03:35
工业SPI隔离方案:K64主控+MAX14431从设计到排查
2026/11/2 1:03:35
SPI隔离器MAX14431与PIC18F8722实现工业级稳定通信的实战指南
2026/11/2 1:03:35
雷达信号调制技术解析:从LFM到相位连续调频波形设计
2026/11/2 2:42:45
面向复杂光照与角度的宠物面部识别鲁棒性增强策略
2026/11/2 2:42:47
DRV8818PWPR与R7FA8M1AHECBD工业步进驱动实战指南
2026/11/2 2:42:50
STM32与DRV8818双极步进电机驱动方案:从选型到调试全流程解析
2026/11/2 2:42:45
面向复杂光照与角度的宠物面部识别鲁棒性增强策略
2026/11/2 2:42:47
DRV8818PWPR与R7FA8M1AHECBD工业步进驱动实战指南
2026/11/2 2:42:50
STM32与DRV8818双极步进电机驱动方案:从选型到调试全流程解析