diff --git a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H index a0422e31e90d7975de3d95d4403518aee5aacbe5..f1fadd14b5dabfccf4fc89609fce787d7861c6e5 100644 --- a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H +++ b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H @@ -183,6 +183,12 @@ label findLower ); +//- To construct a List from a C array. Has extra Container type +// to initialise e.g. wordList from arrays of char*. +template<class Container, class T, int nRows> +List<Container> initList(const T[nRows]); + + //- To construct a (square) ListList from a C array. Has extra Container type // to initialise e.g. faceList from arrays of labels. template<class Container, class T, int nRows, int nColumns> diff --git a/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C b/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C index 2a2792af5317438abd78fb8c8af275ab1a62607a..53866772aaef01c52d7e423dda64b3e88238edd9 100644 --- a/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C +++ b/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C @@ -486,6 +486,19 @@ Foam::label Foam::findLower } +template<class Container, class T, int nRows> +Foam::List<Container> Foam::initList(const T elems[nRows]) +{ + List<Container> faces(nRows); + + forAll(faces, faceI) + { + faces[faceI] = Container(elems[faceI]); + } + return faces; +} + + template<class Container, class T, int nRows, int nColumns> Foam::List<Container> Foam::initListList(const T elems[nRows][nColumns]) {