Неопределенная ссылка на деструктор в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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