add test for static member variables

git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@309 7ec92016-0320-0410-acc4-a06ded1c099a
This commit is contained in:
syntheticpp 2005-10-17 09:43:45 +00:00
parent d1a5bd2ec8
commit a60cd00348

View file

@ -37,6 +37,18 @@ struct L2
~L2(){std::cout << "delete L2 \n";} ~L2(){std::cout << "delete L2 \n";}
}; };
struct M1
{
M1(){std::cout << "create M1 \n";}
~M1(){std::cout << "delete M1 \n";}
};
struct M2
{
M2(){std::cout << "create M2 \n";}
~M2(){std::cout << "delete M2 \n";}
};
int f() int f()
{ {
std::cout << "f called \n"; std::cout << "f called \n";
@ -48,6 +60,15 @@ std::string func();
#ifdef TEST_ORDERED_STATIC #ifdef TEST_ORDERED_STATIC
struct MemberTest
{
static Loki::OrderedStatic<1,M1> m1;
static Loki::OrderedStatic<2,M2> m2;
};
Loki::OrderedStatic<1,M1> MemberTest::m1;
Loki::OrderedStatic<2,M2> MemberTest::m2;
Loki::OrderedStatic<1,L1> l1; Loki::OrderedStatic<1,L1> l1;
Loki::OrderedStatic<2,L2> l2; Loki::OrderedStatic<2,L2> l2;
@ -58,6 +79,14 @@ Loki::OrderedStatic<1, Loki::Functor<int>, LOKI_TYPELIST_1( int(*)() ) > f1(f);
#else #else
struct MemberTest
{
static M1 m1;
static M2 m2;
};
M1 MemberTest::m1;
M2 MemberTest::m2;
L1 l1; L1 l1;
L2 l2; L2 l2;
@ -86,17 +115,20 @@ int main()
Loki::OrderedStaticManager::Instance().createObjects(); Loki::OrderedStaticManager::Instance().createObjects();
std::cout << "\n";
(*f1)(); (*f1)();
std::cout << "s1 = " << (*s1).c_str() << "\n"; std::cout << "value of s1: " << (*s1).c_str() << "\n";
std::cout << "s2 = " << (*s2).c_str() << "\n"; std::cout << "value of s2: " << (*s2).c_str() << "\n";
std::string s("text11"); std::string s("text11");
*s1=s; *s1=s;
std::cout << "s1 = " << (*s1).c_str() << "\n"; std::cout << "value of s1: " << (*s1).c_str() << "\n";
#else #else
std::cout << "\n";
f1(); f1();
std::cout << "s1 = " << s1.c_str() << "\n"; std::cout << "s1 = " << s1.c_str() << "\n";
@ -104,6 +136,7 @@ int main()
#endif #endif
std::cout << "\n";
return 0; return 0;
} }