[c++] duplicate symbol

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);
}

在头文件中声明,在源文件中定义:确保在头文件中仅声明比较操作符,在源文件中定义它们,以避免重复定义。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容