BitSet building convenience

Allow set()/clear()/flip() to be chained.
Support c++11 initializer lists.
This commit is contained in:
Michael Davidsaver
2017-09-07 11:49:07 -05:00
parent db6ebfe71b
commit 787af8de18
3 changed files with 59 additions and 12 deletions

View File

@@ -23,10 +23,13 @@
#include <pv/bitSet.h>
#include <pv/serializeHelper.h>
#include <pv/pvUnitTest.h>
#include <epicsUnitTest.h>
#include <testMain.h>
namespace {
using namespace epics::pvData;
using std::string;
@@ -37,6 +40,18 @@ static string toString(BitSet& bitSet)
return oss.str();
}
void testInitialize()
{
testDiag("testInitialize()");
#if __cplusplus>=201103L
testOk1(BitSet().size()==0);
testOk1(BitSet({}).size()==0);
testEqual(BitSet().set(1).set(5).set(500), BitSet({1, 5, 500}));
#else
testSkip(3, "Not c++11");
#endif
}
static void testGetSetClearFlip()
{
testDiag("testGetSetClearFlip... ");
@@ -292,9 +307,12 @@ static void testSerialize()
#undef TOFRO
}
} // namespace
MAIN(testBitSet)
{
testPlan(87);
testPlan(90);
testInitialize();
testGetSetClearFlip();
testOperators();
testLogical();