gpt4 book ai didi

c++ - 如果满足 "if statement",则创建常量变量

转载 作者:太空狗 更新时间:2023-10-29 20:49:32 27 4
gpt4 key购买 nike

我想知道我们是否可以在 if 语句中创建一个常量变量。所以变量从那个时候开始存在于程序中。

例如:

if (true)  //this statement happens ONLY ONCE
{
const variable = x;
}

最佳答案

主要问题是您不能直接引用 if 主体之外的变量。

简单的解决方法是在外部范围内将您的类型的指针默认设置为 nullptr,然后使用 staticthread_localif 中,并将外部作用域指针设置为:

Foo* f = nullptr;
if (/*condition*/){
static Foo foo;
f = &foo;
}

您可以根据需要使类型const。另一种方法是使用 std::variantstd::optional

但是,如果您要实现某项功能以让一段代码只运行一次,那么标准的做法是使用

std::once_flag flag; 
std::call_once(flag, []{/* ToDo - code here */});

关于c++ - 如果满足 "if statement",则创建常量变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58058941/

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