libcurl を使用してファイルを作成し、コンテナーに格納する関数を作成したいと考えています。これにイテレータを使用して、コンテナのタイプを抽象化したいと思います。関数は次のようになります。
template <typename OutIt>
bool download_to_container(const std::string& link, OutIt out)
{
//set the write callback
//perform the action
//return whatever
}
書き込みコールバックは署名の関数ですsize_t(char*, size_t, size_t, void *userdata)
。ここuserdata
で、 は libcurl が書き込みコールバックに渡すように設定できるポインターです。
これuserdata
は、ユーザーが渡した出力反復子へのポインターになりますdownload_to_container
。コールバックが呼び出されたら、それを にキャストする必要がvoid*
ありOutIt*
ます。イテレータの型がわからない場合、どうすればよいですか? この問題に遭遇したのはこれが初めてなので、お手柔らかにお願いします。:-)
を使用してMicrosoft Visual C++ Compiler Nov 2012 CTP (v120_CTP_Nov2012)
います。