トップページ > プログラム > 2015年01月13日 > 2zJXl9HC

書き込み順位&時間帯一覧

27 位/186 ID中時間01234567891011121314151617181920212223Total
書き込み数0002000000000000000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part115 [転載禁止]©2ch.net

書き込みレス一覧

C++相談室 part115 [転載禁止]©2ch.net
450 :デフォルトの名無しさん[sage]:2015/01/13(火) 03:23:48.60 ID:2zJXl9HC
#include <iostream>


template <typename T>
void print( T a )
{
std::cout << a << std::endl;
}

template <typename Head, typename ...T>
void print( Head a, T... b )
{
std::cout << a << std::endl;
print( b... );
}

int main()
{
print( 1, 2, 3, 4 );
}

じゃあかんのか。型を統一したいというが、それであれば可変長テンプレート引数を用いるのは間違いな気がする(テンプレート引数というのは基本的に型を実引数に受け取るものだ。)
C++相談室 part115 [転載禁止]©2ch.net
451 :デフォルトの名無しさん[sage]:2015/01/13(火) 03:24:16.56 ID:2zJXl9HC
どうしてもというならこんな感じde

#include <iostream>

template <typename Head, typename ...T>
struct print {
void operator()( Head a, T... b ){
std::cout << a << std::endl;
print<T...>{}( b... );
}
};
template <>
struct print<int> {
void operator()( int a ){
std::cout << a << std::endl;
}
};
// 実使用部.
template <typename ...T>
void serial_print( T... a ){
print<T...>{}( a... );
}

int main()
{
serial_print( 1, 2, 3, 4 );
//serial_print( 1, 2.0f, 3.0, 4ul ); // こちらを入れるとエラー.
}


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。