[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 04/01 07:48 / Filesize : 131 KB / Number-of Response : 559
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.57【環境依存OK】



484 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:56:44 ]
const std::string& GeRefOfFuncStaticString(int n)
{
  static std::string str = boost::lexical_cast<std::string>(n);
  return str;
}

const std::string g_strNotFound("NotFound");

const std::string& GeRefOfFuncStaticString2(int n)
{
  static std::map<int,std::string> mapStr;
  if( mapStr.empty() )
  {
    mapStr.insert( std::make_pair(100, "100") );
    mapStr.insert( std::make_pair(101, "101") );
  }

  std::map<int,std::string>::const_iterator itrFound = mapStr.find(n);
  return itrFound != mapStr.end() ? itrFound->second : g_strNotFound;
}

int _tmain(int argc, _TCHAR* argv[])
{
  std::cout << GeRefOfFuncStaticString( 100 ) << std::endl; // 表示: 100
  std::cout << GeRefOfFuncStaticString( 101 ) << std::endl; // 表示: 100 ← 関数内の static 変数の参照を取り出せない
  std::cout << GeRefOfFuncStaticString2( 100 ) << std::endl; // 表示: 100
  std::cout << GeRefOfFuncStaticString2( 101 ) << std::endl; // 表示: 101
  return 0;
}

 map を使った場合の GeRefOfFuncStaticString2( ) は意図した動作になるんですが,たまたまでしょうか?






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<131KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef