gpt4 book ai didi

c++ - 调用函数作为默认参数可以吗?

转载 作者:太空宇宙 更新时间:2023-11-03 10:35:52 25 4
gpt4 key购买 nike

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

最佳答案

是的,函数可以作为默认参数。见2003标准8.3.6/5中的例子

关于c++ - 调用函数作为默认参数可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3769604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com