基本タイプまたはキャストに明示的な初期化を使用する以外に、コンストラクタのテンプレートクラスメンバーに値を割り当てる他の方法はありますか?リテラルを使用してテンプレートタイプに値を割り当てる
template <class T>
struct A
{
public:
T member;
A() :member(T()) // or :member(static_cast<T>(1.0f))
{}
};
私はコンストラクタでmember
に1.0の値を割り当てます。キャストせずにこれを行うことはできますか?
あなたはどのようにすることなく、任意のTに '1.0'を割り当てることができますが鋳造?あなたはあるタイプから別のタイプへ進んでいます。それは定義によってキャストしています。 –
@PeterAlexanderもしあなたがそれについて考えるなら、1.0fの代わりに1.0Tか何かがあるかもしれません。理論的にはキャストを避けることができます。 – xcrypt
それは 'T'が何であるかによって異なります。プリミティブ積分型または浮動小数点型のみの場合、 '1'を使用すると、コンパイル時に正しい値として解釈されます。 –