访问 static constexpr std::array 而不使用类外定义

2024-01-31

我有一个定义一些数组的类。

点.hpp

class Points {

public:

    static constexpr std::array< double, 1 > a1 = { {
            +0.0 } };

    static constexpr std::array< double, 2 > a2 = { {
            -1.0 / std::sqrt( 3.0 ),
            +1.0 / std::sqrt( 3.0 ) } };

};

然后我的主文件使用这些数组。

main.cpp

#include "Points.hpp"

int main()
{
    // Example on how to access a point.
    auto point = Points::a2[0];

    // Do something with point.
}

当我使用 C++11 和 g++ 4.8.2 编译代码时,出现以下链接器错误:

undefined reference to `Points::a2'

我尝试创建一个 Points.cpp 文件,以便编译器可以从中创建一个目标文件。

点.cpp

#include "Points.hpp"

但这并没有修复链接器错误。

我的印象是,可以在类声明中将变量初始化为 C++11 中的 static constexpr,然后按照我的方式访问它们,如这个问题所示:https://stackoverflow.com/a/24527701/1991500 https://stackoverflow.com/a/24527701/1991500

我是否需要为 Points 创建一个构造函数,然后实例化该类?我究竟做错了什么?

如有任何反馈,我们将不胜感激!谢谢!


根据@dyp的建议,我研究了静态数据成员的定义。

我的问题要求我定义 Points 类的静态成员变量。

按照这些问题中的示例:

constexpr 数组在有下标时是否一定要使用 odr ? https://stackoverflow.com/questions/23428684/is-a-constexpr-array-necessarily-odr-used-when-subscripted/23436665#23436665

and

在 C++ 中定义静态成员 https://stackoverflow.com/questions/3536372/defining-static-members-in-c

我需要补充:

// in some .cpp
constexpr std::array< double, 1 > Points::a1;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

访问 static constexpr std::array 而不使用类外定义 的相关文章

随机推荐

  • 使用 pyvmomi 获取 vmware 中实例实际使用(分配)的磁盘空间

    我最近开始使用 pyvmomi 在将实例迁移到 AWS 之前获取 vmware 服务器的详细清单 在vcenter Web界面或vsphere客户端中 我可以检查实例并查看其磁盘 它会告诉我磁盘大小 已配置 以及正在使用的磁盘量 已用存储
  • JavaScript 字节序编码?

    对SO的回应 https stackoverflow com questions 503052 javascript is ip in one of these subnets 503238 503238我开始思考 JavaScript 是
  • 计算词性标注器准确率的参数

    我是自然语言处理的初学者 我有一个关于计算 POS 标注器准确性的基本问题 标注器正在使用语料库 不要将下面的 集合 一词与集合的数学定义混淆 我只是将其用作普通的英语单词来传达一些 组 或 映射 有不同的准确性指标 例如精度 召回率和混淆
  • C/C++ 中本地时间和 GMT/UTC 之间的转换

    在 C C 中在本地时间和 UTC 之间转换日期时间的最佳方法是什么 我所说的 日期时间 是指包含日期和时间的时间表示形式 我会很高兴time t struct tm 或任何其他使其成为可能的表示 我的平台是Linux 这是我试图解决的具体
  • 除了减少内存使用之外,C# 静态函数的性能是否比非静态函数更好?

    我假设public or private static由于内存中只有静态目标的一份副本 因此目标必须减少内存使用量 看起来因为一个方法是静态的 所以该方法可能成为 CLR 编译器进一步优化的潜在点 超出了非静态函数所能实现的范围 不过只是一
  • CSS 自动完成字体大小[重复]

    这个问题在这里已经有答案了 当将鼠标悬停在浏览器的自动完成建议上时 我无法弄清楚如何增加或如何使用预览文本的默认字体大小 我在用着https tailwindcss com https tailwindcss com 适合所有风格 E g
  • 如何使用 javascript 将图像加载到 bootstrap 模式中

    我的设置是 4 个链接 如下 我希望每个链接都打开 myModal 但根据单击的链接 应该在模式中加载不同的图像文件 我让它适用于其中一个链接 li a href myModal 6 Teams a li li a href 5 Teams
  • CSS 翻译后是否可以“捕捉到像素”?

    我创建了一个模态框并使用克里斯 科耶提到的技术 http css tricks com centering percentage widthheight elements 到目前为止 我发现的唯一问题是 有时盒子会偏移半个像素 这会让一些孩
  • 用于选择具有最后一个子值的元素的 xpath

    这是我的 xml 文件
  • MVC 项目间共享布局

    我想知道是否有一种方法可以在所有项目之间共享 layout cshtml 文件 这样 如果我想更改我们公司的页面布局 我只需在一处更改即可 从我迄今为止看到的研究来看 人们提到了可能创建 dll 文件 另外我不是在谈论 mvc 中的区域 我
  • 编译时多态性和静态绑定有什么区别?

    This https stackoverflow com questions 10580 what is early and late binding链接帮助我理解静态绑定和动态绑定之间的区别 但我很困惑 静态绑定和编译时多态性有什么区别或
  • 内存不足错误,是我的应用程序的错吗?

    我在 Android 市场上有一个应用程序 其中异常和错误由 acra 捕获并发送给我 但我收到了很多内存不足的错误 在不同类型的课程中 一些是我的应用程序 一些是通用的java 这是否总是意味着我的应用程序存在问题 或者也可能是由于其他进
  • Struts2.5 JSONInterceptor 没有填充 Action 类:

    我正在构建一个 CRUD 应用程序 使用 embers 作为客户端 struts2 作为服务器 从 ember 创建记录的 post 请求如下所示 接受 应用程序 json 文本 javascript q 0 01 接受编码 gzip de
  • Scala 中的 Drools Expert 输出对象

    我是 Scala 和 Drools Expert 的新手 需要一些帮助来从 Drools 会话中获取信息 我已经成功设置了一些由 Drools 规则操作的 Scala 类 现在我想创建一个对象来存储一组输出事实 以便在 Drools 外部进
  • 从 GeoPandas 图中重新定位图例

    I m plotting a map with legends using the GeoPandas plotting function When I plot my legends appear in the upper right c
  • 防御 XSS 攻击?

    我对 PHP 很陌生 但我听说 XSS 漏洞很糟糕 我知道它们是什么 但如何保护我的网站 为了防止 XSS 攻击 您只需正确检查和验证您计划使用的所有用户输入的数据 并且不允许从该表单插入 html 或 javascript 代码 或者您可
  • 为 Twilio-Whatsapp 电话号码上的传入消息设置 Webhook

    我们有一个支持 Whatsapp 的 Twilio 电话号码 当尝试以编程方式设置传入消息的 Webhook 时 Webhook 设置正确 但消息未通过 Whatsapp 电话号码的 Webhook 似乎位于与普通电话号码不同的位置 要手动
  • 范围内的字符类 - vim

    鉴于我有以下字符串 This is a test string string string 并尝试执行以下替换 s w substitute g 它不会出现错误 未找到模式 当我使用时 s a zA Z substitute g 有用 有没
  • 什么情况下fgetcsv返回false?

    The 文档 http php net manual en function fgetcsv php says 如果提供了无效句柄 则 fgetcsv 返回 NULL 如果出现其他错误 包括文件结尾 则返回 FALSE 除了文件结尾之外 什
  • 访问 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