惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
博客园 - 司徒正美
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
A
About on SuperTechFans
Google DeepMind News
Google DeepMind News
T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
M
MIT News - Artificial intelligence
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
Engineering at Meta
Engineering at Meta
Martin Fowler
Martin Fowler
H
Help Net Security
B
Blog
Y
Y Combinator Blog
小众软件
小众软件
S
SegmentFault 最新的问题
I
InfoQ
爱范儿
爱范儿
Hugging Face - Blog
Hugging Face - Blog
D
Docker
博客园 - 【当耐特】
J
Java Code Geeks
阮一峰的网络日志
阮一峰的网络日志

博客园 - 松山居士

部署Hermes-Agent和SenseNova-Skills ubuntu用root账户启动服务指定脚本 WSL迁移OpenEuler虚拟机 采用Ollama本地布署DeepSeekCoderV2 Loongnix Server 23.2安装Docker及常用镜像 Ollama导出和导入DeepSeek预训练大模型 Win10上模拟LoongArch虚拟机安装Deepin系统 查看exe启动命令和参数 Visual Studio C++设置EXE和DLL在不同路径 JMeter做WEB和API自动化测试 PG数据库常用DDL VSCode+XMake开发环境搭建备忘 C++库管理Conan使用备忘 Python多版本管理Anaconda备忘 Win10上模拟LoongArch虚拟机并搭建Qt5开发环境 解决向日葵无人值守自启动的权限问题 强制去掉Qt的运行环境信息 QGIS插件开发备忘 Linux shell 实用命令备忘 WIN10配置FX DocuCentre-IV C2260 PCL6打印机 VMWare虚拟磁盘整理与收缩 解决Deepin安装Flatpak程序时不能创建临时文件的错误
解决启用C++17后byte重定义的问题(byte ambiguous )
松山居士 · 2022-02-22 · via 博客园 - 松山居士

在C++ 17的cstddef文件中引入了 一种std::byte类型,在部分项目升级时往往会与系统中的byte定义冲突,导致编译失败。

但std::byte类型是在std命名空间下,根本的问题在于using namespace滥用,所以需要比以往更加注意以下语句的用法:

using namespace std;

(1)总体原则是该语句不要出现在系统头文件之前;

(2)最安全的方法是:编写健壮的工业级代码从弃用using namespace语句开始;

(2)较安全的方法是:该语句只出现在cpp文件中,h文件中使用std::前缀;

(4)谨慎采用方法是:在h文件不存在其它h文件引用的情况下,可以在h文件所有的#include语句后面使用该语句。

注:如使用者能熟练掌握第(1)条,则不必管(2)(3)(4)条。

如果是在项目代码中存在byte重定义问题而非SDK本身代码中存在冲突,在自己项目代码中明确指定byte定义的命名空间即可。