Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >基于特征的自定义点和{fmt}中的ODR违反关注点

基于特征的自定义点和{fmt}中的ODR违反关注点
EN

Stack Overflow用户
提问于 2018-10-29 14:40:19
回答 1查看 115关注 0票数 2

首先,我目前正在为我的论文学习C++,因此我对这门语言缺乏经验。任何帮助都是非常感谢的。

我在代码中使用fmt库,用户提供的格式化类型的规范方式是专门化类模板类型fmt::formatter

示例

编译器资源管理器中的代码:wa

给定两个库( AB ),这两个库在实现过程中碰巧都大量使用fmt,并且在某种程度上都需要打印/记录当前时间。两者都可能合理地使用std::chrono::system_clock,并希望在几个点对其进行格式化,每一个都定义自己的fmt::formatter<std::chrono::system_clock::time_point>版本,以便使这段简单的代码成为可能:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
auto msg = fmt::format("It is now {}", std::chrono::system_clock::now());

A使用与B不同的实现,因为它考虑了本地时区,而不是在UTC中打印。

现在这个例子非常具体,但是由于类模板fmt::formatter是格式化用户提供的类型的方法,这种场景可能以一种或另一种形式出现。

问题

当我开发我的应用程序C并同时使用(不相关的)库AB时,我相信会有两个相同类型的不同实现(即fmt::formatter<std::chrono::system_clock::time_point>),从而违反了ODR的未定义行为。

问题

假设我对情况的理解是正确的,我的两个问题是:

  1. 有没有一种方法可以避免应用程序C中的冲突而不改变上游的AB
  2. 如果可以修改AB (或两者都可以),冲突可以以什么方式解决或完全防止。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-29 14:50:13

  1. 是否有办法避免应用程序C中的冲突而不改变A和B上游?

你确实违反了ODR,我认为你不能避免冲突而不改变A和/或B。

  1. 如果A或B(或两者都可以修改),冲突可以以什么方式得到解决或完全防止。

只专门化您自己库的类型:所以在库A中,在std::chrono::system_clock::time_point周围创建包装器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 namespace A {
     struct TimePoint {
         std::chrono::system_clock::time_point timePoint;
     };
 }


namespace fmt {
     // Specialization of formatter<TimePoint>
}

然后

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
auto msg = fmt::format("It is now {}", A::TimePoint{std::chrono::system_clock::now()});

图书馆B也是如此。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53054931

复制
相关文章
Node.js中的关注点分离
作者 | Emeni Oghenevwede 译者 | 明知山 策划 | 丁晓昀 关键要点 关注点分离是 Node.js 的一种架构,可以确保代码的可读性、易于重构和良好的代码协作。 通过遵循关注点分离原则,你可以确保最终的系统是稳定和可维护的。 关注点分离的原则确保了组件不会重复,从而使系统更加容易维护和重构。 关注点分离原则认为,业务逻辑应该与控制器分离。这简化了控制器的开发和测试用例的编写。 关注点分离原则有助于提升代码的可重用性。这样可以很容易地找到故障的来源以及如何将其从整个系统中隔
深度学习与Python
2023/03/29
5.9K0
Node.js中的关注点分离
hadoop关注点
Browser Interface A typical HDFS install configures a web server to expose the HDFS namespace through a configurable TCP port. This allows a user to navigate the HDFS namespace and view the contents of its files using a web browser. 浏览器接口 一个典型的HDFS安装会在一个可配
闵开慧
2018/03/30
6090
基于特征点的视觉全局定位技术
作者简介:英年早肥,美团无人配送平台,地图与定位组成员,负责视觉定位、里程计相关算法,致力于在流浪地球前实现自动驾驶
美团无人配送
2019/04/26
3.8K0
基于特征点的视觉全局定位技术
数据仓库表的标准和规范关注点
标准和规范总不像一个数学公式那样黑白分明,它的概念总是显得抽象和模糊。因此,并不存在真正意义上的标准和规范,而是指的从业人员相互之间的约定积累,以及在工作中达成共识的结论。
木东居士
2019/02/28
2K0
安全测试关注点
5、是否可以通过绝对路径直接登录系统(拷贝已登录系统的链接看是否直接进入系统)
wangmcn
2022/07/26
3370
机器学习中的特征——特征选择的方法以及注意点
关于机器学习中的特征我有话要说     在这次校园招聘的过程中,我学到了很多的东西,也纠正了我之前的算法至上的思想,尤其是面试百度的过程中,让我渐渐意识到机器学习不是唯有算法,机器学习是一个过程,这样的过程包括数据处理+模型训练,而数据处理又包括了特征提取,特征表示。模型训练中有训练的策略,训练的模型,算法相关等等的一套流程,一个好的预测模型与特征提取,特征表示的方法息息相关,而算法这是作用于特征数据集上的一种策略。     以上是我个人的一些观点,如有不同见解的人,也希望你们留言,大家一起探讨,一起进步。
felixzhao
2018/03/19
7290
机器学习中的特征——特征选择的方法以及注意点
    在这次校园招聘的过程中,我学到了很多的东西,也纠正了我之前的算法至上的思想,尤其是面试百度的过程中,让我渐渐意识到机器学习不是唯有算法,机器学习是一个过程,这样的过程包括数据处理+模型训练,而数据处理又包括了特征提取,特征表示。模型训练中有训练的策略,训练的模型,算法相关等等的一套流程,一个好的预测模型与特征提取,特征表示的方法息息相关,而算法这是作用于特征数据集上的一种策略。
felixzhao
2019/02/13
1.4K1
架构设计的 ROI 关注点
ROI 是指投资回报率,对应系统架构设计上来说需要从业务发展和收益角度综合评估 ROI 来进行取舍。需要确保架构符合业务的发展,在设计开发时需要重点关注一下几个地方:
知一
2022/04/06
4450
点云配准任务中的点特征与一般点特征的区别在哪里?
这个工作来自于华中科技大学,发表于ICCV 2021。这个工作聚焦于点云的点特征表示学习,但是,与一般的点特征学习方法并不一样。我们知道,基于深度学习的三维点云处理已经在近年来得到了广发关注,从先驱性的工作例如PointNet到近期的Point Transformer等。这些工作都能有效的学习点特征表示。但是,这些方法学习点特征都是基于输入的某一个点云而言的,所有的操作也都集中在一个点云上,并且追求特征的描述性,力求能准确表示三维点云的局部几何结构。但是,这篇论文针对点云配准工作提出了另一种点云设计方式。我们知道配准的目的是求解输入的点云对之间的相对变换以使它们最好的对齐,在这个过程中,聚焦于用学到的点特征表示构造可靠的匹配对。为此,对于点特征的鲁棒性需求也很重要。为了实现这个目的,本工作提出从输入的两个点云出发,利用这两个点云之间的交互进一步调整点特征学习,使得到的点特征表示源于同时感知到当前点云和另一个需要配对的点云,从而追求正确的匹配点的可匹配性的提升。也就是说这是一个针对特定任务而设计的点特征学习方法,或许此方法学到的点特征难以应用到其他任务,例如分类、分割等,但对于匹配、配准而言应该更加适用。
3D视觉工坊
2023/04/29
3450
点云配准任务中的点特征与一般点特征的区别在哪里?
Go 中的格式化字符串`fmt.Sprintf()` 和 `fmt.Printf()`
在 Go 中,可以使用 fmt.Sprintf() 和 fmt.Printf() 函数来格式化字符串,这两个函数类似于 C 语言中的 scanf 和 printf 函数。
除除
2023/06/17
5950
Go 中的格式化字符串`fmt.Sprintf()` 和 `fmt.Printf()`
基于正交投影的点云局部特征
由于点云具有无序,不规则,无拓扑结构的特点,因此可以利用多个二维图像通过三维到二维投影来表示三维点云的几何特征。用图像表示特征可以提供稳定的信息,多个投影角度可以弥补投影过程中造成的信息丢失投影,实现对空间信息的解码。充分利用三维空间信息取决于三维物理坐标系统的建立,但传感器的坐标系统没有抵抗旋转的能力。
3D视觉工坊
2020/12/11
1K0
基于正交投影的点云局部特征
基于正交投影的点云局部特征
由于点云具有无序,不规则,无拓扑结构的特点,因此可以利用多个二维图像通过三维到二维投影来表示三维点云的几何特征。用图像表示特征可以提供稳定的信息,多个投影角度可以弥补投影过程中造成的信息丢失投影,实现对空间信息的解码。充分利用三维空间信息取决于三维物理坐标系统的建立,但传感器的坐标系统没有抵抗旋转的能力。
小白学视觉
2020/12/07
6520
关注点分离之RestTemplate的错误处理
在这个简短的教程中,将讨论如何实现一个自定义ResponseErrorHandler类并将其注入到RestTemplate实例中去,这样我们就可以在调用远程API时优雅地处理HTTP错误。
烟雨平生
2023/03/07
7360
关注点分离之RestTemplate的错误处理
接口测试用例编写和测试关注点
在日常开发过程中,有人做前端开发,有人负责后端开发。接口就是连接前后台,由于前端开发和后端开发的速度可能不一样,例如后端开发好了,但是前端没有开发。那么我们是不是就不需要测试呢?一般我们大部分人都是做功能测试,很多是界面的功能测试。如果你理解了接口测试,那么你就可以针对接口进行测试。
用户7880705
2020/11/05
1.1K0
图像特征点|Harris特征点
小白在之前的为小伙伴在前面的推送中带来了moravec算子,忘记了的小伙伴可以回过去看一下《图像特征点|moravec特征点》,但是moravec算子也具有很多不足之处。接下来小白将介绍Harris角点中针对其不足之处进行的改进地方。
小白学视觉
2019/10/24
1K0
图像特征点|Moravec特征点
小白好久没有写文章了,近期的事情比较多,公众号的好多事情都是由师弟们在处理,今天终于抽出点时间可以和小伙伴们共同学习。本次为小伙伴们带来的是图像特征专题,Moravec特征点的原理与提取。
小白学视觉
2019/10/24
7610
图像特征点|ORB特征点
ORB特征包括特征点和描述子。特征点用于筛选比较“特殊”的点,而描述子用来描述某个点周围的特征。接下来将分别介绍这两部分。
小白学视觉
2019/10/24
1.2K0
图像特征点的跟踪
http://mpvideo.qpic.cn/0bc3kqaacaaaqmaktupovrqvavgdafkaaaia.f10002.mp4?dis_k=d2c8e1e90b7f1aefb319e36
点云PCL博主
2022/04/06
3980
移动APP测试用例设计的关注点
在我们的测试工作中,对于某个APP的测试其实有很多东西都是类似的可以抽象出来的,这里june总结一下大部分APP测试的时候都要考虑到的方面。如果漏下了其他方面,欢迎大家补充。 应用的启动和停止 1.1 首次启动 是否出现欢迎界面,欢迎界面的停留时间合理,欢迎界面后是否正常进入应用; 首次启动时间是否合理; 该拉取的信息是否正确; 桌面图标是否创建成功,功能启动快捷键创建是否成功(某些安卓手机会有在桌面创建应用内某个功能的快捷键的需求) 1.2 二次启动 启动时间是否
腾讯移动品质中心TMQ
2018/02/06
1.7K0
Spring MVC 你必须关注点
Spring MVC配置简单,特别是在SpringBoot出现后基本都是开箱即用。在实际项目中通常是需要单独去处理一些特殊的情况,比如统一的异常处理,校验器以及国际化。
李鸿坤
2020/07/23
7210

相似问题

` `final`‘是否违反ODR?

10

自定义安全HTTP报头是否违反了关注点的分离

11

模型中的Display属性是否违反了视图和模型的关注点分离

30

依赖注入--它是否违反了关注点分离?

20

为什么标头上的struct中声明的模板不违反ODR,而专门化却违反ODR?

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文