Make Value ctor explicit
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
This commit is contained in:
@@ -969,16 +969,6 @@ namespace AZ::Dom
|
||||
m_value = value;
|
||||
}
|
||||
|
||||
int32_t Value::GetInt32() const
|
||||
{
|
||||
return aznumeric_cast<int32_t>(GetInt64());
|
||||
}
|
||||
|
||||
void Value::SetInt32(int32_t value)
|
||||
{
|
||||
m_value = aznumeric_cast<int64_t>(value);
|
||||
}
|
||||
|
||||
uint64_t Value::GetUint64() const
|
||||
{
|
||||
switch (m_value.index())
|
||||
@@ -999,16 +989,6 @@ namespace AZ::Dom
|
||||
m_value = value;
|
||||
}
|
||||
|
||||
uint32_t Value::GetUint32() const
|
||||
{
|
||||
return aznumeric_cast<uint32_t>(GetUint64());
|
||||
}
|
||||
|
||||
void Value::SetUint32(uint32_t value)
|
||||
{
|
||||
m_value = aznumeric_cast<uint64_t>(value);
|
||||
}
|
||||
|
||||
bool Value::GetBool() const
|
||||
{
|
||||
if (IsBool())
|
||||
@@ -1044,16 +1024,6 @@ namespace AZ::Dom
|
||||
m_value = value;
|
||||
}
|
||||
|
||||
float Value::GetFloat() const
|
||||
{
|
||||
return aznumeric_cast<float>(GetDouble());
|
||||
}
|
||||
|
||||
void Value::SetFloat(float value)
|
||||
{
|
||||
m_value = aznumeric_cast<double>(value);
|
||||
}
|
||||
|
||||
void Value::SetString(SharedStringType sharedString)
|
||||
{
|
||||
m_value = sharedString;
|
||||
|
||||
@@ -198,28 +198,39 @@ namespace AZ::Dom
|
||||
Value(const Value&);
|
||||
Value(Value&&) noexcept;
|
||||
Value(AZStd::string_view stringView, bool copy);
|
||||
Value(SharedStringType sharedString);
|
||||
explicit Value(const ValueType&);
|
||||
explicit Value(ValueType&&);
|
||||
explicit Value(SharedStringType sharedString);
|
||||
|
||||
Value(int8_t value);
|
||||
Value(uint8_t value);
|
||||
Value(int16_t value);
|
||||
Value(uint16_t value);
|
||||
Value(int32_t value);
|
||||
Value(uint32_t value);
|
||||
Value(int64_t value);
|
||||
Value(uint64_t value);
|
||||
Value(float value);
|
||||
Value(double value);
|
||||
Value(bool value);
|
||||
explicit Value(int8_t value);
|
||||
explicit Value(uint8_t value);
|
||||
explicit Value(int16_t value);
|
||||
explicit Value(uint16_t value);
|
||||
explicit Value(int32_t value);
|
||||
explicit Value(uint32_t value);
|
||||
explicit Value(int64_t value);
|
||||
explicit Value(uint64_t value);
|
||||
explicit Value(float value);
|
||||
explicit Value(double value);
|
||||
explicit Value(bool value);
|
||||
|
||||
explicit Value(Type type);
|
||||
|
||||
template<class T>
|
||||
explicit Value(T, AZStd::enable_if_t<AZStd::is_pointer_v<T>>* enabled = 0) = delete;
|
||||
|
||||
static Value FromOpaqueValue(const AZStd::any& value);
|
||||
|
||||
// Equality / comparison / swap...
|
||||
Value& operator=(const Value&);
|
||||
Value& operator=(Value&&) noexcept;
|
||||
|
||||
template <class T>
|
||||
Value& operator=(T value)
|
||||
{
|
||||
return operator=(Value(value));
|
||||
}
|
||||
|
||||
bool operator==(const Value& rhs) const;
|
||||
bool operator!=(const Value& rhs) const;
|
||||
|
||||
@@ -330,22 +341,10 @@ namespace AZ::Dom
|
||||
// int API...
|
||||
int64_t GetInt64() const;
|
||||
void SetInt64(int64_t);
|
||||
int32_t GetInt32() const;
|
||||
void SetInt32(int32_t);
|
||||
int16_t GetInt16() const;
|
||||
void SetInt16(int16_t);
|
||||
int8_t GetInt8() const;
|
||||
void SetInt8(int8_t);
|
||||
|
||||
// uint API...
|
||||
uint64_t GetUint64() const;
|
||||
void SetUint64(uint64_t);
|
||||
uint32_t GetUint32() const;
|
||||
void SetUint32(uint32_t);
|
||||
uint16_t GetUint16() const;
|
||||
void SetUint16(uint16_t);
|
||||
uint8_t GetUint8() const;
|
||||
void SetUint8(uint8_t);
|
||||
|
||||
// bool API...
|
||||
bool GetBool() const;
|
||||
@@ -354,8 +353,6 @@ namespace AZ::Dom
|
||||
// double API...
|
||||
double GetDouble() const;
|
||||
void SetDouble(double);
|
||||
float GetFloat() const;
|
||||
void SetFloat(float);
|
||||
|
||||
// String API...
|
||||
AZStd::string_view GetString() const;
|
||||
|
||||
@@ -66,9 +66,9 @@ namespace AZ::Dom::Benchmark
|
||||
{
|
||||
Value entry(Type::Object);
|
||||
entry.AddMember("string", createString(n));
|
||||
entry.AddMember("int", n);
|
||||
entry.AddMember("double", static_cast<double>(n) * 0.5);
|
||||
entry.AddMember("bool", n % 2 == 0);
|
||||
entry.AddMember("int", Value(n));
|
||||
entry.AddMember("double", Value(static_cast<double>(n) * 0.5));
|
||||
entry.AddMember("bool", Value(n % 2 == 0));
|
||||
entry.AddMember("null", Value(Type::Null));
|
||||
return entry;
|
||||
};
|
||||
@@ -153,7 +153,7 @@ namespace AZ::Dom::Benchmark
|
||||
for (auto _ : state)
|
||||
{
|
||||
Value copy = original;
|
||||
copy["entries"]["Key0"].ArrayPushBack(42);
|
||||
copy["entries"]["Key0"].ArrayPushBack(Value(42));
|
||||
TakeAndDiscardWithoutTimingDtor(AZStd::move(copy), state);
|
||||
}
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ namespace AZ::Dom::Tests
|
||||
{
|
||||
m_value.ArrayPushBack(Value(i));
|
||||
EXPECT_EQ(m_value.ArraySize(), i + 1);
|
||||
EXPECT_EQ(m_value[i].GetInt32(), i);
|
||||
EXPECT_EQ(m_value[i].GetInt64(), i);
|
||||
}
|
||||
|
||||
PerformValueChecks();
|
||||
@@ -76,6 +76,7 @@ namespace AZ::Dom::Tests
|
||||
|
||||
TEST_F(DomValueTests, NestedArrays)
|
||||
{
|
||||
Value x(5);
|
||||
m_value.SetArray();
|
||||
for (int j = 0; j < 5; ++j)
|
||||
{
|
||||
@@ -93,7 +94,7 @@ namespace AZ::Dom::Tests
|
||||
EXPECT_EQ(m_value[i].ArraySize(), 5);
|
||||
for (int j = 0; j < 5; ++j)
|
||||
{
|
||||
EXPECT_EQ(m_value[i][j].GetInt32(), j);
|
||||
EXPECT_EQ(m_value[i][j].GetInt64(), j);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,7 +117,7 @@ namespace AZ::Dom::Tests
|
||||
AZStd::string key = AZStd::string::format("Key%i", i);
|
||||
m_value.AddMember(key, Value(i));
|
||||
EXPECT_EQ(m_value.MemberCount(), i + 1);
|
||||
EXPECT_EQ(m_value[key].GetInt32(), i);
|
||||
EXPECT_EQ(m_value[key].GetInt64(), i);
|
||||
}
|
||||
|
||||
PerformValueChecks();
|
||||
@@ -142,7 +143,7 @@ namespace AZ::Dom::Tests
|
||||
EXPECT_EQ(nestedObject.MemberCount(), 5);
|
||||
for (int i = 0; i < 5; ++i)
|
||||
{
|
||||
EXPECT_EQ(nestedObject[AZStd::string::format("Key%i", i)].GetInt32(), i);
|
||||
EXPECT_EQ(nestedObject[AZStd::string::format("Key%i", i)].GetInt64(), i);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -167,14 +168,14 @@ namespace AZ::Dom::Tests
|
||||
{
|
||||
m_value.ArrayPushBack(Value(i));
|
||||
EXPECT_EQ(m_value.ArraySize(), i + 1);
|
||||
EXPECT_EQ(m_value[i].GetInt32(), i);
|
||||
EXPECT_EQ(m_value[i].GetInt64(), i);
|
||||
|
||||
if (i < 5)
|
||||
{
|
||||
AZ::Name key = AZ::Name(AZStd::string::format("TwoTimes%i", i));
|
||||
m_value.AddMember(key, Value(i * 2));
|
||||
EXPECT_EQ(m_value.MemberCount(), i + 1);
|
||||
EXPECT_EQ(m_value[key].GetInt32(), i * 2);
|
||||
EXPECT_EQ(m_value[key].GetInt64(), i * 2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,9 +192,9 @@ namespace AZ::Dom::Tests
|
||||
{
|
||||
Value childNode(Type::Node);
|
||||
childNode.SetNodeName(childNodeName);
|
||||
childNode.SetNodeValue(i);
|
||||
childNode.SetNodeValue(Value(i));
|
||||
|
||||
childNode.AddMember("foo", i);
|
||||
childNode.AddMember("foo", Value(i));
|
||||
childNode.AddMember("bar", Value("test", false));
|
||||
|
||||
m_value.ArrayPushBack(childNode);
|
||||
@@ -204,8 +205,8 @@ namespace AZ::Dom::Tests
|
||||
{
|
||||
const Value& childNode = m_value[i];
|
||||
EXPECT_EQ(childNode.GetNodeName(), childNodeName);
|
||||
EXPECT_EQ(childNode.GetNodeValue().GetInt32(), i);
|
||||
EXPECT_EQ(childNode["foo"].GetInt32(), i);
|
||||
EXPECT_EQ(childNode.GetNodeValue().GetInt64(), i);
|
||||
EXPECT_EQ(childNode["foo"].GetInt64(), i);
|
||||
EXPECT_EQ(childNode["bar"].GetString(), "test");
|
||||
}
|
||||
|
||||
@@ -334,8 +335,8 @@ namespace AZ::Dom::Tests
|
||||
TEST_F(DomValueTests, CopyOnWrite_Array)
|
||||
{
|
||||
Value v1(Type::Array);
|
||||
v1.ArrayPushBack(1);
|
||||
v1.ArrayPushBack(2);
|
||||
v1.ArrayPushBack(Value(1));
|
||||
v1.ArrayPushBack(Value(2));
|
||||
|
||||
Value nestedArray(Type::Array);
|
||||
v1.ArrayPushBack(nestedArray);
|
||||
@@ -349,7 +350,7 @@ namespace AZ::Dom::Tests
|
||||
EXPECT_NE(&v1.GetArray(), &v2.GetArray());
|
||||
EXPECT_EQ(&v1.ArrayAt(2).GetArray(), &v2.ArrayAt(2).GetArray());
|
||||
|
||||
v2[2].ArrayPushBack(42);
|
||||
v2[2].ArrayPushBack(Value(42));
|
||||
|
||||
EXPECT_NE(&v1.GetArray(), &v2.GetArray());
|
||||
EXPECT_NE(&v1.ArrayAt(2).GetArray(), &v2.ArrayAt(2).GetArray());
|
||||
@@ -365,8 +366,8 @@ namespace AZ::Dom::Tests
|
||||
Value v1;
|
||||
v1.SetNode("TopLevel");
|
||||
|
||||
v1.ArrayPushBack(1);
|
||||
v1.ArrayPushBack(2);
|
||||
v1.ArrayPushBack(Value(1));
|
||||
v1.ArrayPushBack(Value(2));
|
||||
v1["obj"].SetNode("Nested");
|
||||
Value v2 = v1;
|
||||
|
||||
@@ -378,7 +379,7 @@ namespace AZ::Dom::Tests
|
||||
EXPECT_NE(&v1.GetNode(), &v2.GetNode());
|
||||
EXPECT_EQ(&v1["obj"].GetNode(), &v2["obj"].GetNode());
|
||||
|
||||
v2["obj"].ArrayPushBack(42);
|
||||
v2["obj"].ArrayPushBack(Value(42));
|
||||
|
||||
EXPECT_NE(&v1.GetNode(), &v2.GetNode());
|
||||
EXPECT_NE(&v1["obj"].GetNode(), &v2["obj"].GetNode());
|
||||
|
||||
Reference in New Issue
Block a user