著作権フリーのC++高速汎用多倍長演算を作るスレ
■ このスレッドは過去ログ倉庫に格納されています
0102デフォルトの名無しさん
2007/11/27(火) 17:27:11インクリメントはとりあえず*this + 1でいいよ。
Lint& operator ++() {
return *this += 1;
}
Lint operator ++(int) {
Lint t = *this;
return ++t;
} //あるいはreturn ++Lint(*this);とすれば1行にまとめられる。
とまあ、C++の演算子多重定義は面倒くさいので、
こんな余計なことに頭を使わないためにも、Boost.Operators推奨。
http://www.kmonos.net/alang/boost/classes/operators.html
boost::operators<Lint>とboost::operators<Lint, int>を継承し、
そこのsampleに載っているのと同じ演算子多重定義関数だけを実装すれば、残りは全て揃う。
ただし引数取るものはconst Lint&版とint版の2つを実装すること。
■ このスレッドは過去ログ倉庫に格納されています