struct Line
{
Bounds bounds_;
Vector origin_;
uint32_t begin_;
uint32_t end_;
dist ascent_;
dist descent_;
};
これは次のように使用されます。
Line line = {};
while (!parser.done()) {
line = Line(); // zero-initialize
...
}
Bounds
およびVector
は非 POD クラスであり、dist
は の typedef ですint64_t
。
line
ただし、最適化された VC++11 の 32 ビット リリース ビルドでは、while ループ内に少なくとも初期化されていない部分が残っているようです。なんで?によると、型名の後の括弧は新しいものと違いがありますか? 、それはゼロで初期化されているはずですよね?
構造体メンバーの値をファイルに記録します。
- after
Line line = {};
: 非 POD タイプはデフォルトで初期化され、その他は 0 です。 - after
line = Line();
: POD タイプはまだデフォルトで初期化されており、その他にはランダムな値が含まれています。