gpt4 book ai didi

c++ - 为什么没有 to_string(const string&)?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:53 24 4
gpt4 key购买 nike

我有模板代码需要将一些模板类型转换为字符串。为此,我为自己的类型重载了 to_string。但是类型也可以已经是一个字符串。然后编译失败,因为类型字符串本身没有重载 to_string(只是返回它的参数)。

编辑:示例代码:

template<class T>
class TemplatedClass
{
public:

string toString() const
{
// this should work for both simple types like int, double, ...
// and for my own classes which have a to_string overload
// and also for string, which is the reason for my question
return string("TemplatedClass: ").append(to_string(t_));
}

private:
T t_;
};

最佳答案

您可以使用适当的重载编写自己的模板函数,如下所示:

#include <iostream>
#include <string>
using namespace std;

template<typename T>
std::string toString(const T& t) {
return std::to_string(t);
}

std::string toString(const char* t) {
return t;
}

std::string toString(const std::string& t) {
return t;
}


int main() {
cout << toString(10) << endl;
cout << toString(1.5) << endl;
cout << toString("char*") << endl;
cout << toString(std::string("string")) << endl;
return 0;
}

关于c++ - 为什么没有 to_string(const string&)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37325436/

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