diff --git a/src/OpenFOAM/db/IOobjects/IOPtrList/IOPtrList.C b/src/OpenFOAM/db/IOobjects/IOPtrList/IOPtrList.C index 8fcc3bd982ece6f33764891971d3d4e67bbc5cfe..fcb2fbdebe9e84708f5bb6a71d4538db4738a1dc 100644 --- a/src/OpenFOAM/db/IOobjects/IOPtrList/IOPtrList.C +++ b/src/OpenFOAM/db/IOobjects/IOPtrList/IOPtrList.C @@ -63,6 +63,21 @@ Foam::IOPtrList<T>::IOPtrList(const IOobject& io) } +template<class T> +Foam::IOPtrList<T>::IOPtrList(const IOobject& io, const label s) +: + regIOobject(io), + PtrList<T>(s) +{ + if (io.readOpt() != IOobject::NO_READ) + { + FatalErrorIn("IOPtrList<T>::IOPtrList(const IOobject&, const label)") + << "NO_READ must be set if specifying size" << nl + << exit(FatalError); + } +} + + template<class T> Foam::IOPtrList<T>::IOPtrList(const IOobject& io, const PtrList<T>& list) : diff --git a/src/OpenFOAM/db/IOobjects/IOPtrList/IOPtrList.H b/src/OpenFOAM/db/IOobjects/IOPtrList/IOPtrList.H index 9a2e8ce5afe2ad9462d45ac02dd911a84d2728fa..bc2232056f4aed9f7518674b11db746c7f2b5429 100644 --- a/src/OpenFOAM/db/IOobjects/IOPtrList/IOPtrList.H +++ b/src/OpenFOAM/db/IOobjects/IOPtrList/IOPtrList.H @@ -70,6 +70,9 @@ public: //- Construct from IOobject IOPtrList(const IOobject&); + //- Construct from IOobject with given size + IOPtrList(const IOobject&, const label); + //- Construct from IOobject and a PtrList IOPtrList(const IOobject&, const PtrList<T>&);