【发布时间】:2010-09-22 13:17:51
【问题描述】:
背景:在处理时间时,我想在已知时将“现在”作为参数传递 并询问系统是否还不知道,所以我将它传递给一个默认调用时间函数的参数。 这似乎适用于 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");
}
【问题讨论】: