角度クラス 実装その1
少しずつですが、角度クラス実装してます。
以前の構想ではラジアン、デグリーと、360度を1.0で表す3種類を扱う予定でしたが、
改めて考えてみると、1.0で表すクラス1つでいいんじゃないかと思ってきました。
もちろん、ラジアンやデグリー値との相互変換は必要だし変換コストもかかりますが、
そんなに負荷は気にならないんじゃないなかーと。
正規化しようとしたら 1.0 で扱ってる方がやりやすかったりもするので。
まあ、もっと実装進めていったら考え変わるかもしれませんが…
※3種類を1つのクラステンプレートで実装する方がやりがいあって楽しいですし
今のところ
- 四則演算
- 比較演算子
- 正規化
- 最短距離計算
を実装しました。
次はラジアンやデグリーからの変換やらを実装予定。
あと、この角度クラスの定数値を定義しようとして、
constexprを少し調べてました。
クラスをconstexprとして扱うのはなかなかめんどくさいですねー。
いや、めんどくさいっていうか修飾子が多い。
コンストラクタが
constexpr explicit Hoge(...) noexcept {...}
とか修飾子だらけ。
c++11以降をバリバリ使っている方々はnoexceptとかまじめにつけてるもんなんでしょうか?