Код: Выделить всё
struct Base
{
virtual ~Base() = default;
};
struct Derived final : Base
{
Derived();
};
Код: Выделить всё
#include "Type.h"
Derived::Derived() = default;
Код: Выделить всё
#include "Type.h"
int main()
{
std::shared_ptr pr;
pr = std::make_shared();
auto dyncast = dynamic_cast(pr.get());
if (dyncast) {
std::cout clang++ -o out main.cpp -L. -lOut -O2 -std=gnu++20
> ./out
Следующее «исправляет» проблему:
- удаление Final из объявления Derived
- встраивание Derived конструктор
- добавление другой виртуальной функции-члена в Derived
- построение без -O2
- понижение XCode до версии 15
Есть ли какой-нибудь обходной путь/флаг компилятора, чтобы это заработало?
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ed-library
Мобильная версия