gpt4 book ai didi

c++ - 将 'WhatEver' 重新定义为不同类型的符号

转载 作者:行者123 更新时间:2023-11-28 02:56:46 24 4
gpt4 key购买 nike

<分区>

我正在尝试将一些遗留代码迁移到一个较新的项目中,但我并没有真正修复这个代码。代码在旧环境中编译并运行良好。

我有一个包含这些定义的头文件:

std::string ToString(shared_ptr<const SomeObject> obj);
std::string ToString(SomeObject* obj);

以及包含以下行的实现文件:

using namespace std;

string ToString(shared_ptr<const SomeObject> obj)
{
// code cut
return outstring.str();
}

string ToString(SomeObject* obj)
{
// code cut
return outstring.str();
}

我试图用 clang 编译它,但我得到了以下重定义错误:

.../Filename.cxx:15:8: error: redefinition of 'ToString' as different
kind of symbol
string ToString(shared_ptr<const SomeObject> obj)
^
.../Filename.h:15:13: note: previous definition is here
std::string ToString(SomeObject* obj);

为什么重新定义为不同种类的符号?我应该如何解决这个问题?最后但同样重要的是,为什么它适用于较旧的编译器?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com