2 // { dg-options "-O1" }
3 // Origin: Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
15 NAMES_ITEM(const NAMES_ITEM& item2);
17 NAMES_ITEM(const char* name2);
21 bool operator==(const NAMES_ITEM& n) const;
25 NAMES_ITEM::NAMES_ITEM (const NAMES_ITEM& item2)
27 size_t length=std::strlen(item2.name);
29 name=new char[length+1];
30 std::memcpy(name,item2.name,length+1);
33 NAMES_ITEM::NAMES_ITEM (const char* name2)
35 size_t length=std::strlen(name2);
37 name=new char[length+1];
38 std::memcpy(name,name2,length+1);
41 NAMES_ITEM::~NAMES_ITEM ()
43 if (std::strcmp (name, "one") != 0)
49 bool NAMES_ITEM::operator==(const NAMES_ITEM& n) const
51 return (std::strcmp(name,n.name) == 0);
54 bool operator<(const NAMES_ITEM& n1, const NAMES_ITEM& n2)
56 return (std::strcmp(n1.name,n2.name) < 0);
59 typedef map<NAMES_ITEM,size_t,less<NAMES_ITEM> > lookup_t;
63 NAMES_ITEM item ("one");
66 lookup.insert(pair<NAMES_ITEM,size_t>(item,0));