diff --git a/applications/test/PackedList/PackedListTest.C b/applications/test/PackedList/PackedListTest.C index 1e0ca6f385..e5670b3cbe 100644 --- a/applications/test/PackedList/PackedListTest.C +++ b/applications/test/PackedList/PackedListTest.C @@ -82,9 +82,13 @@ int main(int argc, char *argv[]) argList::noParallel(); argList::validArgs.insert("file .. fileN"); - argList::addBoolOption("mask"); - argList::addBoolOption("count"); - argList::addBoolOption("info"); + argList::addBoolOption("mask", "report information about the bit masks"); + argList::addBoolOption("count", "test the count() method"); + argList::addBoolOption + ( + "info", + "print an ascii representation of the storage" + ); argList args(argc, argv, false, true); diff --git a/src/OpenFOAM/containers/Lists/PackedList/PackedListI.H b/src/OpenFOAM/containers/Lists/PackedList/PackedListI.H index df7786f61b..92d6c02d72 100644 --- a/src/OpenFOAM/containers/Lists/PackedList/PackedListI.H +++ b/src/OpenFOAM/containers/Lists/PackedList/PackedListI.H @@ -839,7 +839,24 @@ Foam::PackedList::operator[](const label i) } -// specialization for nBits=1 isn't worth the bother +namespace Foam +{ + // specialization for nBits=1 + template<> + inline void Foam::PackedList<1>::operator=(const unsigned int val) + { + if (val) + { + StorageList::operator=(~0u); + } + else + { + StorageList::operator=(0u); + } + } +} + + template inline void Foam::PackedList::operator=(const unsigned int val) {