我可以合法地在 std::function
(或其他类似结构)中使用模板参数名称吗?例如。给定代码
std::function<int(int, int)> some_func;
我可以用下面的方式重写吗?
std::function<int(int begin, int end)> some_func;
如果它符合标准,那就太好了,因为类型本身很少包含有关参数用途的信息。
到目前为止,我已经在 Visual Studio 2013 中对其进行了测试,并且可以正常工作。编辑:它也适用于 gcc 4.8.1。
最佳答案
是的,您可以提供参数名称。来自 C++11 标准的第 8.3.5/11 段:
An identifier can optionally be provided as a parameter name;
指针到函数和指针到成员函数类型也是如此。就个人而言,我只会在标识符更清楚地表达您的代码意图时才使用它。
关于c++ - 我可以在 std::function 模板签名类型参数中使用命名参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25730544/