E0266错误(byte重定义),谨慎使用using namespace语句

server/2024/10/18 4:30:25/

解决启用C++17后byte重定义的问题(byte ambiguous )

转载于:返回主页松山居士的家

在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定义的命名空间即可。


http://www.ppmy.cn/server/28236.html

相关文章

IOS上线操作

1、拥有苹果开发者账号 2、配置证书,进入苹果开发者官网(https://developer.apple.com/) 3、点击账户(account),然后创建一个唯一的标识符 4、点击"Identifiers",然后点击"&qu…

向eclipse中的项目导入jdk、tomcat

前言: 有些项目无法正常启动可能是因为他的基础配置不正确或者没配置,eclipse中的javaweb项目常见的配置就是jdk、tomcat,这三者配置的方式大概相同,以下是相关操作。我的环境是eclipse2018。 一、jdk 在项目上右键选中propert…

【C语言】文件操作(万字解读超详细解析)

最好的时光,在路上;最好的生活,在别处。独自上路去看看这个世界,你终将与最好的自己相遇。💓💓💓 目录 • ✨说在前面 🍋知识点一:什么是文件? • 🌰1.程序…

Flutter应用开发-几种保存简单配置的方式

文章目录 简单配置保存的几种方式使用 shared_preferences 插件优点缺点 使用 hive 插件优点 缺点使用文件存储:优点缺点 简单配置保存的几种方式 在 Flutter 开发的 Android 应用中,保存应用配置并下次启动时读取,有以下几种比较合适的方式…

深入探索 MySQL:成本模型解析与查询性能优化

MySQL作为最流行的关系型数据库管理系统之一,在各种应用场景中都有着广泛的应用。 然而,在处理大规模数据时,查询性能往往成为了关注焦点。 本文将深入探讨MySQL的成本模型,解析其工作原理,并提供一系列优化策略&…

VSCode 配置 Qt 开发环境

文章目录 1. 环境说明2. 配置系统环境变量 1. 环境说明 操作系统:Windows 11VSCode版本:1.88.1CMake版本:3.27.7Qt6版本:6.7.0(MinGW 11.2.0 64-bit) 2. 配置系统环境变量 自行根据自己的Qt安装路径配置 配置 MinGW 和 CMake C…

【Jenkins】持续集成与交付 (七):Gitlab添加组、创建用户、创建项目和源码上传到Gitlab仓库

🟣【Jenkins】持续集成与交付 (七):Gitlab添加组、创建用户、创建项目和源码上传到Gitlab仓库 1、创建组2、创建用户3、将用户添加到组中4、在用户组中创建项目5、源码上传到Gitlab仓库5.1 初始化版本控制5.2 将文件添加到暂存区5.3 提交代码到本地仓库5.4 推送代码到 Git…

Dockerfile实战(SSH、Systemctl、Nginx、Tomcat)

目录 一、构建SSH镜像 1.1 dockerfile文件内容 1.2 生成镜像 1.3 启动容器并修改root密码 二、构建Systemctl镜像 2.1 编辑dockerfile文件 ​编辑2.2 生成镜像 2.3 启动容器,并挂载宿主机目录挂载到容器中,然后进行初始化 2.4 进入容器验证 三、…