私は型Type
と変数を持っていますtmp
:
template<typename Type> myFunction()
{
/* SOMETHING */ tmp = 0;
};
浮動小数点型であるかのように、そして積分型であるかのように宣言tmp
したいと思います。C ++ 11でそれを行う方法は?Type
Type
double
Type
私は型Type
と変数を持っていますtmp
:
template<typename Type> myFunction()
{
/* SOMETHING */ tmp = 0;
};
浮動小数点型であるかのように、そして積分型であるかのように宣言tmp
したいと思います。C ++ 11でそれを行う方法は?Type
Type
double
Type
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
必要に応じて、最初にそれを確認するために使用できます。ここで他の役立つタイプの特性を参照してください:
次の特性を検索して使用します。
template <bool, class T, class F> struct conditional;
template <class T> struct is_integral;
template <class T> struct is_floating_point;
それでも問題が解決しない場合は、試したことと結果のエラーメッセージを投稿してください。