Может ли кто-нибудь помочь мне со следующей проблемой?
Существует простой код:
#include <vector>
struct A {
std::vector<int> vec;
};
void func (A &&a = {}) {}
int main()
{
func();
return 0;
}
Когда я пытаюсь скомпилировать его с помощью gcc 5.4.0, я получаю сообщение об ошибке:
undefined reference to `std::vector<int, std::allocator<int> >::vector()'
Удивительно, но clang хорошо компилирует его. Также, если немного изменить код, он скомпилирован без проблем:
#include <vector>
struct A {
std::vector<int> vec;
};
void func (A &&a) {}
int main()
{
func({});
return 0;
}
Я действительно не могу понять, что неправильно с первым кодом.