IMathLib-ソースコード-
discard
ここは、没になった機能たちの墓場です。そのうち、別の機能や他のライブラリとして蘇生するかもしれません。私自身のプログラミングレベルの低さが窺えます。
没になった機能群
container
ライブラリで独自にサポートしようとしたコンテナです。そもそもバグが多く、メモリ確保失敗時などの処理が大変であるため、おとなしく標準ライブラリなどのライブラリを用いるべきであると判断したため没となりました。蘇生はしません。
smart_ptr
ライブラリで独自にサポートしようとしたスマートポインタです。数値計算ライブラリの機能ではないと判断したため、没になりました。
template_algorithm
テンプレートパラメータに対して比較やソートを行うためのものです。元々は、テンプレートメタプログラミングのために作成されましたが、用いる場面がなかったため没になりました。
si_unit_wrapper
SI単位系の次元解析を行うための型のラッパーです。特に必要な場面が見出せなかったため、没になりました。
bitset
ビットの集合を示す型です。標準ライブラリに倣って作成してみましたが、早計であったため没にしました。
expression_template
式テンプレートにより数式を表現して、コンパイル時に数式処理をしたり数式を評価するためのものです。コンパイル時間があまりにも長いことと実装の困難さから、没になりました。また、C++17より追加された畳み込み式を用いて書き直そうとしましたが、途中で断念しました。
type_parameter
expression_template等のためのあらゆる型をテンプレートパラメータとして組み込む仕組みです。expression_templateが没となったとともに没になりました。
また、そもそもC++が浮動小数点型についてIEEE 745であることは規定されていないことも1つの要因です。しかしながら、これに関してはC++20で解決可能です。さらに先のことであればここが参考になるでしょう。
media
OpenGL+GLEWとSDL2を用いたより容易にグラフィック処理を行うためのラッパーです。動くには動きますが、専門外でもあることから開発が思うように進まず挫折しました。
中に入っているmain.cppは実際に利用してみたものです。