背景:当处理时间时,我想在知道时将“now”作为参数传递 并询问系统是否还不知道,所以我把它传递给一个默认调用时间函数的参数。 这似乎适用于GCC(4.1.2),如下面的代码所示(它看起来有点奇怪,但有时间的例子往往有点复杂)。
问题:调用函数作为符合C ++标准/便携/合理实践的默认参数吗? 欢迎来自标准,链接和SO问题的报价
#include <iostream>
#include <string>
std::string getString()
{
std::cout << "Default: " << std::flush;
char line[100];
std::cin.getline(line, 100);
return line;
}
void printString(const std::string& str = getString())
{
std::cout << str << std::endl;
}
int main()
{
printString("start");
printString();
printString("stop");
}
答案 0 :(得分:4)
是的,允许函数作为默认参数。请参阅2003标准
的8.3.6 / 5中的示例答案 1 :(得分:4)