、私は(そうでない場合、私は私たちのプロジェクトのためのエラーとして扱われ、警告を取得)キャストで雑然と方法で終わるC++で混乱をキャスト削減:は、一般的なクラスをプログラミングする場合
template <typename floatType>
class foo
{
public:
typedef floatType real_type;
real_type bar()
{
real_type a = (real_type)0.5; // should I be using static_cast? Either way, the code becomes cluttered quickly
real_type b = a + 0.6; // warning here for floatType = float
real_type someLongEquation = a + ((real_type)0.5 * (real_type)100) + (real_type)17.0;
return a + b + someLongEquation;
}
};
int main()
{
{
foo<float> z;
z.bar();
}
{
foo<double> z;
z.bar();
}
return 0;
}
にどのような方法がありますその混乱を減らす?
someLongEquation
で魔法の定数を使用しています。私がそれらを分けても、混乱が増えます。いずれにせよ、それは質問のポイントではありません:)
警告は何ですか? –
@DavidBrown: 'double 'から' float 'への変換、データの損失の可能性があります。精度の損失を招くおそれのあるビルトインタイプ間のキャストの標準です。 – Samaursa
各定数の後ろに' f'を置くだけです。 floatをdoubleに割り当てることは大丈夫です;) – nullpotent