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

【C++】关于using namepace xxx 使用命名空间和冲突

官方定义

namespace是指 标识符的各种可见范围。命名空间用关键字namespace来定义。 命名空间是C++的一种机制,用来把单个标识符下的大量有逻辑联系的程序实体组合到一起。此标识符作为此组群的名字。

基本使用

编译及执行命令:

g++ test.cpp -o test
./test

以最简单的输入(cin)输出(cout)流为例:

#include<iostream>int main() {std::cout << "testing" << std::endl;
}

如果加上使用命名空间,代码则可简化为:

#include<iostream>using namespace std;int main() {cout << "testing" << endl;
}

遇到的冲突问题

现在我在改EzPC(一个非常大的基于C++的隐私计算框架),希望加上armadillo库以更好地支持复杂的矩阵运算。

在这里插入图片描述

加上这两行后,开始编译,于是出现了如下的一大堆报错:

在这里插入图片描述

在这里插入图片描述

分析上面的报错信息,大概可以知道问题在于:armadillo库和原框架中的MathFunctions中都存在同样的math函数,导致编译过程中,编译器不知道math->ReLU这类操作调用的哪个math。所以,上面也报错说“ambiguous(含糊不清的)”。

冲突解决

我这里采用的最简单的方法解决这个命名冲突,直接不对armadillo库使用命名空间,这样就不存在“调math时不清楚是arma中的math还是原框架中另一个库的math”这个问题了。

在这里插入图片描述

也就是说,我在代码中使用armadillo时(比如调用cube类),不能直接写成:

cube x = cube(1, 2, 3)

而应该写成完整形式:

arma::cube x = arma::cube(1, 2, 3)

测试一下,编译通过!
再测试一下armadillo能否顺利使用:

std::cout << "convert array to cube" << std::endl;
// arma::cube image = arma::cube(H, W, C);
arma::cube image = arma::cube(1, 2, 3);
std::cout << image << std::endl;

在这里插入图片描述

没有问题,bingo

相关文章:

【C++】关于using namepace xxx 使用命名空间和冲突

官方定义 namespace是指 标识符的各种可见范围。命名空间用关键字namespace来定义。 命名空间是C的一种机制&#xff0c;用来把单个标识符下的大量有逻辑联系的程序实体组合到一起。此标识符作为此组群的名字。 基本使用 编译及执行命令&#xff1a; g test.cpp -o test ./…...

Linux常用命令——cupsenable命令

在线Linux命令查询工具 cupsenable 启动指定的打印机 补充说明 cupsenable命令用于启动指定的打印机。 语法 cupsenable(选项)(参数)选项 -E&#xff1a;当连接到服务器时强制使用加密&#xff1b; -U&#xff1a;指定连接服务器时使用的用户名&#xff1b; -u&#xff…...

基于Stable Diffusion的AIGC服饰穿搭实践

本文主要介绍了基于Stable Diffusion技术的虚拟穿搭试衣的研究探索工作。文章展示了使用LoRA、ControlNet、Inpainting、SAM等工具的方法和处理流程&#xff0c;并陈述了部分目前的实践结果。通过阅读这篇文章&#xff0c;读者可以了解到如何运用Stable Diffusion进行实际操作&…...

【 ARMv9 Cluster BUS QoS 配置】

文章目录 ARM Cluster QoS ARM Cluster QoS QoS&#xff08;Quality of Service&#xff0c;服务质量&#xff09;在 ARM 架构中&#xff0c;主要指的是一种机制&#xff0c;它可以控制和管理系统资源&#xff08;如内存、总线带宽等&#xff09;的使用&#xff0c;以满足各种…...

简单了解网络基本概念

目录 一、网络含义 二、什么是以太网&#xff1f; 三、网络分类 四、网络架构 五、数据传输方式 六、双工模式 一、网络含义 在实际生活中我们用传输介质把独立的终端设备相互连接起来就构成了网络。 二、什么是以太网&#xff1f; 以太网是一种网络通信协议标准&#…...

网络安全知识库

0x00 前言 本篇用来整理所有的零散的知识&#xff0c;作为一个技能树或者技能表来进行引导 CTF 加解密合集CTF Web合集 0x01 Http 1.http头 1.1 本地访问识别 如何伪造http头&#xff0c;让后端认为是本地访问...

无涯教程-JavaScript - FLOOR函数

描述 FLOOR函数将数字向下舍入为零,直到最接近的有效倍数。 语法 FLOOR (number, significance)争论 Argument描述Required/OptionalNumberThe numeric value you want to round.RequiredSignificanceThe multiple to which you want to round.Required Notes 如果数字的符…...

【LeetCode-中等题】146. LRU 缓存

文章目录 题目方法一&#xff1a;直接继承LinkedHashMap调用api方法二&#xff1a;自定义LinkedHashMap HashMap ListNode LinkedHashMap 题目 LRU缓存是什么&#xff1a;LRU缓存机制&#xff0c;你想知道的这里都有 实现 LRU 缓存算法 方法一&#xff1a;直接继承Linked…...

表白墙程序

目录 一、页面代码部分 二、设计程序 二、实现 doPost​编辑 三、实现 doGet 四、前端代码部分 五、使用数据库存储数据 一、页面代码部分 在之前的一篇博客中&#xff0c;已经写过了表白墙的页面代码实现&#xff0c;这里就不再重复了 页面代码如下&#xff1a; <!…...

git 本地仓库关联到远程仓库

将本地仓库关联到远程仓库 方式一&#xff1a;远程仓库没有文件 第一步&#xff1a; git init&#xff08;初始化git仓库&#xff09; 第二步&#xff1a; git remote add 地址&#xff08;设置remote地址&#xff09; 第三步&#xff1a; git add . &#xff08;将所有变…...

Introducing Language Guidance in Prompt-based Continual Learning

本文是LLM系列文章&#xff0c;针对《Introducing Language Guidance in Prompt-based Continual Learning》的翻译。 基于提示的持续学习中引入语言指导 摘要1 引言2 相关工作3 背景4 基于提示的持续学习语言指导5 实验6 结论 摘要 持续学习旨在学习一系列任务的单一模型&am…...

Matlab(数值微积分)

目录 1.多项式微分与积分 1.1 微分 1.2 多项式微分 1.3 如何正确的使用Matlab? 1.3.1 Matlab表达多项式 1.3.2 polyval() 多项式求值 1.3.3 polyder()多项式微分 1.4 多项式积分 1.4.1 如何正确表达 1.4.2 polyint() 多项式积分 2.数值的微分与积分 2.1 数值微分 2…...

【数据结构回顾】

数据结构回顾 一、单链表二、单循环链表 一、单链表 #include <stdio.h> #include <stdlib.h>typedef struct Node {int data;Node *next; }Node;Node* initList() {Node *list (Node*)malloc(sizeof(Node));list->data 0;list->next NULL;return list; }…...

QT创建可移动点类

效果如图所示&#xff1a; 创建新类MovablePoint&#xff0c;继承自QWidget. MovablePoint头文件: #ifndef MOVABLEPOINT_H #define MOVABLEPOINT_H#include <QWidget> #include <QPainter> #include <QPaintEvent> #include <QStyleOption> #includ…...

Flutter启动页

效果图 import dart:async; import package:flutter/cupertino.dart; import package:flutter/material.dart; import jumpPage.dart;class TransitPage extends StatefulWidget {const TransitPage({super.key});overrideState<TransitPage> createState() > _Trans…...

读word模板批量生成制式文件

文章目录 1、Maven依赖2、.docx或.doc格式的word模板准备3、读word模板&#xff0c;批量替换代码域&#xff0c;生成文件&#xff0c;demo4、结果展示 1、Maven依赖 <dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>fr.opensagre…...

Node.js crypto模块 加密算法

背景 微信小程序调用飞蛾热敏纸打印机&#xff0c;需要进行参数sig签名校验&#xff0c;使用的是sha1进行加密 // 通过crypto.createHash()函数&#xff0c;创建一个hash实例&#xff0c;但是需要调用md5&#xff0c;sha1&#xff0c;sha256&#xff0c;sha512算法来实现实例的…...

Win11 避坑安装WSL2 Ubuntu22.04

开始之前以管理员身份打开 PowerShell 启用适用于 Linux 的 Windows 子系统 需要先启用“适用于 Linux 的 Windows 子系统”可选功能&#xff0c;然后才能在 Windows 上安装 Linux 分发。 PowerShell然后输入以下命令&#xff1a; dism.exe /online /enable-feature /featur…...

ESP8266+继电器+MQTT+VUE 实现远程开关灯

超详细教程 – ESP8266继电器MQTTVUE 实现远程开关灯 超详细教程 – ESP8266继电器MQTTVUE 实现远程开关灯 接线图 NC&#xff08;通常闭合&#xff09;与COM&#xff08;公共&#xff09;、NO&#xff08;通常开放&#xff09;与COM 是继电器引脚的不同配置&#xff0c;用于不…...

Android中级——四大组件工作过程

四大组件工作过程 ActivityServicestartService()过程bindService()过程 BroadcastReceiver注册过程发送和接收过程 ContentProvider Activity startActivity()最终都会调用到startActivityForResult() public void startActivityForResult(RequiresPermission Intent intent…...

《QGIS空间数据处理与高级制图》022:融合后拓扑错误预检查

作者:翰墨之道,毕业于国际知名大学空间信息与计算机专业,获硕士学位,现任国内时空智能领域资深专家、CSDN知名技术博主。多年来深耕地理信息与时空智能核心技术研发,精通 QGIS、GrassGIS、OSG、OsgEarth、UE、Cesium、OpenLayers、Leaflet、MapBox 等主流工具与框架,兼具…...

赛场制胜参考 CTF 全套 50 个经典解题思路

CTF选手必藏的50个实战解题思路&#xff01;一篇够用&#xff01; CTF竞赛的核心逻辑 • 核心目标&#xff1a;快速拆解问题&#xff08;Flag导向&#xff09;、工具链协作、模式化思维。• 关键原则&#xff1a;先广度后深度&#xff08;优先收集信息&#xff09;、分治策略&…...

2026年TOP5运营多年口碑平稳的金价查询app有哪些

前几天跟闺蜜约饭&#xff0c;她一坐下来就疯狂吐槽&#xff1a;前一周特意蹲了网上说的金价合适的时段&#xff0c;攒了好久的钱想去买那条种草了半年的金项链&#xff0c;结果到了线下门店才知道&#xff0c;当天大盘价已经涨了21块钱&#xff0c;比她查的那个三天没更新的小…...

Windows 11终极优化指南:用Win11Debloat一键清理系统,性能提升51%

Windows 11终极优化指南&#xff1a;用Win11Debloat一键清理系统&#xff0c;性能提升51% 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other chang…...

用MATLAB手把手仿真超外差混频:从160MHz射频到40MHz中频的完整信号处理流程

MATLAB实战&#xff1a;超外差混频从160MHz射频到40MHz中频的工程级仿真指南 在无线通信系统设计中&#xff0c;超外差接收机架构因其优异的灵敏度和选择性&#xff0c;至今仍是射频前端的主流方案。本文将带您用MATLAB完整复现这一经典结构中的混频与滤波过程&#xff0c;特别…...

如何利用Taotoken模型广场为你的项目选择最合适的大模型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 如何利用Taotoken模型广场为你的项目选择最合适的大模型 当你的项目需要集成大模型能力时&#xff0c;面对市场上众多的模型提供商…...

ABAP云迁移中SAML Bearer断言实战指南

1. 这不是“配置一下就能用”的流程——SAML Bearer Assertion 在 ABAP 云迁移中到底在替谁干活&#xff1f;你刚接手一个 SAP S/4HANA Cloud 扩展项目&#xff0c;客户要求“把本地 ABAP 系统里的用户身份&#xff0c;安全地透传到新上线的 Node.js 微服务里”。运维同事甩来一…...

RAG幻觉根治手册:系统化消除检索增强生成中的错误输出

RAG 系统产生幻觉不是偶然&#xff0c;而是有明确的根因。本文从幻觉的成因分类入手&#xff0c;给出每类幻觉的系统性解决方案&#xff0c;帮助你把 RAG 准确率从 70% 提升到 95%。RAG 幻觉的三大根源在实践中&#xff0c;RAG 幻觉来自三个层面&#xff1a;检索层幻觉&#xf…...

3分钟掌握加密压缩包密码破解:ArchivePasswordTestTool终极实战指南

3分钟掌握加密压缩包密码破解&#xff1a;ArchivePasswordTestTool终极实战指南 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 你是否曾经…...

SAP-ABAP:变量、常量、结构与内表声明(10篇博客合集) 第三篇:STRUCT结构声明全指南:嵌套结构与深层结构的差异与选型

变量、常量、结构与内表声明&#xff08;10篇博客合集&#xff09; 第三篇&#xff1a;STRUCT结构声明全指南&#xff1a;嵌套结构与深层结构的差异与选型在ABAP开发中&#xff0c;结构体&#xff08;Structure&#xff09;是将多个字段组合成一个逻辑单元的核心手段。从简单的…...