Неопределенная ссылка на деструктор в clangC++

Программы на C++. Форум разработчиков
Anonymous
Неопределенная ссылка на деструктор в clang

Сообщение Anonymous »

Компиляция следующего кода дает «неопределенную ссылку на `A::~A()»:

Код: Выделить всё

#include 
#include 

template 
struct A {
A() {}
~A() {}
};

struct Aggregate {
using key_vector = A;
using value_vector = A;

value_vector vals;
key_vector keys;
};

int
main()
{
auto x = malloc(sizeof(Aggregate));
new (x) Aggregate{};

return 0;
}
Проблема присутствует в clang 7.0 и 6.0 (возможно, и в некоторых более старых версиях). См.: https://godbolt.org/z/GNPk3V

В новых версиях clang и gcc все работает нормально.

Это ожидаемо или это какая-то ошибка в clang?

Подробнее здесь: https://stackoverflow.com/questions/583 ... r-in-clang

Вернуться в «C++»