thisによると、div、ldiv、lldivがテンプレートでないのはなぜですか?
std::div_t div(int x, int y);
std::ldiv_t div(long x, long y);
std::lldiv_t div(long long x, long long y);
std::ldiv_t ldiv(long x, long y);
std::lldiv_t lldiv(long long x, long long y);
2のdivが<cinttypes>
である私が
template<typename t>
std::div_t<T> div(T x, T y);
template<>
std::div<int> div(int x, int x)
{
// implementation here
}
思考を見ていることを好むでしょうか?
最終 'のstd :: div要素は' 'べきであるのstd :: div_t '、右? –
Ssswift
私が実際に邪魔しているのは、これらの関数が存在するということです - はい、除算とモジュロはハードウェアレベルで一緒に計算されることが多いですが、私が知っているほとんどすべての実稼働準備済みコンパイラは既にこの事実を悪用し、 Cコードは、除算とモジュロの両方を実行します。 –
@MatteoItalia: "*私が知っているほとんどすべての実稼働準備済みコンパイラ*" 20年前から "実稼動可能なコンパイラ"のステータスを知っていますか?これらはC++ 98関数であるためです。コンパイラの品質はかなり異なっていたと私は考えています。 –