在 LearnCpp.com 上时,我偶然发现了一个名为
std::to_string()
的函数,但教程并没有真正详细说明它与 static_cast<std::string>()
到底有何不同,所以现在我很困惑。
另外,
std::string
是一种类型,对吧?
我尝试使用它们并得到编译器错误:
'static_cast': cannot convert from 'char' to 'std::string'
#include <iostream>
#include <string>
int main()
{
char x{ 'a' };
std::cout << std::to_string(x) << "\n";
std::cout << static_cast<std::string>(x) << "\n";
return 0;
}
std::to_string
是标准库中的一个函数。它有许多针对不同参数类型的重载,所有参数类型都返回 std::string
。我建议与 char
一起使用时要小心。它可能不会达到您的预期。
另一方面,static_cast
不是一个函数,它是一个语言特性。它尝试进行静态强制转换。没有从 char
到 std::string
的转换,因此 static_cast<std::string>(x)
是一个错误。
没有理由期望两人做同样的事情。