いろきゅうの(元)はてなダイアリー

はてなダイアリーから移行中…

ガッカリ...

std::map についてなんですが、
"operator ()" はあっても "operator  () const" ってのは無いんですね…ガッカリ…
ちゅーのも

int CManna::GetValue(CUINT nID) const
{
   return m_mapInstance[nID];
}

という感じのコード書いたら怒られまして。値変更しないんだから、どーにかして欲しいなぁ〜とか思ってみたり。
とはいえ、そんなワガママが通るわけも無いので、(何か理由もありそうですし)

int CManna::GetValue(CUINT nID) const
{
   return m_mapInstance.find(nID)->second;
}

とか書いてます。…が、どーみても、ダサイ。このコードは…

…ちゅーか、よくよく考えてみれば、

iterator find()
・const_iterator find() const

の2つがあるんであれば、

・mapped_type& operator
・const mapped_type& operator
const
(mapped_type == 第2引数の型)

ってのがあっても良い気がするんだけどなぁ〜
う〜む。