final_class определяется как:
class final_class final : private A {
public :
final_class() : A () {};
};
Я использую конструктор final_class как:
auto a = std::make_shared<final_class>();
И tring для компиляции с использованием 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 ++.
Есть ли способ это исправить?