gpt4 book ai didi

c++ - 如何编译错误 "no matching function for call to ' to_string'"的程序?c++

转载 作者:行者123 更新时间:2023-12-04 11:49:16 25 4
gpt4 key购买 nike

如果我在这里有 DATA_T = std::string,我将无法编译此代码,因为错误“没有匹配的函数用于调用 'to_string'”。该函数不允许将字符串转换为字符串。但是无论如何我都需要获取字符串,如何解决此错误并编译程序?

template <typename DATA_T>
std::string get_string(DATA_T subdata) {
std::string data = "...";
if (typeid(subdata) == typeid(std::string))
data += subdata;
else
data += std::to_string(subdata);
return data;
}

最佳答案

在 C++17 中,使用 if constexpr 可以使它变得更简单。 :

#include <string>
#include <type_traits>

template <typename DATA_T>
std::string get_string(DATA_T subdata) {
std::string data = "...";
if constexpr (std::is_same_v<DATA_T, std::string>)
data += subdata;
else
data += std::to_string(subdata);
return data;
}
the other answer对于 C++17 之前的解决方案。

关于c++ - 如何编译错误 "no matching function for call to ' to_string'"的程序?c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68672586/

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