duplicate symbol '_ZN2tn9direction4core3apineERKNSt3__16vectorINS2_30TruckRestrictionCharacteristicENS3_9allocatorIS5_EEEESA' in:
duplicate symbol '_ZN2tn9direction4core3apieqERKNSt3__16vectorINS2_30TruckRestrictionCharacteristicENS3_9allocatorIS5_EEEESA' in:
using TruckRestrictionGroup = std::vector<tn::direction::core::api::TruckRestrictionCharacteristic>;
// 不能这么定义
bool operator==(const TruckRestrictionGroup& lhs, const TruckRestrictionGroup& rhs)
{
if (lhs.size() != rhs.size())
{
return false;
}
auto sorted_lhs = lhs;
auto sorted_rhs = rhs;
std::sort(sorted_lhs.begin(), sorted_lhs.end());
std::sort(sorted_rhs.begin(), sorted_rhs.end());
return sorted_lhs == sorted_rhs;
}
bool operator!=(const TruckRestrictionGroup& lhs, const TruckRestrictionGroup& rhs)
{
return !(lhs == rhs);
}
在头文件中声明,在源文件中定义:确保在头文件中仅声明比较操作符,在源文件中定义它们,以避免重复定义。