私は、コンパイル時の有理数計算を可能にするC++ 11標準からクラスstd::ratio<>
を見ていました。標準の背後にある設計原則::>
テンプレートデザインとクラスで実装された操作が過度に複雑で、本当に単純な有理クラスを実装し、演算子の関数を定義することによって、より簡単で直感的なアプローチを使用できないという理由が見つかりませんでした。その結果、クラスを使いやすくなり、コンパイル時のメリットが残りました。
誰でも現在のstd::ratio<>
デザインの利点を、constexpr
を使用した単純なクラスの実装と比較して知っていますか?実際には、私は現在の実装に利点を見つけることができません。
http://www.joelonsoftware.com/articles/fog0000000018.html –
コンパイル時(したがってテンプレート)とランタイムとは異なりますか? – Drakosha
@Drakosha: 'constexpr'はヒントではありません。特定のコンテキスト(定数式が必要な場合)では、コンパイラはコンパイル時にそれらを実行する必要があります。 –