ぬらぶる

プログラミングをする上で、不定、無効な値というものがよく出てきます。たとえば、リストボックスで選択されている要素の番号を得るときに、要素が選択されていない場合などです。ポインタならNULL、数字の場合だと-1とかで無理やり解決したりします。boostのoptionalは、もう少しスマートに解決してくれます。で、これと同じような機能がC# 2.0にSystem.Nullableとしてつくようです*1

optional< int > i; // boost
Nullable< int > i; // Nullable
int? i; // Nullableの別表記

最初はoptionalと同じだと思ってましたが、まさか?とは…