From 1fcb3aecbe258dbf6dbd258979fe4957c8e8bf94 Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Sat, 7 Aug 2010 14:18:04 +0200 Subject: [PATCH] bug 956: workaround compiler bug --- src/core/attribute-test-suite.cc | 22 +++++++++++++++++++++- src/core/traced-value.h | 28 ++++++++-------------------- 2 files changed, 29 insertions(+), 21 deletions(-) diff --git a/src/core/attribute-test-suite.cc b/src/core/attribute-test-suite.cc index d190e7e7d..f217f3c91 100644 --- a/src/core/attribute-test-suite.cc +++ b/src/core/attribute-test-suite.cc @@ -136,6 +136,22 @@ public: MakeIntegerAccessor (&AttributeObjectTest::DoSetIntSrc, &AttributeObjectTest::DoGetIntSrc), MakeIntegerChecker ()) + .AddAttribute ("UIntegerTraceSource", "help text", + UintegerValue (2), + MakeUintegerAccessor (&AttributeObjectTest::m_uintSrc), + MakeIntegerChecker ()) + .AddAttribute ("DoubleTraceSource", "help text", + DoubleValue (2), + MakeDoubleAccessor (&AttributeObjectTest::m_doubleSrc), + MakeDoubleChecker ()) + .AddAttribute ("BoolTraceSource", "help text", + BooleanValue (false), + MakeBooleanAccessor (&AttributeObjectTest::m_boolSrc), + MakeBooleanChecker ()) + .AddAttribute ("EnumTraceSource", "help text", + EnumValue (false), + MakeEnumAccessor (&AttributeObjectTest::m_enumSrc), + MakeEnumChecker (TEST_A, "TestA")) .AddAttribute ("ValueClassSource", "help text", ValueClassTestValue (ValueClassTest ()), MakeValueClassTestAccessor (&AttributeObjectTest::m_valueSrc), @@ -197,6 +213,10 @@ private: TracedCallback m_cb; TracedValue m_valueSrc; Ptr m_ptr; + TracedValue m_uintSrc; + TracedValue m_enumSrc; + TracedValue m_doubleSrc; + TracedValue m_boolSrc; }; NS_OBJECT_ENSURE_REGISTERED (AttributeObjectTest); @@ -1170,6 +1190,6 @@ AttributesTestSuite::AttributesTestSuite () AddTestCase (new CallbackValueTestCase ("Check Attributes of type CallbackValue")); } -AttributesTestSuite attributesTestSuite; +static AttributesTestSuite attributesTestSuite; } // namespace ns3 diff --git a/src/core/traced-value.h b/src/core/traced-value.h index 79abdd10c..d2e465846 100644 --- a/src/core/traced-value.h +++ b/src/core/traced-value.h @@ -67,26 +67,14 @@ public: Set (o.m_v); return *this; } - TracedValue (const IntegerValue &value) - : m_v (value.Get ()) {} - operator IntegerValue () const { - return IntegerValue (m_v); - } - TracedValue (const UintegerValue &value) - : m_v (value.Get ()) {} - operator UintegerValue () const { - return UintegerValue (m_v); - } - TracedValue (const BooleanValue &value) - : m_v (value.Get ()) {} - operator BooleanValue () const { - return BooleanValue (m_v); - } - TracedValue (const EnumValue &value) - : m_v (value.Get ()) {} - operator EnumValue () const { - return EnumValue (m_v); - } + template + TracedValue (const TracedValue &other) + : m_v (other.m_v) + {} + template + TracedValue (const U &other) + : m_v ((T)other) + {} void ConnectWithoutContext (const CallbackBase &cb) { m_cb.ConnectWithoutContext (cb); }