int foo(int){
...
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
在Scott Meyers的"Effective C++,3rd edition",第47项中给出了定义函数但未命名参数的一种情况:
template<typename IterT, typename DistT>
void doAdvance(IterT& iter, DistT d,
std::random_access_iterator_tag)
{
iter += d;
}
Run Code Online (Sandbox Code Playgroud)
用于:
template<typename IterT, typename DistT>
void advance(IterT& iter, DistT d)
{
doAdvance( iter, d,
typename std::iterator_traits<IterT>::iterator_category() );
}
Run Code Online (Sandbox Code Playgroud)
实质上,doAdvance中的第三个参数是一个没有变量名称的类型,即它是一个未命名的参数.具有未命名的参数不是问题,因为该参数仅在解析使用的重载函数期间使用.我在这个相关的SO问题中讨论这些主题.
| 归档时间: |
|
| 查看次数: |
594 次 |
| 最近记录: |