Как заставить инициализацию значения для типов POD в Visual C ++ без изменения кода? - PullRequest
4 голосов
/ 22 ноября 2011

Есть ли способ принудительно инициализировать типы модулей в 0\false\nullptr в Visual C ++ режиме выпуска?

Если быть более точным, я не хочу менять свой код,просто скомпилируйте его с типами модулей, инициализированными в 0\false\nullptr.

Я хочу это, потому что я хочу, чтобы наша система была детерминированной.

1 Ответ

5 голосов
/ 22 ноября 2011

Да, инициализация значения сделает это.

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.
...