c++ - 如何在不更改代码的情况下强制对 Visual C++ 中的 POD 类型进行值初始化?

标签 c++ visual-studio-2010 msbuild

有什么方法可以在 Visual C++ Release模式下强制将 pod 类型初始化为 0\false\nullptr

更具体地说,我不想更改我的代码,只是使用初始化为 0\false\nullptr 的 pod 类型编译它。

我想要这个是因为我希望我们的系统是确定性的。

最佳答案

是的,值初始化会做到这一点。

struct pod {
    int a, b;
    char c;
    double d;
};

pod myPod = pod(); // Value-initialized, all members are 0.

C++11 还允许您在类定义中分配默认值,但 Visual Studio 尚不支持此功能。

struct pod { 
    int a = 0, b = 0;
    char c = 0;
    double d = 0.0;
};

pod myPod; // All members would be initialized to 0.

关于c++ - 如何在不更改代码的情况下强制对 Visual C++ 中的 POD 类型进行值初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8226717/

相关文章:

c++ - 实例化的立方体仅显示一次

c++ - 使用 OpenCV 复制时指定指针

c++ - 在 C++ 中生成所有可能的对象分配到大小为 n1、n2、...nk 的 k 个容器中

.net - VS2012 .NET 4.0 Clickonce VSTO CryptographicException : SignatureDescription could not be created for the signature algorithm supplied

msbuild - 解决方案的 NuGet 包还原失败(仅在命令行上)

c++ - C++中是否有任何用于二进制搜索的库

c# - GetManifestResourceStream 给出空引用异常(参数名称 : streamSource)

visual-studio-2010 - 在 Visual Studio 中,更改键盘以将 F 键用于 "execute sql"

MSBuild 使用错误版本的程序集编译 RDLC 文件

c# - 有没有办法在应用程序的代码中使用 MSBuild 来构建另一个应用程序