gpt4 book ai didi

c++ - 如何确定函数参数是自动设置为默认值还是在 C++ 中显式设置?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:09 26 4
gpt4 key购买 nike

我很确定这是不可能的,但如果以某种方式存在(可能通过编译器提供的宏),它对我来说将非常有用,所以我将它发布在这里。假设我有一个函数:

void func( int param1, bool param2=false){ ... }

param2 在这里被赋予了默认值。是否有任何机制可以确定 param2 是否明确设置为其默认值 false 还是自动传递?换句话说,从函数 func 中,是否可以区分以下两个调用?我正在使用 Microsoft Visual C++ 编译器。

func(1, false);

func(1);

最佳答案

你无法区分你问的方式,但你可以这样做:

void func(int param1, boost::optional<bool> param2=boost::none);

然后您可以检查 param2 是否为 none(它有自己的运算符 bool)。如果已设置,则表示它已传入。调用站点看起来与以前相同,因为可选值可以从其值类型隐式构造。

关于c++ - 如何确定函数参数是自动设置为默认值还是在 C++ 中显式设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25842969/

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