小编teu*_*oui的帖子

按位AND与函数在C++中返回bool

我编写了一个程序,列出了一组内容中的错误,并在结尾返回一个布尔值(返回true表示没有找到错误).

以下是我的代码摘要:

bool checkStuff1() {/*...*/}
bool checkStuff2() {/*...*/}
// ...
bool checkStuffN() {/*...*/}

bool checkAllStuff()
{
    bool result = true;
    result &= checkStuff1();
    result &= checkStuff2();
    // ...
    result &= checkStuffN();
    return result;
}
Run Code Online (Sandbox Code Playgroud)

我相信最终result将是正确的价值.但是,我想确保checkStuffX()调用所有函数(因为它们在失败时打印错误消息,并且我希望打印所有错误消息).

我知道,如果我这样写,它会checkStuffX()在第一个失败之后跳过所有:

result = result && checkStuffX(); // Will not call checkStuffX() if result is already false
Run Code Online (Sandbox Code Playgroud)

我也知道,如果我这样写,它会调用所有checkStuffX()函数:

result = checkStuffX() && result; // Will always call checkStuffX() even if result is false
Run Code Online (Sandbox Code Playgroud)

但我想知道我使用的代码的行为,按位比较,是否由标准确定并保证?

或者是否存在未定义行为的风险,具体取决于所使用的编译器及其优化?

c++ boolean bitwise-operators

8
推荐指数
1
解决办法
397
查看次数

如何检测我的iPhone应用程序正在iPad上运行

我有一个opengl应用程序在RetinaDisplay模式下呈现更好(双比例因子),我注意到iPad模拟了一个低分辨率屏幕(正常比例因子)的iPhone应用程序.

我想在我的iPhone应用程序在iPad上运行时将比例因子加倍,以便从Retina Display图形中受益.但似乎iPad真的很好伪造成iPhone(如果它只是一个Retina显示器那将是完美的......)

当我强制双重刻度时,它的效果非常好(至少在模拟器中,我没有iPad来测试).

所以我需要一种方法来了解我是否在iPad上运行,尽管很多事情告诉我它是一部旧iPhone.

或者也许我不应该尝试这样做?

iphone ipad retina-display

2
推荐指数
2
解决办法
3898
查看次数

cmake 如何在项目的 vcxproj PropertyGroup 中添加自定义条目?

我正在使用 cmake 生成多平台 C++ 项目的 Windows/VisualStudio 解决方案。

在项目的属性中有一个特定的条目(文件夹数据的简单路径),我希望 cmake 为我填写。此条目是由我无法修改的外部插件添加的。

填写 VS 项目属性中的选项会在MyAppExecutable.vcxproj文件中添加以下条目:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PLATFORM'">
  <AppDataFolder>D:\myappdata</AppDataFolder>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

我希望 cmakeAppDataFolder为我添加这个值。

它甚至会更好,如果它可以同时为所有可能的设置PLATFORM,以及是否在编译ReleaseDebug或任何其他。希望将其添加到内部<PropertyGroup Label="Globals">可以实现这一目标?

有没有办法让 cmake 在项目文件中设置这个值?

c++ cmake visual-studio visual-c++

1
推荐指数
1
解决办法
1950
查看次数