谁能帮我解决以下问题?
有一个简单的代码:
#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;
}
我真的不明白第一个代码有什么问题。