西スラヴに伝わる軍神*1

まめしば雑記より。

初めて ?? 演算子を使いました。使いやすいような使いにくいような、すごくびみょー……。

http://d.hatena.ne.jp/shiba-yan/20071019/1192781771

そうか、ついにしばやんもトリグラフ*1を使ってるコードに出くわしたのか!

…と一瞬思ったんだけど、C#にはそういう演算子がある様子。null非許容な型に対して規定値を返すために使うのかな。

  ?? 演算子 (C# リファレンス)

んーむ。ついにトリグラフ*2に悩まされることになったのかと思ったのに…残念。


ちなみに確認したところ、トリグラフは K&R では「トライグラフ系列」、Bjarne Stroustrupプログラミング言語C++では「三重字」と訳されてました。要するに大カッコや中カッコなどが 7bit ASCII以前に使われてた ISO 646 では定義されていないので、この環境でも記述できるようにしたという代物なわけです。


ちなみに、自分がトリグラフと出会ったのは数年前。VC6 と CodeWarrior でのクロスコンパイルを想定していたライブラリを、なんとか gcc でビルド出来るように修正してた時です。でもいまだに何でトリグラフ使ってたのかは謎だけど。


これだけだと何なのでネタを。
επιστημηさんが書いた謎の変換コード「とりぐらふぁー」。

*1:トリグラフはプリプロセッサに食わせるための表記法であり、演算子ではありません。

*2:くどいようですが、トリグラフは演算子ではありません。