This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
以下のコードではmapのキーとしてchar*が使われているが、 | |
ポインタ型の比較は持っているアドレスが等しいかどうかで判断するので、意図した動作はしない。 | |
この場合正しくはstd::stringを使うべき。 | |
しかし、この入門書ではVisual C++で開発している前提なので、動きが異なってくる。 | |
理由は「文字列プール」という等価な文字列リテラルは全て同一の実体として | |
(要するにコード中に"A"というリテラルが複数あった場合、それらのアドレス全て同じになる) | |
扱うように最適化する機能が有効になっている為に、当初意図していた通りに動作してしまう。 |
NewerOlder