}
+// copy-constructor
+ PropertyObject(const PropertyObject<std::string>& aOther) :
+ PropertyObjectBase(aOther)
+ {
+ }
+// create form
+ static PropertyObject<std::string> create(const char* aPath, const std::string& aValue)
+ {
+ PropertyObject<std::string> p(aPath);
+ p = aValue;
+ return p;
+ }
+
+ static PropertyObject<std::string> create(SGPropertyNode* aNode, const std::string& aValue)
+ {
+ PropertyObject<std::string> p(aNode);
+ p = aValue;
+ return p;
+ }
+
+ static PropertyObject<std::string> create(SGPropertyNode* aNode, const char* aChild, const std::string& aValue)
+ {
+ PropertyObject<std::string> p(aNode, aChild);
+ p = aValue;
+ return p;
+ }
+
operator std::string () const
{
}
}
+void testCreate()
+{
+ PropertyObject<bool> a = PropertyObject<bool>::create("a/lemon", true);
+ assert(a == true);
+ assert(testRoot->getBoolValue("a/lemon") == true);
+
+
+ PropertyObject<int> b(PropertyObject<int>::create("a/pear", 3142));
+ assert(b == 3142);
+
+ PropertyObject<std::string> c(PropertyObject<std::string>::create("a/lime", "fofofo"));
+ assert(c == "fofofo");
+
+// check overloads for string version
+ SGPropertyNode* n = testRoot->getNode("b", true);
+ PropertyObject<std::string> d(PropertyObject<std::string>::create(n, "grape", "xyz"));
+ assert(!strcmp(testRoot->getStringValue("b/grape"), "xyz"));
+
+
+}
+
int main(int argc, char* argv[])
{
testRoot = new SGPropertyNode();
testString();
testAssignment();
testSTLContainer();
+ testCreate();
return EXIT_SUCCESS;
}