C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: boost:function_output_iterator


(過去ログ 58 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■33328 / inTopicNo.1)  boost:function_output_iterator
  
□投稿者/ falcon (6回)-(2009/02/26(Thu) 09:19:11)

分類:[C/C++] 

struct pred 
{ 
		pred(int){}; ←(A) 
		void operator()(int v) const 
		{ 
				std::cout << v << "\n"; 
		} 
}; 

boost::function_output_iterator<pred> fi(pred(0));←こうするには(A)が必要 
boost::function_output_iterator<pred> fi(pred());←(A)を消してこう書くことができない←(B) 

std::vector<int> v(boost::counting_iterator<int>(0),boost::counting_iterator<int>(10)); 

std::copy(v.begin(), v.end(), fi);←(B)だとここでエラー 
error C2296: '+' : 無効です。左オペランドには型 'boost::function_output_iterator<UnaryFunction> ' が指定されています。	
                                                                  c:\program files\microsoft visual studio 9.0\vc\include\xutility	2483

std::copy(v.begin(), v.end(), boost::make_function_output_iterator(pred()));←これだと(A)がなくてもOK 

make_function_output_iteratorは(B)と同じことしているんじゃないの? 

引用返信 編集キー/
■33331 / inTopicNo.2)  Re[1]: boost:function_output_iterator
□投稿者/ επιστημη (1781回)-(2009/02/26(Thu) 09:25:48)
επιστημη さんの Web サイト
質問になってません。

引用返信 編集キー/
■33333 / inTopicNo.3)  Re[1]: boost:function_output_iterator
□投稿者/ falcon (7回)-(2009/02/26(Thu) 09:30:47)
No33328 (falcon さん) に返信
> struct pred
> {
> pred(int){}; ←(A)
> void operator()(int v) const
> {
> std::cout << v << "\n";
> }
> };
>
> boost::function_output_iterator<pred> fi(pred(0));←こうするには(A)が必要
> boost::function_output_iterator<pred> fi(pred());←(A)を消してこう書くことができない←(B)
>
> std::vector<int> v(boost::counting_iterator<int>(0),boost::counting_iterator<int>(10));
>
> std::copy(v.begin(), v.end(), fi);←(B)だとここでエラー
> error C2296: '+' : 無効です。左オペランドには型 'boost::function_output_iterator<UnaryFunction> ' が指定されています。
> c:\program files\microsoft visual studio 9.0\vc\include\xutility 2483
>
> std::copy(v.begin(), v.end(), boost::make_function_output_iterator(pred()));←これだと(A)がなくてもOK
>
> make_function_output_iteratorは(B)と同じことしているんじゃないの?

> 質問になってません。

(B)の時なぜエラーになるのか教えてください。
make_function_output_iteratorは(B)同じと同じことしてるんですか?
引用返信 編集キー/
■33334 / inTopicNo.4)  Re[2]: boost:function_output_iterator
□投稿者/ επιστημη (1783回)-(2009/02/26(Thu) 09:37:27)
επιστημη さんの Web サイト
> (B)の時なぜエラーになるのか教えてください。

引数を取らない(デフォルト)コンストラクタがないから。

> make_function_output_iteratorは(B)同じと同じことしてるんですか?

make_function_output_iteratorが引数に何を取るかで変わるんじゃないかしら。

引用返信 編集キー/
■33339 / inTopicNo.5)  Re[3]: boost:function_output_iterator
□投稿者/ falcon (8回)-(2009/02/26(Thu) 10:13:39)
No33334 (επιστημη さん) に返信
>>(B)の時なぜエラーになるのか教えてください。
>
> 引数を取らない(デフォルト)コンストラクタがないから。
>
>>make_function_output_iteratorは(B)同じと同じことしてるんですか?
>
> make_function_output_iteratorが引数に何を取るかで変わるんじゃないかしら。

boost::function_output_iterator<pred> fi(boost::ref(pred())); とすることで解決しました。


解決済み
引用返信 編集キー/
■33340 / inTopicNo.6)  Re[4]: boost:function_output_iterator
□投稿者/ falcon (9回)-(2009/02/26(Thu) 10:18:09)
No33339 (falcon さん) に返信
> ■No33334 (επιστημη さん) に返信
> >>(B)の時なぜエラーになるのか教えてください。
>>
>>引数を取らない(デフォルト)コンストラクタがないから。
> >
> >>make_function_output_iteratorは(B)同じと同じことしてるんですか?
>>
>>make_function_output_iteratorが引数に何を取るかで変わるんじゃないかしら。
>
> boost::function_output_iterator<pred> fi(boost::ref(pred())); とすることで解決しました。

pred p;
boost::function_output_iterator<pred> fi(p);

これでもOKでした。
一時オブジェクトを使っていたのが問題の様でした。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -