Справочная информация: при работе со временем я хотел передать «сейчас» в качестве аргумента, когда он известен, и спросить систему, если он еще не известен, поэтому я передал его аргументу, который по умолчанию вызывает функцию времени,Похоже, это работает с 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");
}