Closed yumetodo closed 8 years ago
とりあえず現状のpoint_cの実装を列挙
std::is_arithmetic
上の条件を見るにこれがないとstd::stringもOKになってしまうんですがこれはどうなんでしょう?
上の条件を見るにこれがないとstd::stringもOKになってしまうんですがこれはどうなんでしょう?
あーー、そういえばそうだなぁ・・・・。やっぱりstd::is_arithmeticは外せないのか・・・。
無限精度整数ライブラリとか作る時ってstd::is_arithmeticを特殊化するのって普通なんだろうか。普通でないならあまり制約は掛けたくないです。ユーザー側でどうにかできるとはいえ
std::is_arithmeticを特殊化するのって普通なんだろうか
少なくともboost::rational
(boostの分数ライブラリ)は特殊化されていないですね...。
もうstd::stringを使ったとしても自己責任ということで制約外してしまいます?
それでも良いと思います。
要件に
も追加しないといけないな・・・、point_c限定ですが
作業してみましたが、どうでしょうか。問題なければ残り2つのクラスもやりますが。
追記 って肝心のclassのtemplate修正してない!
問題ないと思います。
では他も作業します
これで多分作業完了だと思います。
現状座標系クラス(point_c ( #2 ), size_c ( #26 ) , point3d_c( #25 ))は内部型の要件にstd::is_arithmeticがtrueであることを要求しているが、noexceptの対応( #38 )等も進んだので必要ないのかもしれない。
ここでこれらのクラスの内部型の要件を整理する