gpt4 book ai didi

c++ - C++中如何判断变量是否在范围内

转载 作者:行者123 更新时间:2023-11-28 07:56:32 28 4
gpt4 key购买 nike

我需要检查当前范围内是否存在变量“var1”。

somefunction()
{

...
....
{
......
string var1("");
...
// if i check var1..it should be in scope
// something like inScope(var1)..return true if it is in scope else false
}
// if i check var1..it should be out of scope
// something like inScope(var1)..return true if it is in scope else false
}

最佳答案

我相信您误解了语言或工具链的核心部分。方法、类、变量等——它们要么“存在”,要么“在范围内”。如果您尝试实际使用“不在范围内”的任何内容,这是一个硬错误,并且尝试编译此类代码通常只会中断。根据局部变量的存在检查和分支逻辑几乎没有意义。我真的认为你把某些事情复杂化了。如果在你的方法的“后面的代码”中你只想检查之前是否发生了什么 - 你为什么不在方法的开头创建简单的 bool 变量,将它初始化为 false,并仅在事情发生时将其设置为 true?然后检查变量?

话虽如此,虽然无法检查是否定义了局部变量,但完全可以检查类成员是否存在 - 由于模板和 SFINAE 的一些巧妙技巧。我的意思是 - 您可以测试类 X 是否定义了字段 Y 或方法 Z,并在编译时静态地获得 true/false 响应。

您可能想要检查例如:https://stackoverflow.com/a/7687190/717732https://stackoverflow.com/a/2133273/717732

关于c++ - C++中如何判断变量是否在范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12588984/

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