Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
头文件中定义的非内联虚函数
单一定义规则指出 整个程序中 有一个对象 或非内联函数不能有多个定义 从 维基百科 嗯 我知道如果一个成员函数是在头文件中定义的 那么它就是隐式内联的 并且 ODR 没问题 但是虚函数呢 我们知道 如果一个虚函数被多态调用 它就不能被内联
c
onedefinitionrule
基本 ODR 违规:.h 文件中的成员函数
免责声明 这可能是一个基本问题 但我是一名理论物理学家 接受过训练 试图学习正确的编码 所以请耐心等待 假设我想对一个相当复杂的物理系统进行建模 根据我的理解 对该系统进行建模的一种方法是将其作为一个类引入 然而 由于涉及到系统 类会很大
c
onedefinitionrule
hfile
强制初始化模板类的静态数据成员
关于模板类的静态数据成员未初始化存在一些问题 不幸的是 这些都没有能够帮助我解决我的具体问题的答案 我有一个模板类 它有一个静态数据成员 必须为特定类型显式实例化 即必须专门化 如果不是这种情况 使用不同的模板函数应该会导致链接器错误 这是
c
templates
Optimization
g
onedefinitionrule
为什么编译器不对同一翻译单元中的 ODR 违规发出警告
在同一个翻译单元中 ODR 问题很容易诊断 那么为什么编译器不会针对同一翻译单元中的 ODR 违规发出警告呢 例如在下面的代码中https wandbox org permlink I0iyGdyw9ynRgny6 https wandbo
c
templates
C17
onedefinitionrule
内联函数以及类和头文件
头文件中定义的任何函数都会自动内联吗 如果我在类中声明一个函数并使用关键字 inline 在外部给出定义 那么这个函数会是内联的吗 如果是 为什么这不违反内联函数应在声明时赋予主体的法律 类定义中定义的任何函数都是内联的 任何标记的功能in
c
class
inline
onedefinitionrule
C++:不同翻译单元中具有相同名称的不同类
考虑以下示例 usedclass1 hpp include
c
onedefinitionrule
为什么调用成员函数不会调用该对象的 ODR-USE?
Here in cppref http en cppreference com w cpp language initialization says 如果非内联变量 C 17 起 的初始化推迟到主 线程函数的第一条语句之后进行 它发生在第一
c
initialization
languagelawyer
onedefinitionrule
不同翻译单元中不可重载的非内联函数定义
假设我有 2 个 TU 其中有 2 个具有外部链接的非内联函数定义 其区别仅在于返回类型 我的程序违反了哪一段 基本 def odr 4 https timsong cpp github io cppwp n4659 basic def o
c
C17
languagelawyer
onedefinitionrule
链接器错误,静态常量似乎没有被 odr 使用
当您了解细节时 odr used 标准中的定义非常令人困惑 至少对我来说是这样 我通常依赖 如果引用 的非正式定义 except当左值到右值的转换可用时 对于整型常量 它们应该被视为右值 这似乎应该将其排除在引用规则之外 这是我无法链接的示
c
c14
onedefinitionrule
为什么内联用户提供的构造函数使用基类构造函数?
考虑以下说明性示例 include
c
templates
languagelawyer
onedefinitionrule
使用 scipy.ODR 的线性回归失败(解决方案未满级)
尝试使用 scipy odr 进行线性回归也是如此 然而 它却惨遭失败 scipy odr 之前曾为我工作过 我在代码中没有看到任何错误 我能想到的唯一原因是斜率可能太小 但我不明白这会如何困扰 scipy 感谢您的帮助 代码 usr bi
python
matplotlib
scipy
Regression
onedefinitionrule
访问 static constexpr std::array 而不使用类外定义
我有一个定义一些数组的类 点 hpp class Points public static constexpr std array lt double 1 gt a1 0 0 static constexpr std array lt do
C11
static
constexpr
stdarray
onedefinitionrule
为什么采用一种定义规则,而不是一种声明规则?
我已阅读以下材料 https www wikiwand com en One Definition Rule https www wikiwand com en One Definition Rule http en cppreferenc
c
onedefinitionrule
在未使用的默认成员初始值设定项中使用仍然是 odr 使用吗?
即使任何构造函数都没有使用默认成员初始值设定项 在默认成员初始值设定项中使用仍然是 odr 使用吗 例如 这个程序是否格式错误 因为g a 是否使用了 odr 因此其定义被隐式实例化 template a
c
onedefinitionrule
templateinstantiation
implicitinstantiation
Scipy.Odr 多变量回归
我想执行多维 ODRscipy odr 我读了 API 文档 它说多维是可能的 但我无法让它工作 我在互联网上找不到工作示例 而且 API 非常粗糙 没有给出如何继续的提示 这是我的 MWE import numpy as np impor
python
python3x
NumPy
scipy
onedefinitionrule
执行静态对象的析构函数时崩溃
有一个微妙的错误在我们的软件中不会以可预测的方式显现出来 当全局析构函数执行时会发生这种情况 通常这是一个 双重释放 错误 但我也看到过其他事情 NULL ptr 取消引用 对未分配任何内容的地址的 ptr 取消引用 访问未对齐 因为指针有
c
globalvariables
staticinitialization
onedefinitionrule
命名空间范围内的 constexpr 变量,带或不带显式内联定义
即使读完之后这个关于非显式内联命名空间作用域变量的问题 https stackoverflow com q 46107312 3537677 在标头中定义 我对显式内联名称空间作用域变量是否可以有点偏执 因为据我所知 违反 ODR 的行为是
c
languagelawyer
C17
onedefinitionrule
关于 ODR 违规和模板变量
我知道模板函数在链接时不会受到多个定义的影响 就像在类内部定义的成员函数一样 默认情况下是内联的 还 constexpr对象具有内部链接 但模板变量具有外部链接 我的意思是在命名空间范围内 对于 C 14 这两种情况都是如此 关于什么 te
c
templates
c14
constexpr
onedefinitionrule
是否使用了 static constexpr 变量 odr?
给出下面的代码是Foo FOO1是否使用 ODR include
c
c14
onedefinitionrule
C++ - 在模板类外部但在标头中定义成员函数
我定义了一个带有一个成员函数的简单类模板 它是在类外部定义的 并具有附加 显式 专门化 也在类外部定义 一切都在一个头文件中 如果您在多个翻译单元中包含此标头 则会因单定义规则而出现链接器错误 Header with a template
c
templates
onedefinitionrule
1
2
»