【发布时间】:2016-01-06 15:06:20
【问题描述】:
前提:我很懒。而且我不喜欢排长队。
假设您有一个带有一个参数的函数,并且您想为该参数指定一个默认值。假设参数是std::map,默认只是一个空映射。这样做的方法是
void foo (std::map<Key,Value> the_map = std::map<Key,Value>());
现在,如果 Key 和/或 Value 的名称很长(可能是模板化的),函数声明就会变长。有办法写出类似的东西会很好
void foo (std::map<Key,Value> the_map = auto);
现在,我知道这不是使用关键字auto,而只是为了解释这个概念:我不想仅仅因为必须写下一个已经很长的函数声明的长度加倍简单的默认构造的默认元素。我只想告诉编译器“看,在那里构建一个默认的”。有没有办法做到这一点?另外,有没有人也觉得有这个需求?
注意:是的,我可以 typedef 地图类型并使用短名称。但我想要一种不同的方式。 注 2:是的,我也可以重载该函数,以便它的一个版本不带参数,而另一个版本不带参数。但我想要一种不同的方式。
我想我正在寻找的是“默认默认参数”...
【问题讨论】:
标签: c++ function default-value