背景:在处理时间时,我想在已知时将“现在”作为参数传递,并询问系统是否还不知道,所以我将它传递给默认调用时间函数的参数。这似乎适用于 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");
}