配列の内容を出力オブジェクトに「印刷」できる関数を作成しようとしています。私はobj
がstd::cout
またはfstream
のいずれかのような任意の出力オブジェクトになりたいので、私が使用してそれを呼び出すことができC++出力オブジェクトへの配列の出力(関数別)
template <class T, class Z>
void print(T* array, int& size, Z& obj)
{
for (int k = 0; k < size; k++)
Z<< array[k] << " ";
Z<< std::endl;
}
:それはこのような少しを探している
print(arr_name, arr_size, std::cout)
または
std::ostream file;
print(arr_name, arr_size, file)
残念ながら、現在のバージョンでは全く動作しません(エラーには '< <'が関係します)。どうしましたか?そのような機能を作ることさえ可能ですか?
あなたは基本的に 'テンプレート無効印刷(イーターを開始したいです、Iter end、std :: ostream&os){std :: for_each(begin、end、[&](decltype(* begin)const&element){os <<要素 "" \ n ";}); } '。そして、次のような配列でそれを使う: 'int x [10]; –
注: 'int&size'はナンセンスです(' intサイズにしてください ') –