質問: i; std::cout << a << std::endl; } ``` このようなプログラムとではスコープが大きくなる以外で何か不都合が起きたりするのでしょうか.
回答: 質問文を読み、変数宣言にかかるコストに対して懸念が有る、というふうに理解しました。 私も以前同様の疑問を抱き、Java(Java5)とC(GCC 4.4.3)調べてみたことがあります。 * ループ内で変数を宣言しない方が良いのか: 発火後忘失 (※7年以上前の話なので、疑問の発端となったページは消えてしまっていますが...) 結論としては、ループ外で宣言しようが中で宣言しようが**効率は完全に同一である**、というものでした。 コンパイル後のバイトコード/アセンブリからは変数宣言した、という情報は無くなっていました。つまりローカル変数宣言にかかるコストはゼロです。