🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #1710

Re: Rare C++ fout (std::map)

#1710
From: Aquila
Date: Wed, 15 Dec 2004 10:20
46 lines
2433 bytes
Niels Basjes wrote:

> Je gebruikt een class als index voor een map:
>> static std::map<const PossibleState,int>��H;
> 
Ja omdat ik wil indexeren op PossibleState

> Wat verwacht jij dat code als dit doet ?
>> H[PossibleState(true)] = 8;
> 
Dat in de map op index PossibleState(true) de waarde 8 wordt ingevuld, dus
dat als ik indexeer op een PossibleState(true) dat daar 8 uit komt.

> Elke keer dat ik deze regel aan roep zal er een nieuw object gemaakt
> worden en dus een nieuwe array index.
> 
Zoals ik het begreep test de map via operator< op gelijkheid dus moet dat
maar een object zijn. Doe de test:

#include <map>
#include <iostream>

class Klasse{
 public:
  Klasse(int x): fX(x) {};
  bool operator<(const Klasse& k) const{
   return fX < k.fX;
  }
 private:
  int fX;
};

int main(){
 std::map<Klasse,int> mapje;
 mapje[Klasse(1)] = 2;
 std::cout << &mapje.begin()->first << "\n";
 mapje[Klasse(1)] = 3;
 std::cout << &mapje.begin()->first << "\n";
}

Volgens jou moet dat twee verschillende adressen geven, maar zowel gcc als
icc geven hetzelfde adres, telkens opnieuw.
Of vergis ik mij volledig?

-- 
"May the source be with you"
Technical Details
Message-ID: <boOdnbm1OZZ2kl3cRVnyvA@scarlet.biz>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local1.nntp.dca.giganews.com!nntp.scarlet.biz!news.scarlet.biz.POSTED!not-for-mail
References: <ZJKdne45LpA4YyLcRVnyvA@scarlet.biz> <4a10s09b2igpphgofpi5e2tn2quv4pqe6m@4ax.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: fcea4,f50cab2f57916087
X-Google-Attributes: gidfcea4,public
X-Google-Language: DUTCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local1.nntp.dca.giganews.com!nntp.scarlet.biz!news.scarlet.biz.POSTED!not-for-mail
NNTP-Posting-Date: Wed, 15 Dec 2004 04:20:26 -0600
From: Aquila <braempje@netscape.net>
Subject: Re: Rare C++ fout (std::map)
Newsgroups: be.comp.programming
Date: Wed, 15 Dec 2004 11:20:25 +0100
References: <ZJKdne45LpA4YyLcRVnyvA@scarlet.biz> <4a10s09b2igpphgofpi5e2tn2quv4pqe6m@4ax.com>
User-Agent: KNode/0.8.1
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8Bit
Message-ID: <boOdnbm1OZZ2kl3cRVnyvA@scarlet.biz>
Lines: 46
NNTP-Posting-Host: 81.11.150.5
X-Trace: sv3-6CbZ2hKCCqwycqB0o99/SuiTPQAEOGZTUnkBCn5zlbsqXw93sbJLPTfJ1N+fhUHXKZbOCzLFgcS+HL2!Eg2OpW9nAO7ZcwAgHSexv1066j1O5qz7LIvjVa8FT7+1l6aDNXS60JzzO5zbeywqkxVDt3sE
X-Complaints-To: abuse@scarlet.be
X-DMCA-Complaints-To: abuse@scarlet.biz
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.20