我有一些代码可以在 Linux 上编译,但无法在我的 Mac 上编译。我正在使用 gcc-4.2.1 进行编译。有问题的代码是 C++,它看起来像这样:
void print(std::ostream& os) const { os << std::string(*this) << " "; }
错误是:
error: explicit instantiation of Œstd::basic_ostream<_CharT, _Traits>&
std::operator<<(std::basic_ostream<_CharT, _Traits>&, const
std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits
= std::char_traits<char>, _Alloc = std::allocator<char>]¹ but no
definition available
我知道代码有效,因为它在 Linux 上编译得很好。我无法判断 Mac 错误是由于缺少库还是由于编译器版本不同。我想也许我可以通过自己重载 << 运算符来修复它,但到目前为止我的尝试还没有奏效。任何帮助,将不胜感激!