通过引用设置Bool的默认值

Pra*_*van 0 c++ boolean default

如何为作为参考的bool分配默认值?

我有这样的功能:

void someFunction(bool a = true, bool& b)
{
 if(a)
   b = false;
 else
   std::cout << "nothings changed" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

我应该如何在此上下文中为b分配默认值?

void someFunction(bool a = true, bool& b = false)
Run Code Online (Sandbox Code Playgroud)

不管用.那怎么办呢?

fre*_*low 5

您不能使用值初始化非const引用.你需要一个变量:

bool dummy_variable;

void someFunction(bool a = true, bool& b = dummy_variable)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

但是简单地返回bool可能会更有意义:

bool someFunction(bool a = true)
{
    return !a;
}
Run Code Online (Sandbox Code Playgroud)

然后,客户仍然可以自己决定是否要忽略结果.