13
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C++/Java系言語で1文字だけでコメントアウトするブロックを切り替える

Posted at

概要

プログラミングをしていると実装の方式を試してみることがあると思います。あるいは、別の実装でうまくいくか自信のない時、今あるものはコメントアウトしておいて別の実装を試してみたり。そんな場合、今時はエディターの機能で簡単にブロックをコメントアウトしたりできますが、言語仕様をうまく使って一文字編集するだけでコードブロックをコメントアウトする小技を大昔に思いついていて今でも使うことがあるので紹介します。実装中の試行錯誤の時には便利です。

この技はC++/Java/Javascript系の、ブロックコメント/* ... */とインラインコメント//がサポートされている言語で利用できます。

ブロックを/の削除でコメントアウトする

以下のように書いておくと、一番最初の/を削除すると最初の行がインラインコメントからブロックコメントに切り替わり、ブロック全体がコメントアウトされます。

//*
var x = foo;
//*/

先頭行が//で始まると、最初と最後の行がどちらもインラインコメントになり、/*で始まるとそこから一番最後の*/までがブロックコメントになるわけですね。

commentout-2.gif

コメントアウトするブロックを切り替える

先ほどのテクニックの応用編で、二つのブロックのうち、どちらを利用するのかを先頭の/で切り替えます。

//*
var x = "foo";
/*/
var x = "bar";
//*/

真ん中にある/*/がポイントで、最初がブロックコメントになっていたらそちらとペアになって前半をブロックコメントにし、なっていなかったらそこからブロックコメントが始まって最後の*/で閉じる、というふうに動きます。

commentout-3.gif

まとめ

結構便利で思いついた時には変な満足感がありました。ただしご覧の通りこれ以上ないくらい小手先のテクニックで、当然ながらリポジトリにコミットする場合には消しておくべきコメントですので、レビュワーから怒られる前にきちんと削除してコミットしましょう。

13
7
10

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?