私の場合、デバッグ中に何かの処理の改良版を作成したような時に#if-#endifを使って
こんなふうに書く事が良くある。
#if(0)
// 最初に作ったのはこちらの処理
#else
// ちょっとこっちを試してみたい
#endif
でも、さらにその改良版の改良版2を作った場合には、#if-#endifを入れ子にすると
#if(0)
// 最初に作ったのはこちらの処理
#else
#if(0)
// ちょっとこっちを試してみたい
#else
// ちょっとこっちを試してみたい2
#endif
#endif
となって分け分らなくなる。3重入れ子になるともう何が何だか分らない。
インデントして字下げすれば
#if(0)
// 最初に作ったのはこちらの処理
#else
#if(0)
// ちょっとこっちを試してみたい
#else
// ちょっとこっちを試してみたい2
#endif
#endif
見易いけれど、Visual Studioのエディターが勝手に整形してインデントが解除されてしまうので困る。
ところが昨日、良い方法が見つかった。
#if(0)
#else(0)
#endif(0)
のように書いてもVisual Studio 2013 C++では問題ないようだ。
#if(0)は分るが、#else(0)や#endif(0)は無意味な0が付いていても
怒られないぞ。何でやねん。まあ理由は分らないけれど、これを使うと、
#if(00)
// 最初に作ったのはこちらの処理
#else(00)
#if(0)
// ちょっとこっちを試してみたい
#else(0)
// ちょっとこっちを試してみたい2
#endif(0)
#endif(00)
のようにすると、入れ子にしても、#if-#else-#endifの対応が見易くなるので多少は可読性が良くなるのではないか!
#else(0)や#endif(0)のように末尾に(0)付けても怒られない理由知っている人いましたら教えて下さい。
こんなふうに書く事が良くある。
#if(0)
// 最初に作ったのはこちらの処理
#else
// ちょっとこっちを試してみたい
#endif
でも、さらにその改良版の改良版2を作った場合には、#if-#endifを入れ子にすると
#if(0)
// 最初に作ったのはこちらの処理
#else
#if(0)
// ちょっとこっちを試してみたい
#else
// ちょっとこっちを試してみたい2
#endif
#endif
となって分け分らなくなる。3重入れ子になるともう何が何だか分らない。
インデントして字下げすれば
#if(0)
// 最初に作ったのはこちらの処理
#else
#if(0)
// ちょっとこっちを試してみたい
#else
// ちょっとこっちを試してみたい2
#endif
#endif
見易いけれど、Visual Studioのエディターが勝手に整形してインデントが解除されてしまうので困る。
ところが昨日、良い方法が見つかった。
#if(0)
#else(0)
#endif(0)
のように書いてもVisual Studio 2013 C++では問題ないようだ。
#if(0)は分るが、#else(0)や#endif(0)は無意味な0が付いていても
怒られないぞ。何でやねん。まあ理由は分らないけれど、これを使うと、
#if(00)
// 最初に作ったのはこちらの処理
#else(00)
#if(0)
// ちょっとこっちを試してみたい
#else(0)
// ちょっとこっちを試してみたい2
#endif(0)
#endif(00)
のようにすると、入れ子にしても、#if-#else-#endifの対応が見易くなるので多少は可読性が良くなるのではないか!
#else(0)や#endif(0)のように末尾に(0)付けても怒られない理由知っている人いましたら教えて下さい。
※コメント投稿者のブログIDはブログ作成者のみに通知されます