737
回編集
371行目: | 371行目: | ||
<syntaxhighlight> | <syntaxhighlight> | ||
IOstream::formatEnum(dict.get<word>("format"), IOstream::BINARY); | IOstream::formatEnum(dict.get<word>("format"), IOstream::BINARY); | ||
</syntaxhighlight> | |||
'''IOstreamOption for constructing streams | |||
''' | |||
ストリームのコンストラクタが IOstreamOption を受け入れるようになり、IO オプションを単一のパラメータとして便利に束ねることができるようになりました。 | |||
writeObject() の呼び出しに IOstreamOption を使用します。 | |||
これらの変更はどちらも、渡されるパラメータの数を減らし、最小限の労力でIOstreamOptionに将来的に追加できるようにします。 | |||
'''regIOobject''' | |||
store() メソッドは、オブジェクトも登録するようになりました。 | |||
以前の store() メソッドは、検索可能であることを確認せずに ownedByRegistry フラグを設定するだけでした。 | |||
これで、実際に登録されていることを確認してください。 | |||
tmp<T>項目のレジスタ/ストアをサポートしました。 | |||
tmpパラメータはクリアされず、さらに使用できるようにPTRからCREFに変更されました。 | |||
暗黙的に登録することでコードの簡素化が可能になります。GeometricField::New ファクトリーメソッドを使用して、例えば | |||
'''Old Code | |||
''' | |||
<syntaxhighlight> | |||
volScalarField* ptr = new volScalarField | |||
( | |||
IOobject | |||
( | |||
fieldName, | |||
mesh.time().timeName(), | |||
mesh, | |||
IOobject::NO_READ, | |||
IOobject::NO_WRITE, | |||
true // Register | |||
), | |||
mesh, | |||
dimless, | |||
zeroGradientFvPatchField<scalar>::typeName | |||
); | |||
ptr->store(); | |||
</syntaxhighlight> | |||
New Code | |||
<syntaxhighlight> | |||
auto tptr = volScalarField::New | |||
( | |||
fieldName, | |||
mesh, | |||
dimless, | |||
zeroGradientFvPatchField<scalar>::typeName | |||
); | |||
regIOobject::store(tptr); | |||
</syntaxhighlight> | |||
或いは | |||
<syntaxhighlight> | |||
regIOobject::store | |||
( | |||
volScalarField::New | |||
( | |||
fieldName, | |||
mesh, | |||
dimless, | |||
zeroGradientFvPatchField<scalar>::typeName | |||
) | |||
); | |||
</syntaxhighlight> | </syntaxhighlight> | ||