c++ - 检测 c++14 的 msvc 编译器的未定义变量
问题描述
考虑以下 C++14(很重要)代码:
struct B {
static constexpr int a = 1;
};
int main() {
auto p = &B::a;
}
使用 gcc 编译它会导致“未定义的引用”,因为B::a
未定义(刚刚声明)。要解决这个问题,我们只需要B::a
在结构之外定义:
constexpr int B::a;
但是我的 msvc 编译器有问题。即使没有定义B::a
刚刚编译好的第一个代码摘录(没有“未定义的引用”问题)。
有没有办法(我认为是编译器选项)说 msvc 来检测为 C++14 标准编译的此类问题,即何时/std:c++14
使用选项?
这是我测试问题的godbolt的链接:https ://godbolt.org/z/G8BnFY
解决方案
推荐阅读
- django - 无法使用 gmail 从 Wagtail 表单发送消息
- python - 有没有办法让列表中变量的变化反映在列表中?
- excel - 使用索引和匹配从没有行标题的表中提取数据
- javascript - 正则表达式提取逗号之间的字符串,但包括引号
- css - 你如何让 flex-column 在 iOS Safari 上工作?
- python - 文件的其余部分被忽略 C:\google_cloud_storage-1.30.0-py3.8-nspkg.pth
- c++ - C++:有没有办法将各种变量类型的列表合并为一个?
- mysql - 如果没有足够的行,则 rand() 的 SQL 顺序会使用重复项填充结果
- sql - 如何使用 show_query?返回“没有适用的方法”
- ant-media-server - 验证 Antmedia REST API