mirror of
https://github.com/pocoproject/poco.git
synced 2025-02-20 22:31:23 +01:00
Dynamic::Struct construction from std::map
This commit is contained in:
parent
8a2502bce4
commit
8311cd078a
@ -74,6 +74,14 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
Struct(const std::map<K, T>& val)
|
||||
{
|
||||
std::map<K, T>::const_iterator it = val.begin();
|
||||
std::map<K, T>::const_iterator end = val.end();
|
||||
for (; it != end; ++it) _data.insert(ValueType(it->first, Var(it->second)));
|
||||
}
|
||||
|
||||
virtual ~Struct()
|
||||
/// Destroys the Struct.
|
||||
{
|
||||
|
@ -1761,7 +1761,8 @@ void VarTest::testIsStruct()
|
||||
long s14(232323);
|
||||
unsigned long s15(21233232);
|
||||
std::vector<Var> s16;
|
||||
DynamicStruct s17;
|
||||
Struct<std::string> s17;
|
||||
Struct<int> s18;
|
||||
|
||||
Var d1(s1);
|
||||
Var d2(s2);
|
||||
@ -1780,6 +1781,7 @@ void VarTest::testIsStruct()
|
||||
Var d15(s15);
|
||||
Var d16(s16);
|
||||
Var d17(s17);
|
||||
Var d18(s18);
|
||||
|
||||
assert (!d1.isStruct());
|
||||
assert (!d2.isStruct());
|
||||
@ -1798,6 +1800,7 @@ void VarTest::testIsStruct()
|
||||
assert (!d15.isStruct());
|
||||
assert (!d16.isStruct());
|
||||
assert (d17.isStruct());
|
||||
assert (d18.isStruct());
|
||||
}
|
||||
|
||||
|
||||
@ -1951,12 +1954,29 @@ void VarTest::testDynamicStructString()
|
||||
a1["First Name"] = "Senior";
|
||||
assert (a1["First Name"] == "Senior");
|
||||
testGetIdxMustThrow(a1, 0);
|
||||
|
||||
Struct<std::string> s1;
|
||||
s1["1"] = 1;
|
||||
s1["2"] = 2;
|
||||
s1["3"] = 3;
|
||||
|
||||
Struct<std::string> s2(s1);
|
||||
assert (s2["1"] == 1);
|
||||
assert (s2["2"] == 2);
|
||||
assert (s2["3"] == 3);
|
||||
|
||||
std::map<std::string, int> m1;
|
||||
m1["1"] = 1;
|
||||
m1["2"] = 2;
|
||||
m1["3"] = 3;
|
||||
|
||||
Struct<std::string> m2(m1);
|
||||
assert (m2["1"] == 1);
|
||||
assert (m2["2"] == 2);
|
||||
assert (m2["3"] == 3);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void VarTest::testDynamicStructInt()
|
||||
{
|
||||
Dynamic::Struct<int> aStruct;
|
||||
@ -1967,6 +1987,26 @@ void VarTest::testDynamicStructInt()
|
||||
assert (a1[1] == "POCO");
|
||||
a1[0] = "Senior";
|
||||
assert (a1[0] == "Senior");
|
||||
|
||||
Struct<int> s1;
|
||||
s1[1] = "1";
|
||||
s1[2] = "2";
|
||||
s1[3] = "3";
|
||||
|
||||
Struct<int> s2(s1);
|
||||
assert (s2[1] == "1");
|
||||
assert (s2[2] == "2");
|
||||
assert (s2[3] == "3");
|
||||
|
||||
std::map<int, std::string> m1;
|
||||
m1[1] = "1";
|
||||
m1[2] = "2";
|
||||
m1[3] = "3";
|
||||
|
||||
Struct<int> m2(m1);
|
||||
assert (m2[1] == "1");
|
||||
assert (m2[2] == "2");
|
||||
assert (m2[3] == "3");
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user