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

VS Code 修改 C++ 标准同时修改错误检测标准

修改C++标准基于使用Code Running拓展

可以看我上一章文章

VS Code 整洁的打印内容到终端https://blog.csdn.net/2301_76542477/article/details/161060041?sharetype=blogdetail&sharerId=161060041&sharerefer=PC&sharesource=2301_76542477&spm=1011.2480.3001.8118

打开用户设置文件,只需要为编译命令添加上执行的C++版本即可

-std=C++23

"cpp": " Clear-Host; Set-Location $dir; $exe = \"$fileNameWithoutExt.exe\"; g++ \"$fileName\" -std=c++23 -o $exe; if ($?) { & .\\$exe }",

当你修改完以后你的程序就能正常编译,但是VS Code的红线依然存在

我们还需要修改IntelliSense

按Ctrl + Shift + P 输入命令:C/C++: Log Diagnostics

往上找到Standard Version查看当前使用的标准

当前使用的是C++17这和设置的不一样

打开用户设置添加如下

"C_Cpp.default.cppStandard": "c++23",

保存后即可完成修改

完成修改后再次检查一下

没问题即可

错误检查就正常了

最后给个代码试试看,下面的代码是需要C++20,默认的VS Code是运行不了的

如果你配置完后能正常运行并且没有小红线就表示你成功了!

#include <iostream> #include <initializer_list> #include <stdexcept> using namespace std; template <typename T, typename U> concept Addable = requires(T a, U b) { a + b; }; template <typename T> concept type = !std::is_same_v<T, float>; // 排除 float 类型 template <typename T> requires type<T> class MyArray { private: T* data; size_t size; public: MyArray(size_t n) { size = n; data = new T[n]{}; } MyArray(initializer_list<T> list) { size = list.size(); data = new T[size]; size_t i = 0; for (auto& val : list) { data[i++] = val; } } ~MyArray() { delete[] data; } MyArray(const MyArray& other) { size = other.size; data = new T[size]{}; for (size_t i = 0; i < size; i++) { data[i] = other.data[i]; } } MyArray& operator=(MyArray other) { swap(data, other.data); swap(size, other.size); return *this; } T& operator[](size_t index) { return data[index]; } const T& operator[](size_t index) const { return data[index]; } size_t getSize() const { return size; } }; template<typename T, typename U> requires Addable<T, U> auto operator+(const MyArray<T>& left, const MyArray<U>& right) { using ResultType = decltype(left[0] + right[0]); size_t n = (left.getSize() < right.getSize()) ? left.getSize() : right.getSize(); MyArray<ResultType> temp(n); for (size_t i = 0; i < n; i++) { temp[i] = left[i] + right[i]; } return temp; } template<typename T> ostream& operator<<(ostream& os, const MyArray<T>& arr) { os << "["; for (size_t i = 0; i < arr.getSize(); i++) { os << arr[i]; if (i + 1 < arr.getSize()) { os << ", "; } } os << "]"; return os; } int main() { MyArray<int> a = {1, 2, 3}; cout << "a = " << a << endl; return 0; }
http://www.jsqmd.com/news/813547/

相关文章:

  • 基于DuckyClaw框架的智能家居设备开发:从原理到量产实践
  • 苍穹外卖 项目记录 第六天
  • srcdoc属性怎么内嵌HTML_iframe直接注入【技巧】
  • EDA数据管理难题的通用解法:规则引擎驱动的设计对象抽象
  • 深耕高性价比多模型聚合平台赛道,这些企业值得重点关注
  • 扼流圈GNSS监测站
  • SkillsOver:AI代理安全审计工具,防御HTML注入与供应链攻击
  • -g安装和不使用-g安装的区别,本地开发环境和生产环境
  • 安培匝数抵消法:精准测量大直流偏置下微小电流纹波的工程实践
  • 图片怎么去水印?2026图片去水印方法实测 + 好用工具推荐
  • 3步解锁全功能:Cursor Free VIP智能加速方案指南
  • [Java+阿里云 SMS + Redis] 阿里云短信服务使用
  • 金融机器学习实战:从特征工程到投资组合优化的完整工具库解析
  • 深入Android系统源码:screencap命令背后,SurfaceFlinger如何“画”出一张图?
  • DeepSeek模型观测从黑盒到透明:手把手搭建Grafana可观测性看板(含Prometheus采集全链路)
  • 从嵌入式到FPGA:思维转变、实战入门与软硬件协同设计指南
  • Next.js国际化实战:i18next与next-i18next完整配置指南
  • 【干货】SFP连接器选型指南:笼子与连接器怎么配?光口速率、散热结构、压力配合技巧全解析 | VOOHU 沃虎电子
  • 掌握RCTCOE与12种核心模式,解锁高效AI提示词工程实战
  • 从零到一:我的Elsevier期刊LaTeX投稿实战与避坑指南
  • 粒子物理模拟的GPU加速与NLO计算优化
  • 大语言模型应用揭秘:从摘要引擎到AI Agents的演进之路!
  • 汽车智能座舱演进:从手机映射到原生系统的交互革命
  • ARM架构缓存维护指令详解与应用实践
  • 开发者工作流自动化:从零构建标准化项目脚手架与质量守护体系
  • 半导体创业融资新路径:产业资本联盟与轻量化创新模式探索
  • 六要素超声波气象站:告别传统机械风杯与翻斗雨量计
  • 芯片制造回流:数据驱动良率提升与智能运营的实践路径
  • 神经网络训练核心:梯度下降及其变体详解,数据挖掘深度学习课程(附代码和实战)
  • 郑州金橙智能嵌入式培训实战能力深度评测