c++11 - 使用 libcxx lib 在 type_traits::__is_empty1 中对最终子类的 std::make_shared 进行编译失败
问题描述
final_class 定义为:
class final_class final : private A {
public :
final_class() : A () {};
};
我使用 final_class 构造函数:
auto a = std::make_shared<final_class>();
并尝试使用 libcxx 进行编译,但-std=c++11
无法构建并出现以下错误:
libcxx/include/type_traits:957:8: error: cannot derive from 'final' base 'final_class' in derived type 'std::__1::__is_empty1<final_class>' struct __is_empty1
据我了解,它尝试从其参数派生以确定一个类是否是另一个类的虚拟基础。以前它在final
引入 C++ 之前就可以工作。
有没有办法解决它?
解决方案
推荐阅读
- shell - 将重复的代码转换为循环
- swift - 尝试显示从 Firebase 到 MapKit 的位置数据
- python - 将使用 PyQt5、pymysql 和 selenium 的 python3.6 应用程序转换为 exe
- python - Python List Append 带有颠簸的数组错误
- java - Java:使用 rest 客户端连接到 hbase 会产生 AuthenticationException
- asp.net - 启动 Web 应用程序时无法解决 ASP.NET 错误
- amazon-web-services - 502 错误:CloudFront 无法连接到源
- google-analytics - DAU/MAU 谷歌数据工作室
- python - 如何点击每个链接并提取里面的内容 - Python Selenium
- django - 如何防止更新 Tastypie 中的列