2

私は型Typeと変数を持っていますtmp

template<typename Type> myFunction()
{
    /* SOMETHING */ tmp = 0;
};

浮動小数点型であるかのように、そして積分型であるかのように宣言tmpしたいと思います。C ++ 11でそれを行う方法は?TypeTypedoubleType

4

2 に答える 2

7
typedef typename std::conditional<
     std::is_floating_point<T>::value, 
     T,                                //if floating, ::type = T
     double                            //else,        ::type = double
>::type value_type;

value_type tmp; //declare variable

T算術型しかないと思います。std::is_arithmetic必要に応じて、最初にそれを確認するために使用できます。ここで他の役立つタイプの特性を参照してください:

于 2012-08-20T20:21:03.760 に答える
4

次の特性を検索して使用します。

template <bool, class T, class F> struct conditional;
template <class T> struct is_integral;
template <class T> struct is_floating_point;

それでも問題が解決しない場合は、試したことと結果のエラーメッセージを投稿してください。

于 2012-08-20T20:20:48.650 に答える