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

Vik*_*ehr 4 c++ msbuild pod visual-studio-2010

有没有办法强制0\false\nullptrVisual C++发布模式下初始化pod类型?

更具体地说,我不想更改我的代码,只需将其编译为初始化为的pod类型 0\false\nullptr.

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

Col*_*nee 5

是的,值初始化将执行此操作.

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

pod myPod = pod(); // Value-initialized, all members are 0.
Run Code Online (Sandbox Code Playgroud)

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.
Run Code Online (Sandbox Code Playgroud)

  • @ViktorSehr:所以你希望你的代码行为与现在的行为不同**而不改变它? (4认同)