c++ - C ++ 20 Consexpr虚拟未编译
问题描述
这不应该在最新版本的 GCC 和 Clang 上在 C++20 下编译吗?
我知道 Visual Studio C++ 编译器尚不支持它。
但是,根据此列表:https ://en.cppreference.com/w/cpp/compiler_support它应该在 GCC 和 Clang 上没有问题。
#include <iostream>
struct Base {
constexpr virtual ~Base() noexcept = default;
[[nodiscard]] constexpr virtual int
get_value() const noexcept = 0;
};
struct Derived
: Base {
[[nodiscard]] constexpr virtual int
get_value() const noexcept override {
return 5;
}
};
int
main() {
constexpr Derived a;
constexpr Base const & b = a;
constexpr auto c = b.get_value();
std::cout << c << '\n';
return 0;
}
解决方案
推荐阅读
- javascript - 如何将 html 输入保存到 json 文件?
- c++ - C++20 标准对使用子对象作为模板非类型参数有什么看法?
- python - 如何在python中更新json文件
- python - 使用 for enumerate 和 zip 进行反向迭代
- string - 有没有办法从 Clojure 中另一个函数的列表中创建一个函数中的字符串?
- android - android studio启动即时关闭应用程序
- java - 在定时器任务中更新静态变量
- javascript - 在 JS 中使用 reduce 创建一个新对象
- html - .val() 不工作并且返回为“on”
- css - 我的 Apache2 服务器处理一些 css 和 js 文件的速度很慢。知道为什么吗?