什么是`std :: string(*)(int)`中的星号(*)

时间:2016-03-03 15:43:16

标签: c++ boost

以下是代码,我不理解std::string(*)

中的星号(*)
using boost::algorithm::join;
using boost::adaptors::transformed;
auto tostr = static_cast<std::string(*)(int)>(std::to_string);

这是original code

1 个答案:

答案 0 :(得分:5)

它是指向函数接受int参数并返回std::string的指针 - 正是std::to_string所做的。

正如@PeteBecker指出的那样,需要进行强制转换,因为to_string存在多个重载,接受不同的参数(整数,双精度,短路等)。强制转换允许编译器选择其中一个。