Constrained Value review results
ソースコード(constrained_value.zip)
ドキュメント
- Boost.ConstrainedValueとは
Constrained Valueライブラリは、値の取りうる範囲を規定することのできる型を提供するライブラリです。
たとえば、以下の例は、0〜23の値を許可するint型です:
bounded_int<int, 0, 23>::type hour; hour = 20; // OK hour = 26; // exception!
- レビュー結果
詳細は原文を参照してもらいたいのですが、結果としては「条件付きの採択」です。
大きな問題としては、浮動小数点数型をサポートしてないという点です。
整数型だけでも十分有用だとは思いますが、Boost入りする以上は浮動小数点数型もサポートするべきという判断ですね。
他にも、浮動小数点数型の問題から派生するNaNの扱い、文字列のサポート、コンパイルフラグの設定、エラーポリシー、シリアライズ、名前の変更などなどの問題が上がっています。
あとは、テストがなかったそうです。
Boost入りするまで、まだしばらくかかりそうですね。